格式
python中的函数的格式为:
python
def task():
task1
task2
print('task over') #函数结束,非函数语句
使用def关键字来定义函数,函数范围与循环判断类似,同样需要在同一列里来圈定。
与C不同的是,由于代码是直接执行(不用找main函数),所以要使用函数,只需要任意地方调用函数名即可
传参
位置传参
函数传参的基本办法(位置参数)就是在函数里直接使用变量,然后调用函数时将值对应写入即可,例如:
python
def AtoB(a, b):
if a > b:
print(a)
else:
print(b)
AtoB(3,4)
AtoB(25,6)
#打印为:4 25
关键字传参
python中还有其他传参方法,如关键字传参,指定调用函数中实参与函数中形参的对应关系来实现:
python
def task1(speed, x,y,z):
if x<10:
speed=speed*10
elif x>10 and y<10:
speed=90
elif x>10 and y>10:
speed=50
elif z == y + x:
speed=0
else :
speed=speed
return speed
print(task1(z=64,x=10,y=20,speed=32))
#打印为:32
关键字与位置参数也可以混用,但用时需要位置在前,关键字在后。
限制传参方式:/前必须用位置参数,*后必须用关键字参数,如:
python
def task1(speed, x,/,y,*z):
if x<10:
speed=speed*10
elif x>10 and y<10:
speed=90
elif x>10 and y>10:
speed=50
elif z == y + x:
speed=0
else :
speed=speed
return speed
此时只能这么调用了:
python
print(task1(32,10,y=20,z=64))#y无所谓
参数默认值
参数默认值指的是在定义函数时,通过形参=值的方式,为参数指定一个默认值,如:
python
def task1(speed, x,y,z,m=42):
if x<10:
speed=speed*10
elif x>10 and y<10:
speed=90
elif x>10 and y>10:
speed=50
elif z == y + x:
speed=0
else :
speed=m
return speed
print(task1(z=64,x=10,y=20,speed=32))#打印42
但如果引用函数时指定了参数值,则参数默认值就会被覆盖:
python
print(task1(z=64,x=10,y=20,speed=32,m=84))#此时打印84
则此时,我们可以得知print的本质以及其end的原理了
**注意:**默认参数一定位于其他参数后