函数的创建:
def 函数名(参数):
函数体
return xxxx
def cal(x,y): #加法
c=x+y
return c
result=cal(3,4)
print('3+4=',result)
结果:
3+4= 7
‘
’
关键字参数:
def devide(x,y):
d=x/y
return d
result2=devide(y=10,x=20) #关键字参数 #传递参数时,名字相同时,根据名字传递参数
print('20/10 =',result2)
result3=devide(10,20)
print('10/20 =',result3)
结果:
20/10 = 2.0
10/20 = 0.5
‘
‘
’
函数的返回值:
函数不需要返回值时 return可以不写
返回值是一个时,直接返回类型
函数返回多个值时是元组
def fun(num):
odd=[] #奇数
even=[] #偶数
for i in num:
if i%2==0:
even.append(i)
else:
odd.append(i)
return odd,even
list1=[123,232,1432,436]
print(fun(list1))
结果:
([123], [232, 1432, 436])
‘
‘
’
默认值参数:
#函数定义默认值参数
def fun2(x,y=10):
c=x-y
print(f'{x}-{y}=',c)
fun2(30) #y采用默认值10
fun2(30,20)
结果:
30-10= 20
30-20= 10
‘
‘
’
个数可变的位置参数和个数可变的关键字参数:
#个数可变的位置参数 结果为元组
def fun3(*args): #函数定义时的 可变的位置参数
print(args)
print(args[0])
fun3(10,20,30)
'''def fun5(*args,*a): #(只能定义一个位置可变的位置参数)
pass''' #报错
#个数可变的关键字参数 结果为字典
def fun4(**args): #只能定义一个个数可变的关键字参数
print(args)
fun4(a=10)
fun4(a=10,b=20,c=30)
#在一个函数的定义过程中,有可变位置参数和关键字参数 要求位置参数在关键字参数之前
def fun6(*args,**arg2s):
print(args,arg2s)
fun6(123,123,124,34,a=23,b=34,c=34)
结果:
(10, 20, 30)
10
{‘a’: 10}
{‘a’: 10, ‘b’: 20, ‘c’: 30}
(123, 123, 124, 34) {‘a’: 23, ‘b’: 34, ‘c’: 34}
‘
‘
’
将列表中的元素传入函数之中:
#将列表中的元素传入函数之中
def fun7(x,y,z):
c=x+y+z
print(f'{x}+{y}+{z}={c}')
list2=[33,44,11]
#fun7(list2) 报错,参数不够
fun7(*list2) #需要在list之前加*
结果:
33+44+11=88
字典传入方式同理,使用**
‘
‘
’
def fun8(x,*,y,z): #*之后的参数只能采用关键字传递参数,即y,z
print(f'{x}+{y}+{z}={x+y+z}')
fun8(11,y=22,z=33)
# fun8(11,22,33) 报错:TypeError: fun8() takes 1 positional argument but 3 were given
结果:
11+22+33=66