Python函数
函数的定义与调用
1 2 3 4 5 6 7 8 | # 定义 def wash(): print ( "加水" ) print ( "搓洗" ) print ( "脱水" ) # 调用 wash() |
函数传参数
1 2 3 4 5 6 | def wash(a, b, c): print ( "加水{}升" . format (a)) print ( "搓洗{}分钟" . format (b)) print ( "脱水{}分钟" . format (c)) wash( 3 , 40 , 10 ) |
形参,实参
上例中a b c为行参 传递的 3 40 10为实参
实参与形参必须一一对应不能多或者少
关键字参数
可以使用以下方式传递参数
1 | wash(a = 3 , b = 40 ,c = 10 ) |
使用关键字参数参数传递顺序可以不一致
默认参数
1 2 3 4 5 6 | def wash(a, b = 20 , c = 10 ): print ( "加水{}升" . format (a)) print ( "搓洗{}分钟" . format (b)) print ( "脱水{}分钟" . format (c)) wash( 3 , 40 , 20 ) |
注意:默认参数如果不传递参数值会使用默认值
默认参数后面不能有非默认参数即默认参数需要放在最后
可变长参数
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # 可变长参数 def funct1( * args): for i in args: print (i, end = " " ) print () funct1( 1 , 2 , 3 , 4 , 5 ) # 定义一个函数传递多个参数求和 def add_num( * args): sum = 0 for i in args: sum + = i print ( sum ) add_num( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ) |
函数综合传参-多个关键字
1 2 3 4 5 6 7 8 | # 函数综合传参 def people(name, * args, age = 18 , * * kwargs): print (name) print (args) print (age) print (kwargs) people( "zhangsan" , "man" , age = 25 , salary = 20000 , department = "IT" ) |
使用参数**kwargs传递参数转换成字典 输出如下
1 2 3 4 | zhangsan ( 'man' ,) 25 { 'salary' : 20000 , 'department' : 'IT' } |
函数返回值
函数返回值是函数得到的一个结果
函数的功能要专一,一个函数只能完成一个功能
返回值示例
1 2 3 4 5 6 7 8 9 | def test(a, b): c = a + b return c print (c) # 函数执行到return就结束了,这句不会继续执行 test( 1 , 2 ) # 调用执行函数 无输出 print (test( 1 , 2 )) # 打印返回值输出3 d = test( 1 , 2 ) # 返回值可以赋值给变量 print (d) |
函数结果要被其他地方调用就不用在函数内部使用print打印,色图return返回值
嵌套函数
在一个函数体内调用其他函数
1 2 3 4 5 6 | def aaa(): print ( "aaa" ) def bbb(): print ( "bbb" ) aaa() bbb() |
执行顺序
1,定义函数aaa
2,定义函数bbb
3,执行函数bbb
4,执行函数bbb内代码打印字符串bbb
5,执行函数bbb内代表aaa()即执行函数aaa 打印字符串aaa
输出为
1 2 | bbb aaa |
小结:
函数需要先定义在调用
调用函数就是执行函数体内的代码
函数类似一个变量,定义函数就是把函数体内代码在内存开放一个空间存放进去,通过函数名来调用
示例
传递三个数字返回最大值
1 2 3 4 5 6 7 8 9 10 | def max_num2(a, b): if a > b: return a else : return b def max_num3(n1, n2, n3): aaa = max_num2(n1, n2) bbb = max_num2(aaa, n3) return bbb |
解析
1 2 | 函数 max_num2传递 2 个参数返回较大的 函数 max_num3传递 3 个参数,在内部调用函数max_num2第一次调用返回参数 1 2 的较大值赋值给aaa 然后再次调用函数max_num2把aaa即参数 1 2 的较大值很参数 3 进行对比把较大赋值给bbb然后返回,最终获取了 3 给参数中的最大值 |
函数变量作用域
示例
1 2 3 4 5 6 7 8 9 10 | name = "zhangsan" # 全局变量 def change_name(): name = "lisi" # 这个变量只在函数内部生效 gender = "male" print (name) change_name() print (name) # 结果为zhangsan print (gender) # 报错,变量gender只在函数内部使用 |
注意:如果函数内部没有重新定义变量则在函数内部可以使用全局变量,如果定义了局部变量则优先使用局部变量
递归函数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2019-10-31 UltraISO制作启动U盘
2019-10-31 MySQL5.7修改wait_timeout参数
2017-10-31 Oracle归档文件夹权限设置错误导致的数据库问题解决