第五天(全局变量,局部变量,高级函数)

在python中,没有缩进的变量为全局变量,推荐全部用大写字母。

NAME = "aitg"
def mz():
    global NAME
    print(NAME)
mz()

在代码块内部的变量为局部变量。

def mz():
    name = "aitg"
    print(name)
mz()

局部变量还可以使用global方法指定为全局变量

NAME = "码农也疯狂"
def mz():
    global NAME
    NAME = "aitg"
    return NAME
print(mz())
print(NAME)
#输出结果全部是 
# aitg
#aitg

 匿名函数使用

#计算x+1的结果
a = lambda x:x+1 
print (a(1)) #传入x值
#输出 2

递归使用

def calc(n):
    print(n)
    if int(n / 2) == 0: #终止条件
        return n
    res=calc(int(n / 2)) 
    return res

res=calc(10)
print(res)

高级函数

1、函数式编程

  • 函数本身可以赋值给变量,赋值后变量为函数;
  • 允许将函数本身作为参数传入另一个函数;
  • 允许返回一个函数。

2、map/reduce函数

  • map(fun, lst),将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表返回

  • reduce(func(x,y),lst),其中func必须有两个参数。每次func计算的结果继续和序列的下一个元素做累积计算。

  lst = [a1, a2 ,a3, ......, an]

  reduce(func(x,y), lst) = func(func(func(a1, a2), a3), ......, an)

3、filter函数

  • 筛选序列
  • filter(func, lst),将func作用于lst的每个元素,然后根据返回值是True或False判断是保留还是丢弃该元素。

原文地址:https://www.cnblogs.com/zhangguanghe/p/8719640.html