文章目录
- 一、函数的返回值
- 二、函数的参数定义
一、函数的返回值
"""
函数的返回值
函数返回多个值时,结果为元组
"""
def fun1(num):
odd=[]
even=[]
for i in num:
if i % 2:
odd.append(i)
else:
even.append(i)
return odd,even
list=[2,3,4,5,6,7,8,99]
print(fun1(list))
"""
函数的返回值
1、如果函数没有返回值,return可以省略不写
2、函数的返回值,如果是1个,直接返回类型
3、函数的返回值,如果是多个,返回的结果为元组
函数在定义的时候是否需要返回值,需要视情况而定
"""
def fun2():
print("hello")
#return
def fun3():
return "hello"
def fun4():
return "hello","python"
fun2()
print(fun3(),"\n",fun4())
二、函数的参数定义
"""
函数的参数定义
函数定义默认值参数,形参需要设置默认值,只有与默认值不符(需要修改形参的值)的时候才需要传递实参
"""
def fun(a,b=10):
print(a,b)
fun(1)
fun(1,2)
"""
函数的参数定义
1、个数可变的位置参数 个数可变的位置参数只能有1个
定义函数时,可能无法事先确定传递的位置实参的个数,使用可变的位置参数
使用*定义个数可变的位置参数
结果为一个元组
2、个数可变的关键字参数 个数可变的关键字参数只能有1个
定义函数时,无法事先确定传递关键字的个数时,使用可变的关键字形参
使用**定义个数可变的关键字形参
结果为一个字典
在一个函数的定义过程中,既有个数可变的关键字形参,也有个数可变的位置形参
要求,个数可变的位置形参,放在个数可变的关键字形参之前
def fun(**args1,*args2):
pass
"""
def fun1(*args):
print(args)
def fun2(**args):
print(args)
fun1(1,2,3)
fun2(a=1,b=2,c=3)
def fun3(a,b,c): # a,b,c在函数定义处,所以是形式参数
print('a=',a)
print('b=',b)
print('c=',c)
# 函数的调用
fun3(11,22,33) # 函数的调用时的参数传递,成为位置传参
list=[11,22,33]
fun3(*list) # 在函数的调用时,将列表的每个元素转换为位置实参传入
fun3(b=11,c=33,a=22) # 在函数的调用时,所以是关键字实参
dic={'a':100,'b':200,'c':300}
fun3(**dic) # 在函数调用时,将字典的键值对都转换为关键字实参传入
def fun4(a,b,*,c,d): # 从*之后的参数,在函数调用时,只能采用关键字参数传递
print('a=', a)
print('b=', b)
print('c=', c)
print('d=', d)
fun4(1,2,c=3,d=4)
# 函数定义时的形参的顺序问题
def fun5(a,b,*,c,d,**args):
pass
def fun6(*args1,**args2):
pass
def fun7(a,b=10,*args1,**args2):
pass