day15

#全局变量与局部变量
定义在外部的变量都是全局变量
#在函数体中写  global name#声明这个局部变量name跟外部已经存在的全局变量name是一致的。
name = 'hans'#必须存在,不然global不能用,强用会报错
def chang():
    global name#跟c++的引用差不多是一个操行
    name = 'faker'
chang()
print(name)


name = ['faker','is']
def test():
    name.append('sb')#如果调用的是可变的类型,可以调用函数直接修改(不重新定义的话)
    print(name)
test()
print(name)
result:
['faker', 'is', 'sb']
['faker', 'is', 'sb']

注意啦。如果   name = 'xxx'
            global name#如果这样写会报错的。
#原则:全局变量全大写,局部变量全小写

nonlocal name#指定的是上一级的变量,也就是说,在本函数中就能对上一级的变量进行修改等操作。如果只有两级(全局和局部) 则不能用nonlocal,不然会报错。


def test1():#解释器读这个,知道了里面有test1函数,把test1函数的所有内容放入内存,知道了拟接受的参数表
    print('faker ',end='')
    foo()
def foo():#解释器读这个,知道了里面有foo函数,把foo函数的所有内容放入内存,知道了foo的拟接受的参数表
    print('is a sb')
test1()
result:
faker is a sb

林海峰的风湿理论:函数既变量  理解理解就好,别当真。 就是帮助人理解复杂的函数递归的。

递归特性:
    1、必须要有一个明确的结束条件
    2、每次进入更深一层递归时,问题规模相比上次递归都应有所减少
    3、递归效率不高
调试流程: 下断点,debug


猜你喜欢

转载自blog.csdn.net/weixin_41687289/article/details/80009063