’’‘函数的格式’’'
def jiafa(a,b):#a,b:形参
c=a+b
return c
print(jiafa(10,20))#10,20:实参
’’‘函数输出列表中的奇偶数’’'
def fun(num):
odd=[] #存奇数
even=[] #存偶数
for i in num:
if i%2: #结果为Turn
odd.append(i)
else: #结果为False
even.append(i)
return odd,even
lst=[12,23,43,55,66,24,52]
print(fun(lst))
**’’’
函数的返回值
(1)如果函数没有返回值【函数执行完毕后不需要给调用出提供数据】 return可以省略不写
(2)函数的返回值如果是一个,直接返回类型
(3)函数的返回值如果是多个,返回的结果为元组
‘’’**
‘’‘函数的参数定义’’’
def fun(a,b=10): #b在函数的定义处,所以b是形参,而且进行了赋值,所以称为默认值形参
print(a,b)
fun(100)
fun(10,20)
def fun(*num):#’(*参数)’:个数可变的位置参数,输出元组
print(num)
fun(10)#输出:(10,)
fun(10,20)#输出:(10, 20)
fun(10,20,30)#输出:(10, 20, 30)
def fun1(**num):#’(**参数)’:个数可变的关键字形参,输出字典
print(num)
fun1(a=10)#输出:{‘a’: 10}
fun1(a=10,b=20,c=30)#输出:{‘a’: 10, ‘b’: 20, ‘c’: 30}
def fun2(a,b,c):#a,b,c,在函数的定义处所以是关键字形参
print(‘a=’,a)
print(‘b=’,b)
print(‘c=’,c)
fun2(10,20,30)#输出:a= 10 b= 20 c= 30,只输出了一个参数
#函数调用时的参数传递,称之为位置传参
lst=[100,200,300]
fun2(*lst)#输出:a= 100 b= 200 c= 300
#在函数调用时,将列表中的每个元素都转换为位置实参传入
t={‘a’:1000,‘b’:2000,‘c’:3000}
fun2(**t)#输出:a= 1000 b= 2000 c= 3000
#在函数调用时,将字典中的键值对都转换为关键字实参传入
def fun4(a,b,,c,d):#’‘号之后的参数,在函数调用时,只能采用关键字参数传递
print(‘a=’,a)
print(‘b=’,b)
print(‘c=’,c)
print(‘d=’,d)
fun4(10,20,30,40)#报错
fun4(10,20,c=30,d=40)#输出:a= 10 b= 20 c= 30 d= 40
fun4(a=10,b=20,c=30,d=40)#输出:a= 10 b= 20 c= 30 d= 40
‘’‘函数定义时的形参的顺序问题’’’
def fun5(a,b,*,c,d,**num):
pass
def fun6(*num,**num1):
pass
def fun7(a,b=10,*num,**num1):
pass
def fun8(**num,*num1): #报错
pass