结构体与函数简单总结(依靠洛谷结构体题与函数题单)

函数结构体简单总结

依靠洛谷函数与字符串题单


文章目录

  • 函数结构体简单总结
  • 前言
  • 一、函数
    • 1、有返回值的函数
    • 2、无返回值函数
    • 3、递归函数
  • 二、结构体
  • 总结


前言

之前总结了字符串的简单应用,随着函数与结构体的题单完成,入门题单也就刷完了,现在对于一些内容记录一下,方便以后自己再回顾。


一、函数

1、有返回值的函数

有返回值的函数在使用时也需要一个变量进行承接,或者直接将其看成一个变量
列入编写一个函数来实现输入数字的加权相加:

def work(a,b,c):anss=a*0.2+b*0.3+c*0.5return anss
if __name__=="__main__":mapp=work(1,2,3)print(mapp)print(work(1,2,3))
2.3
2.3

其中的

if __name__=="__main__":

对应于c++中的主函数。可以看出函数的使用和c++中的使用都相似,不过py语言不能直接定义函数的类型,返回的类型是返回值本身的类型,注意承接变量的类型选取。

2、无返回值函数

无返回值函数就是对函数内容进行操作,无返回值函数要注意全局变量和局部变量的设置。比如对一个矩阵进行顺时针旋转90°的操作:

import numpy as np
def work():global mappmapp=np.rot90(mapp,3)
def printf():global mapp,numfor item in range(num):for jtem in range(num):print(mapp[item][jtem],end='')passprint()
if __name__=="__main__":num=int(input())mapp=[['']*num for _ in range(num)]for item in range(num):key=str(input())for jtem in range(num):mapp[item][jtem]=key[jtem]passpasswork()print()printf()
3
123
456
789741
852
963

这里的global是定义后边的变量是函数外的变量,就是全局变量,如果不加这个标签,就会被认定为,这个变量是函数中的变量,函数内的变化,不会影响到函数外的变化,这里的矩阵旋转用到的是numpy中的旋转函数,由于其默认是逆时针旋转90°,因此想要顺时针旋转90°,就要旋转三次。

3、递归函数

函数的自身套用的方法,是搜索常用的方法,也就是递归思想。例如现在需要求一个数的阶乘:

def work (num):if num<0:print("输入的数必须为正数")returnpasselif num==1 or num==0:result=1passelse:result=work(num-1)*numpassreturn result
if __name__=="__main__":while True:n = int(input())print(work(n))
6
720
-2
输入的数必须为正数
None

这里设置了连续输入,求解思想比较简单,不过很多递归思想需要很清晰的思路。对我来说,沾上递归就是比较难的。

二、结构体

py的结构体和c++不同,py的结构体可以用类来实现,类的命名方式为驼峰命名。如果之前用c++写过结构体,就可以发现,这里的不好操作的地方就是如何设置和使用数组结构体,对应py也就是列表结构体。下面对于统计学生的三门主课成绩及其总分为例,写一个结构体:

class Student:def __init__(self,n,c,m,e):self.name=nself.chinese=int(c)self.math=int(m)self.english=int(e)def print_top(self):print(self.name,self.chinese,self.math,self.english)print("总分为:",self.math+self.chinese+self.english)
if __name__=="__main__":num=int(input())data=[]for item in range(num):in_put=str(input())mapp=[str(key) for key in in_put.split()]data.append(Student(mapp[0],mapp[1],mapp[2],mapp[3]))for item in data:item.print_top()
3
Tom 12 25 36
Join 22 68 50
Milan 25 74 68
Tom 12 25 36
总分为: 73
Join 22 68 50
总分为: 140
Milan 25 74 68
总分为: 167

结构体的初始定义函数__init__的数值输入就是直接使用结构体名字输入,结构体内可以设置函数,直接用子变量调用即可。这里使用的输入数据既有字符类型又有整数类型,这里的操作是直接输入一个字符串,然后按照空格间隔进行切片,存入到一个列表之中。最后按照需要对数据类型进行强制转换即可。

总结

结构体和函数如果后面遇到新的问题会及时更新,欢迎指出不对的地方。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/593214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你可能不知道的5款好用封面设计工具,快来一探究竟吧!

我相信每个作者和出版商都希望在一部作品完成后有一个醒目的封面&#xff0c;这样潜在的读者就会有足够的好奇心拿起这本书&#xff0c;你的书的销量就会上升。这就是封面设计软件的使用&#xff0c;专业的封面设计软件可以增加前沿效果&#xff0c;呈现最适合书籍内容的创意布…

Tailscale:随时随地远程和使用服务器

Tailscale是什么&#xff1f; 网上有时候提到tailscale&#xff0c;总是介绍好多&#xff0c;比如以下介绍&#xff0c;但是太官方了 Tailscale 是一种基于 WireGuard 的虚拟组网工具&#xff0c;和 Netmaker 类似&#xff0c;最大的区别在于 Tailscale 是在用户态实现了 Wire…

NSSCTF 1zjs

开启环境: 搞就完事了,别玩魔法! 源码打开 点击访问:./dist/index.umd.js" 搜索php,找到23条相关的,注意到有一个特别的信息: PERFORMANCE OF THIS SOFTWARE.Your gift just take it : /fk3f1ag.php 访问: node4.anna.nssctf.cn:28325/fk3f1ag.php 得到这样: ([![]…

【每日试题】精选Java面试题八股文

题目1&#xff1a;什么是Java的泛型&#xff1f;请举例说明。 答案&#xff1a;Java的泛型是一种参数化类型的概念&#xff0c;可以在类、接口和方法中使用。使用泛型可以在编译时进行类型检查&#xff0c;提高程序的安全性和可读性。例如&#xff0c;可以定义一个泛型类List来…

