看了一些关于python中函数的知识点,写在pycharm中了,运行着进行理解。
# 以下代码均可运行 自行运行
# 6.4 函数的递归调用
def coutdown(n):
if n <= 0:
print('Blastoff')
else:
print(n)
coutdown(n-1)
coutdown(3)
def print_n(s,n):
if n <= 0:
return
print(s)
print_n(s,n-1)
print_n(1,3)
# 匿名函数:lambda表达式
def make_incrementor(n):
return lambda x:x+n
f = make_incrementor(42)
print(f(0))
print(f(1))
# map()函数
def square(x):
return x*x
list_a = [1,2,3]
list_b = map(square,list_a)
for _ in list_b:
print(_)
def f(x,y):
return x*y
list_a = list(map(f,[1,2,3],[4,5,6]))
print(list_a)
list_b = list(map(f,[1,2,3],[4,5]))
print(list_b)
# 变量作用域
# 变量的作用域决定了在那一部分程序可以访问那个特定的变量名称。Python语言的作用一共有四种,分别是:
'''
L (local):局部作用域
E (enclosing):闭包函数外的函数中
G (global):全部作用域
B (built-in):内建作用域
由L-E-G-B的规则查找,即在局部找不到,便会去在局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找
'''
"""
x = int(2.1) # 内建
g_count = 0 # 全局
def outer():
o_count = 1 # 闭包函数外的函数中
def inner():
i_count = 2 # 局部作用域
"""
# 全局变量和局部变量
total = 0 # 全局变量
def sum(a,b):
total = a + b # 局部变量
print(total)
return total
sum(10,20)
print("函数外是全局变量:",total)
# global 和 nonlocal 关键字
# 当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字
num = 1
def fun1():
global num #需要用关键字global声明
print(num)
num = 123
print(num)
fun1()
# 如果要修改嵌套作用域(enclosing作用域,外部非全局作用域)中的变量则需要使用nonlocal关键字。例如:
def outer():
num = 10
def inner():
nonlocal num # nonlocal关键字声明
num = 100
print(num)
inner()
print(num)
outer()