变量与递归函数(第五天)

2019-01-09 

经过了十天左右的休息,重新开始学习玩蛇

变量与递归函数:

  1.局部变量和全局变量:

    当局部变量与全局变量同名时,在定义局部变量的子程序内,局部变量起作用,在其他地方全局变量起作用。

    global可以在函数中获取全局变量,变量本质上就是全局变量,可读取可赋值;如果函数的内容无global关键字,优先读取全局变量,只能读取全局变量,无法对全局变量重新赋值,可是对于可变类型,可以对内部元素进行操作

name =["wcb","lyn"]

def home():
    name.append("baby")
    print(name)

home()
print(name)

结果为:
['wcb', 'lyn', 'baby']
['wcb', 'lyn', 'baby']
name ="wcb"

def home():
    name = "WCB"
    def homehome():
        nonlocal name       #nonlocal,指定上一级变量
        name = "lyn"

    homehome()
    print(name)

print(name)
home()
print(name)

结果为:
wcb
lyn
wcb

  2.递归:

    1.必须有一个明确的结束条件

    2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少

    3.递归效率不高,递归层次过多会导致栈溢出

  3.匿名函数:

    lambda 形参:处理逻辑

    函数名 = lambda 形参:处理逻辑

    函数名()

func = lambda x:x+1
print(func(10))
func1 = lambda X,Y,Z:(X+1,Y+1,Z+1)
print(func1(1,2,3))

func = lambda x,y,z:x+1,y+1,z+1         #需要自己加括号
print(func(1,2,3)) 

2019-01-10 16:38:35

猜你喜欢

转载自www.cnblogs.com/LynWcb596922/p/10243121.html
今日推荐