ubuntu系统上安装virtualenv后报错“Command ‘virtualenv‘ not found”

前言 Ubuntu系统上&#xff0c;由于不同用户可能会导致依赖包安装后&#xff0c;无法正常加载命令&#xff0c;就比如&#xff0c; pip3 install virtualenv后&#xff0c;报错&#xff1a;Command virtualenv not found, but can be installed with 这是由于当前用户安装依赖…

【高录用-快速见刊-EI稳定检索】2024年计算机建模与信号处理国际学术会议(ICCMSP 2024)

【高录用-快速见刊-EI稳定检索】2024年计算机建模与信号处理国际学术会议&#xff08;ICCMSP 2024&#xff09; 2024 International Conference on Computer Modeling and Signal Processing 一、【会议简介】 尊敬的各位专家、学者和与会嘉宾&#xff1a; 欢迎来到2024年计算…

opencv期末练习题(3)附带解析

创建黑色画板&#xff0c;并支持两种画图功能 import mathimport cv2 import numpy as np """ 1. 创建一个黑色画板 2. 输入q退出 3. 输入m切换画图模式两种模式&#xff0c;画矩形和画圆形。用户按住鼠标左键到一个位置然后释放就可以画出对应的图像 "&qu…

Could not resolve all dependencies for configuration ‘:classpath‘

报错解析&#xff1a; 问题是与构建配置和依赖解析有关的&#xff0c;特别是在使用Maven或Gradle这样的构建工具时 报错解决&#xff1a; 该方法在网上经过多个参考后认为对我自己有用的方法&#xff0c;就是将maven镜像的http改为https

静态库与动态库

这里写目录标题 静态库与动态库简介 静态库简图制作与使用总览制作 二级目录 动态库&#xff08;共享库&#xff09;简图二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 静态库与动态库 简介 静态库&…

python 画图转化为html

优点&#xff1a;画图转化为html可以手动拖动。并且可以放大缩小 示例一 import matplotlib.pyplot as plt import mpld3# 准备数据和图表 x [1, 2, 3, 4, 5] y [2, 3, 5, 7, 11]fig, ax plt.subplots(figsize (10,10)) ax.plot(x, y, o-, labelData Points) ax.set_xlabe…

访问学者J1签证的申请流程

访问学者J1签证是许多人前往美国进行学术研究和文化交流的重要途径之一。申请J1签证需要经过一系列步骤和程序&#xff0c;让知识人网小编带大家来了解一下申请流程吧。 首先&#xff0c;申请者需要确认自己符合J1签证的资格要求。这包括被美国的赞助机构或组织接受&#xff0c…

微前端 Micro App

MicroApp 官网链接 MicroApp 链接

使用jieba库进行中文分词和去除停用词

jieba.lcut jieba.lcut()和jieba.lcut_for_search()是jieba库中的两个分词函数&#xff0c;它们的功能和参数略有不同。 jieba.lcut()方法接受三个参数&#xff1a;需要分词的字符串&#xff0c;是否使用全模式&#xff08;默认为False&#xff09;以及是否使用HMM模型&…

C++ DAY5 作业

1.全局变量&#xff0c;int monster 10000;定义英雄类hero&#xff0c;受保护的属性string name&#xff0c;int hp.int attck;公有的无参构造&#xff0c;有参构造&#xff0c;虚成员函数void Atk()blood-0;}&#xff0c;法师类继承自英雄类&#xff0c;私有属性int ap_atk50…

CyberLink的颜色修正软件ColorDirector Ultra 2024 12.0版本在windows系统下载与安装配置

目录 前言一、ColorDirector Ultra 安装二、使用配置总结 前言 ColorDirector Ultra是由CyberLink公司开发的一款专业的颜色修正和调整工具&#xff0c;可以帮助用户实现对视频中颜色的全方位管理。该软件支持对各种分辨率的视频进行颜色调整&#xff0c;并且可以从各种设备&a…

QT系统移植教程

QT系统移植教程 QT系统移植教程 qt教程&#xff1a; http://www.qter.org/portal.php?modview&aid5 下载源码&#xff1a; http://download.qt.io/archive/qt/5.4/5.4.2/single/ 解压源码&#xff1a; tar -xvf qt-everywhere-opensource-src-5.4.2.tar.x…

【hive】报错累积

6.1 创建新表 错误1&#xff1a;FAILED: SemanticException [Error 10006]: Line 1:63 Partition not found "20210919" 场景&#xff1a;在创建例行表时&#xff0c;报错。这种情况是先创建了多级分区表&#xff08;date&#xff0c;product&#xff09;&#xff0c…

Ubuntu 20.04 上安装和使用 Docker

Ubuntu 20.04 上安装和使用 Docker 在 Ubuntu 上安装 Docker 非常直接。我们将会启用 Docker 软件源&#xff0c;导入 GPG key&#xff0c;并且安装软件包。 一、开始安装 首先&#xff0c;更新软件包索引&#xff0c;并且安装必要的依赖软件&#xff0c;来添加一个新的 HTTP…

Spring学习目标

Spring概述Spring IOC[重点]基于注解的IOC配置Spring AOP[重点]基于注解的AOP配置Spring整合MyBatisSpring事务控制[重点]基于注解的事务控制

你不知道的 CSS 之 包含块 ! 最细讲解,一听就懂!

你不知道的 CSS 之包含块 一说到 CSS 盒模型&#xff0c;这是很多小伙伴耳熟能详的知识&#xff0c;甚至有的小伙伴还能说出 border-box 和 content-box 这两种盒模型的区别。 但是一说到 CSS 包含块&#xff0c;有的小伙伴就懵圈了&#xff0c;什么是包含块&#xff1f;好像…