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