python笔记三:函数

一.变量的作用域

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')

   

猜你喜欢

转载自blog.csdn.net/qq_41518266/article/details/86002276
今日推荐