python02_函数(python函数csdn)
off999 2024-10-18 08:00 58 浏览 0 评论
一、函数的作用
- 可以具体完成某个功能
- 可以重复使用(函数就是存储运行过程)
二、函数的定义
关键字 def
def 函数名(参数1,参数2,参数3):
函数体
return 表达式
下面是一个计算的简单函数,名为add():
def add():
a = 1 + 6 * 4
b = a + 4
print(b)
add()- 使用关键字def来告诉Python要定义一个函数
- 向Python指出了函数名,函数名为add():,定义以冒号结尾
- def add():后面的所有缩进行构成了函数体,描述了函数是做什么的
- 函数要先定义,才能调用
- 函数的调用必须加括号
要使用这个函数,可调用它。函数调用让Python执行函数的代码,由于add()函数没有指定任何参数,所以要调用函数,直接指定函数名即可。
三、函数的类型
1、函数的位置参数
可以通过函数名后面的括号传递参数,下面是一个带有位置参数的函数,名为run_cases():
def run_cases(num):
for case in range(num):
print(f'正在执行第{}条用例')
# 调用函数传入的参数其实就是去给函数定义的时候的变量去赋值
run_cases(10)设置位置参数的原则:
- 函数当中存储多行代码:观察哪些数据会变化,则把它作为参数
关于函数的参数传递,需要注意如下几点:
- 调用函数传递的参数个数一定要跟函数定义的参数个数一致,位置要保持一致,顺序要保持一致,否则会报错
- 注意函数体里面参数的类型,要输入正确的参数类型,否则会报错
- 函数的形式参数和实际参数要配对,一一对应
- 函数调用后,如果有变量,那其实就是给变量赋值
形式参数与实际参数的区别:
- 形式参数:函数定义的时候的参数,就是个变量
- 实际参数:函数调用的时候传入的参数,就是个值
2、函数的关键字参数
关键字参数指的是在调用具有参数默认值的函数时,使用参数的关键字来指定为哪个参数赋值。下面是一个带有关键字参数的函数,名为run_cases():
def run_cases(a,b,c):
for case in range(a):
print(f'正在执行第{}条用例')
print(b + c)
run_cases(a=5,c=3,b=4)关键字参数的作用:
- 在传实际参数的时候,即时说明实际参数的意义
位置参数和关键字参数的混合时的注意点:
- 位置参数一定要在关键字参数的前面,避免冲突
- 不能对一个参数进行多次赋值
- 不能使用未知关键字参数
3、函数的默认参数
默认参数,在定义函数时给予默认值,调用函数时不需要给予默认参数。
def 函数名(...,形参名,形参名=默认值)
代码块
注意??
- 在使用此格式定义函数时,指定有默认值的形式参数必须在所有没默认值参数的最后,否则会产生语法错误。
def run_cases(a,b,c=3)
for case in range(a):
print(f'正在执行第{case}条用例')
print(b+c)
# 不给c传实际参数
# 默认参数的作用:可以不传参数
run_cases(1,4)4、函数的动态参数
预先不知道函数需要接受多少个实参,所以Python中有一个动态参数的概念,随便你传递多少个的参数给函数,它都全盘接受,并在函数体内做进一步处理。
def add(*args):
print(args)
add(1,2,3,4)打印出来的结果都是元组类型,那么无论你传递多少个参数进来,它都会把这些参数存储到一个元组里面。比如可以去计算任意个数数字的总和:
def add(*args):
sum = 0
for item in args:
sum += item
print(sum)
add(1,2,3,4)大家应该充分体验到了动态参数带来的便利,当我们面对不知道要传递多少个参数的函数时,就可以利用动态参数这个用法。
5、带有关键字的动态参数
带有关键字的动态参数,与普通动态参数的区别就是:带有关键字,且必须指定关键字,否则识别不了。
def run(a,**b):
# b 就是把剩下的关键字参数全部都放到一起(字典)
print(a)
print(b)
run(3,H='fuyao',Z='zhishang')传入的带有key值的参数,都被转成了字典,所以当你传入的值不确定个数的时候又要组成字典,那么我们就可以用这种形式去做处理。
6、位置参数、默认参数、动态参数、关键字动态参数的混合使用
def add(a,b=4,c=5,*args,**kwargs):
print('a+b+c的结果是:',a+b+c)
sum = 0
# args 就是把剩下的位置参数全部都放到一起(元组)
for item in args:
sum += item
print('动态参数的累加结果是:',sum)
# kwargs 就是把剩下的关键字参数全部都放到一起(字典)
print('关键字动态参数是:',kwargs)
# 调用函数
add(1,2,3,4,5,6,x=1,y=2)根据传递的参数,我们可以看到是优先处理位置参数,然后剩余的参数传递给args,带有关键字的参数传给kwargs。
7、函数的拆包
然而现实中,自动化测试用例中有很多数据(url、方法、参数等),存那么多变量不太现实,那我们可以将多个数据存在一个变量中,此时就会用到拆包了。
1)*args:把元组中的数据进行拆包,也就是把元组中的数据拆成单个数据。
def run(a,b,c):
print(a)
print(b)
print(c)
args = [6,7,8]
# *args 是把所有的列表/元组元素拆分,脱衣服
run(*args)2)**kwargs:用来接收key=value这种类型的命名参数,把字典中的数据进行拆包。
def run(a,b,c):
print(a)
print(b)
print(c)
# 关键字参数调用
kwargs = {"a":6,"b":7,"c":8}
# **是把字典转化成关键字参数的
run(**kwargs) 8、函数的返回值
上面我们写的函数,调用函数的结果都直接输出在控制台,其实并非所有的函数都会直接输出在控制台,如果我们要拿到这个函数的运行结果,那么就需要用return语句,将函数的运行结果返回来,由你去做进一步的处理。
def run_cases(a=1,b=3,c=3):
for case in range(a):
print(f'正在执行第{case}条用例')
print(b + c)
return 5
# 不会执行下面这条语句
print('函数执行完了吗')
print(run_cases())返回值需要注意:
- 如果你想拿到函数的运行结果,那么必须用return语句。
- return后面的语句,都不会再执行,可以自己去尝试下。
9、函数的局部变量和全局变量
Python中的全局变量与局部变量的区别:全局变量与局部变量两者的本质区别就是在于作用域。
全局变量是在整个py文件中声明,全局范围内都可以访问;局部变量是在某个函数中声明,只能在该函数中调用它,如果试图在超出范围的地方调用,程序就会报错。
一般全局变量会用大写字母来标志,如果是局部变量,就会用小写字母来标志。
- 全局变量在函数内部和外部都可以调用,局部变量只能在函数内调用,否则会报错。
A = 66 # 全局变量
def add():
a = 100 # 局部变量
print(a+A)
add() # 打印结果是166
print(A) # 打印结果是66
print(a) # 报错:NameError:name 'a' is not defined- 函数的外部无法直接获取局部变量,可以间接获取,通过return(返回值)。
a = 1 # 全局变量
def run():
b = 2 # 局部变量
print(b)
return b
print(a)
run()- 如果全局变量和局部变量不一样,那么会优先调用局部变量。
A = 66 # 全局变量
def add():
a = 100 # 局部变量
print(A+A)
add() # 打印结果是200
print(A) # 打印结果是66- 如果想在函数内部改变全局变量的值,那么在全局变量之前加global关键字。
A = 66 # 全局变量
def add():
global A
A = 100 # 局部变量
print(A+A)
add() # 打印结果是200
print(A) # 打印结果是100- 如果全局变量是列表类型,那么我们可以通过append等列表方法去对列表进行修改,否则修改不成功。
list_1 = ['hello',20]
def add():
list_1.append(99)
print(list_1)
add() # 打印结果是['hello',20,99]
print(list_1) # 打印结果是['hello',20,99]10、内部函数
内置函数:Python官方自带的函数,不需要自己定义。
- eval() 函数用来执行一个字符串表达式,并返回表达式的值。
可看以下示例:对表达式的结果进行计算,返回计算后的值
a = "1 + 5 + 3"
print(eval(a)) # 脱掉字符串左右两边的衣服将输入的字符串转为对应的数据类型,列表、元组、字典等数据类型都可以使用这种方式输入
response = '{"username":"sun","age":16}'
print(type(response))
a = eval(response)
print(type(a))- sum() 方法对序列进行求和计算,并返回计算结果。
a = sum([3,4,5,6])
print(a)相关推荐
- 安全教育登录入口平台(安全教育登录入口平台官网)
-
122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...
- 大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)
-
大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...
-
- 哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
-
要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...
-
2026-02-04 09:03 off999
- 电信宽带测速官网入口(电信宽带测速官网入口app)
-
这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...
- 植物大战僵尸95版手机下载(植物大战僵尸95 版下载)
-
1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...
- 免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)
-
1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...
- 2025世界杯赛程表(2025世界杯在哪个国家)
-
2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...
- 下载搜狐视频电视剧(搜狐电视剧下载安装)
-
搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...
- 永久免费听歌网站(丫丫音乐网)
-
可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...
- 音乐格式转换mp3软件(音乐格式转换器免费版)
-
有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...
- 电子书txt下载(免费的最全的小说阅读器)
-
1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...
- 最好免费观看高清电影(播放免费的最好看的电影)
-
在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...
- 孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)
-
要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
win7系统还原步骤图解(win7还原电脑系统的步骤)
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
16949认证费用是多少(16949审核员太难考了)
-
linux软件(linux软件图标)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
windows7旗舰版多少钱(win7旗舰版要多少钱)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
