Python 训练 Day 5-6 函数与lambda表达式
静水流深 2019.10.26
函数
函数
函数就是能够实现特定功能的一个代码块,这个代码块可以反复使用。在定义的时候,关键字 def 函数名 括号 冒号。在函数体内要缩进以表示这是函数体内容。
格式如下
def JSLSfunction():
print('This is JSLS\' blog')
调用函数的时候直接写出函数的名字即可
JSLSfunction()#'This is JSLS' blog'
参数
1)形参和实参
形参就是在函数定义时候括号里的内容。实参就是在函数调用的时候传递给函数的值。
def JSLSfunction (xingcan)
print (xingcan+=1)
shican = int('输入你的数字')
JSLSfunction (shican)
在这里,函数定义时候是形参,传递进就是实参。形参只是个名字,没有实际意义,实参有实际值。
2) 关键字参数
关键字参数就是在函数定义的时候,形式参数有名字。形式参数可能有很多,当我们在调用函数的时候,需要向函数传递多个实际参数。当我们不进行说明,默认传入的实参和形参顺序一致。但是我们在调用函数的时候,可以声明那个是给形参A的你是个是给形参B的。
def Myfunction(a,b)
print(a'呵呵'b)
当我们不去理会顺序的时候
Myfunction('甲','乙')#甲呵呵乙
Myfunction('乙','甲')#乙呵呵甲
当我们有关键字参数
Myfunction(b='乙',a='甲')#甲呵呵乙
3) 默认参数
定义函数时候可以给形参一个默认值,如果有实参传递进来,就用实参。
def Myfunction(a=1)
print('a')
没有实参就调用 Myfunction ( ),
Myfunction()#1
当我们加入实参
Myfunction(5)#5
4)收集参数,收集参数就是在定义函数的时候在形参名前加上 * 号,然后就会收集你传入的所有实参。当函数在运行的时候,你想让函数调用某个特定值,就加上方括号 [ ] 。
def Myfunction (*canshu)
print (canshu,canshu[0])
Myfunction (1,'JSLS') #['1','JSLS'] 1
如果在收集参数后有需要定制特定参数,用关键字参数,否则传递进去的实参全部被认为是收集参数。
def Myfunction (*canshu1,canshu2)
print (canshu2)
Myfunction (1,'jsls',3.14,canshu2=555) #555
5) 全局变量
函数所使用的变量是局部变量,实参传递进入函数,函数对于实参的任何修改都不会影响到实参原本值。
当我们想对外部变量实现修改,在定义函数的时候可以使用关键字 global。
def Myfunction(canshu)
global canshu
canshu+=1
A=10
print (A)#10
Myfunction(A)
print (A)#11
内嵌函数
内嵌函数就是在函数内再定义一个函数
def fun1()
print('fun1 正在被调用......')
def fun2()
print('fun2 正在被调用......')
fun2()
fun1()#fun1 正在被调用...... fun2 正在被调用......
lambda表达式
格式
lambda x : x+=5
冒号前是是参数,冒号后是返回值。多个参数/返回值用逗号 , 隔开。
lambda表达式相当于一个匿名函数,非常精简,可以把原本的函数定义给省去。不需要很多的空间。