欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-24 22:03:40
2019-01-09 经过了十天左右的休息,重新开始学习玩蛇 变量与递归函数: 1.局部变量和全局变量: 当局部变量与全局变量同名时,在定义局部变量的子程序内,局部变量起作用,在其他地方全局变量起作用。 global可以在函数中获取全局变量,变量本质上就是全局变量,可读取可赋值;如果函数的内容无gl ......

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