一.变量的作用域
1.用globals和locals显示出全局限量和局部变量
print(locals())
print(globals())
2.可以用global声明全局变量
def func():
global b
b=100
print(b)
func() #不调用func,直接print(b)会报错,不调用func就没有执行声明全局变量b
print(b)
二.eval()函数,exec()函数
1.eval()函数:把字符串当代码来执行,并返回结果
a=10
b=20
print('a+b')
print(eval('a+b'))
2.exec()函数:把字符串当代码执行,只执行,不返回结果
a=10
b=20
print(exec('a+b'))
exec('print("a+b",a+b)') #执行
print(exec('print("a+b",a+b)')) #执行后,返回none
三.递归
python对递归深度有限制,超过次数会报错,所以要特别注意递归结束的条件
1.斐波那契数列,第一个数是1,第二个数是1,之后每个数是前两个数字之和
def fib(n):
if n==1:
return 1
if n==2:
return 1
return fib(n-1)+fib(n-2)
print(fib(5)) #输出5
2.汉诺塔
def hannuo(n,a,b,c):
if n==1:
print(a,'-->',c)
else:
hannuo(n-1,a,c,b)
print(a,'-->',c)
hannuo(n-1,b,a,c)
hannuo(3,'a','b','c')