第六天
函数相关
一、全局变量,局部变量
1.全局变量:在任何位置都能调用(不要同名)
2.局部变量:在子进程中定义
name = 'Rice'
def change_name():
name = 'cool'
print(name)
#在子程序中,虽然子程序中和全局变量用的是同一个name,但还子进程还是会修改
3.如何修改全局变量
def change_name():
global name #申明全局变量,可在子进程中修改全局变量
name = 'Cool'
4.在程序设计中尽量不要修改全局变量
二、递归函数
1.
递归的体现:自己调用自己,循环自身
def cale(n):
print(n)
time.sleep(2)#停顿2秒,便于观察
cale(n) #调用自身
cale(10)
2.
递归特性:
必须要有一个明确的结束条件(基底:退出条件,不让就是死循环)
def cale(n):
if int(n/2) == 0:
return n # 执行return后退出循环(终止条件)
res = cale(int(n/2)) #把最终的救国赋值给res
return res
cale(10)
三、return补充
1.
如果函数中不含return ,则返回None,有则返回return的默认值
def test():
print('hello')
return 1
res = test() #最终的结果赋值给res
print(res)
2.
上面函数中,如果直接return res,则返回的是res函数的地址
四、匿名函数-lambda
1.定义匿名函数,没有函数名
lambda x:x+1
2.匿名函数必须要赋值
func = lambda x:x+1
func(1,2) #赋值后传入参数
3.
可以做简单的判断
lambda x:x.starswith('s') -但是不能用if等
4.多参数:
func = lambda x,y,z:x+y+z
res = func(1,2,34)
print(res)
5.以元祖的形式返回多个值
func = lambda x,y,z:(x+1,y+1,z+1)
浙公网安备 33010602011771号