文章目录
函数
变量作用域
egg_count = 0
def buy_eggs():
print(egg_count)
print(egg_count+1)
egg_count += 12 # purchase a dozen eggs
buy_eggs()
上述代码中 print() 不会报错,没有问题
但是egg_count += 12 赋值操作会报错!!!
发现在函数内,我们可以成功地输出外部变量的值。因为我们只是访问该变量的值。当我们尝试将此变量的值更改或重新赋值为另一个值时,我们将遇到错误。Python 不允许函数修改不在函数作用域内的变量。
但是上面的原则仅适用于整数和字符串,列表、字典、集合、类中可以在子程序(子函数)中通过修改局部变量达到修改全局变量的目的。
lambda 表达式
lambda 又称为匿名函数, 适用于代替不是很复杂的函数, 可以写的更简单
double = lambda x, y: x * y
一共有3各部分
- lamdba
- 之后是函数的参数,可以是多个
- 是被评估并在函数中返回的表达式, 类似于return
map(func, iterable)
map 是一个高阶函数, 接受函数和可迭代对象作为输入, 并返回一个将该函数应用到可迭代对象的每个元素的迭代器.
numbers = [
[34, 63, 88, 71, 29],
[90, 78, 51, 27, 45],
[63, 37, 85, 46, 22],
[51, 22, 34, 11, 18]
]
列表中每个列表的和/数字个数(均值) map() 是返回一个迭代器, list() 之后才转换成列表
averages = list(map(lambda x: sum(x)