01-函数的多返回值
只执行一次rteturn
那么如何返回多个返回值呢?
多个返回值
""" 演示函数的多返回值 """ #演示使用多个变量,接收多个返回值 def test_return(): return 1,2,3 x,y,z=test_return() print(x) print(y) print(z)
返回值的类型是不受限的。
""" 演示函数的多返回值 """ #演示使用多个变量,接收多个返回值 def test_return(): return 1,"hello",True x,y,z=test_return() print(x) print(y) print(z)
02-函数的多种传参方式
函数参数的种类
位置参数
关键字参数
关键字参数
""" 演示多种传参的形式 """ #位置参数-默认使用形式 def user_info(name,age,gender): print(f"姓名是:{name},年龄:{age},性别:{gender}") user_info('小明',20,'男')
""" 演示多种传参的形式 """ #位置参数-默认使用形式 def user_info(name,age,gender): print(f"姓名是:{name},年龄:{age},性别:{gender}") # user_info('小明',20,'男') #关键字参数 user_info(name='小王',age=11,gender='女')
""" 演示多种传参的形式 """ #位置参数-默认使用形式 def user_info(name,age,gender): print(f"姓名是:{name},年龄:{age},性别:{gender}") # user_info('小明',20,'男') #关键字参数 # user_info(name='小王',age=11,gender='女') #关键字参数也可以乱序,不会影响效果,而位置参数就需要一一对应 user_info(name='小王',gender='女',age=11)
""" 演示多种传参的形式 """ #位置参数-默认使用形式 def user_info(name,age,gender): print(f"姓名是:{name},年龄:{age},性别:{gender}") # user_info('小明',20,'男') #关键字参数 # user_info(name='小王',age=11,gender='女') #关键字参数也可以乱序 # user_info(name='小王',gender='女',age=11) #关键字参数和位置参数混用,且关键字参数位置先后不影响结果 user_info('甜甜',gender='女',age=9)
缺省参数
如上图中就是在gender没有传递参数时候,就会默认为gender=男
#缺省参数(默认值)很明显最后一个是缺省参数,在最后面 def user_info(name,age,gender='男'): print(f"姓名是:{name},年龄:{age},性别:{gender}") user_info('小天',13) user_info('小天',13,gender='女')#当再传入一个参数值时,默认值回1发生改变,只有当没有传入参数值时,会使用默认值
==注意==:要使用默认数值,必须将默认值放到最后。否则将会报错,必须统一的都在最后,可以是最后一个,也可以是最后有两个是默认值。
不定长参数
位置传递
不定长是指的就是参数的数量是可以任意数量的。位置传递的不定长是使用*号的关键字,args所接受的数量是无限的。
因为数量不定,所以args接收的是一个元组,元组可以存储多份元素。
关键字传递
两个星号,表示数量也是任意的,同时他的内容必须满足key等于键值对这种形式。传入参数时候,按照key=value的形式,传进去的数据就会按照字典形式存储,
#不定长-位置不定长,*号 #不定长定义的形式参数会作为元组存在,接收不定长数量的参数传入 def user_info(*args): print(f"args参数的类型是:{type(args)},内容是:{args}") user_info(1,2,3,'小明','男孩')
#不定长-关键字不定长,**号 key -word def user_info(**kwargs): print(f"args参数的类型是:{type(kwargs)},内容是:{kwargs}") user_info(name='小王',age=11,gender='男孩',addr='北京')
总结
args和kwargs只是习惯上写,但是一般都是会默认遵守
03-匿名函数-函数作为参数传递
传入数据的形式是指:数据不确定,但是计算逻辑已经确定好了,在函数内部已经写好了,就等着计算了
函数的传入形式:被计算的数据可以是确定的,而计算数据的逻辑是不确定的
""" 演示函数作为参数传递 """ #定义一个函数,接收另一个函数作为传入参数 def test_func(compute): result=compute(1,2) #确定compute是函数 print(f"compute参数的类型是:{type(compute)}") print(f"计算结果是:{result}") #定义一个函数,准备作为参数传入另一个函数 def compute(x,y): return x + y #调用,并传入函数 test_func(comput)
总结
04-匿名函数-lambda函数
匿名函数定义的语法
lambda函数
lambda不用return 它是默认return的。
""" 演示lambda匿名函数 """ #定义一个函数,接受其他函数输入 def test_func(compute): result=compute(1,2) print(f"结果是:{result}") #通过lambda匿名函数的形式,将匿名函数作为参数传入 test_func(lambda x,y:x+y)