1.全局变量与局部变量

全局变量作用域是整个程序

局部变量只作用再局部

#如果函数的内容无global关键字,优先读取局部变量,能读取全局变量,无法对全局变量重新赋值,但是对于可变类型,可以对内部元素进行操作,NAME = “fff”

#如果函数的内容有global关键字,变量本质上就是全局变量,可读取可复制

global指全局变量

nonlocal指上级变量

2.函数即变量

3.递归:(即调用自己本身)

例:
import time
p_list=["aa","bb","cc","dd","ee"]
def ask_way(p_list):
    print("-"*10)
    if len(p_list) == 0:
        return "没人知道"
    person = p_list.pop(0)
    if person == "dd":
        return "%s 说:我知道怎么去宠物商店" % person
    print("hi,%s,宠物商店怎么走" % person)
    print("%s回答:我不知道,我帮你问问%s。。。" % (person,p_list))
    time.sleep(5)
    res = ask_way(p_list)
    print("%s问的结果是:%res" % (person,res))
    return res
res = ask_way(p_list)
print(res)
结果:
----------
hi,aa,宠物商店怎么走
aa回答:我不知道,我帮你问问['bb', 'cc', 'dd', 'ee']。。。
----------
hi,bb,宠物商店怎么走
bb回答:我不知道,我帮你问问['cc', 'dd', 'ee']。。。
----------
hi,cc,宠物商店怎么走
cc回答:我不知道,我帮你问问['dd', 'ee']。。。
----------
cc问的结果是:'dd 说:我知道怎么去宠物商店'es
bb问的结果是:'dd 说:我知道怎么去宠物商店'es
aa问的结果是:'dd 说:我知道怎么去宠物商店'es
dd 说:我知道怎么去宠物商店

4.作用域 

5.匿名函数

6.编程式函数

 map:把可迭代对象,进行for循环,得出值交給前面的函数处理   ==  map(函数,可迭代对象)

filter函数:把可迭代对象,进行for循环,得出值交給前面的函数处理,如前面函数返回值是true,结果则保留下来

reduce函数:合并到一起   先导入functools工具:from functools import reduce  ==  reduce(函数,可迭代对象)

 

 

 

------