Python学习day06-全局变量与局部变量(函数)、函数递归、风湿理论之函数即变量

一、全局变量与局部变量(函数)

①函数的特性:
1.函数内可以调用自己的函数
2.函数内可以定义新函数,新函数只可以在函数内部使用,不能在其他作用域内使用
②global、nonlocal关键字
(1)global
函数内部调用全局变量,在全局变量前加global,相当于对全局变量的引用,
在函数内对全局变量操作,会改变全局变量的值。

a=1
def text():
    global a
    a=2
text()
print(a)	#2

(2)nonlocal
对上一级变量的引用,如果上一级没有找到,就继续往上走,
直到找到为止(但是不能超出作用域,比如函数内部不能找到函数外)

a=1
def weihou():
    a=2
    def weiweihou():
        nonlocal a
        a = 3
    weiweihou()
    print(a)	#3
    
weihou()
print(a)	#1

二、风湿定理之函数即变量

概念:定义函数时相当于定义了一个变量,没有调用时不会执行功能,
但是存在于程序中,下面举两个例子,比较容易理解

例1:程序不会出错
def foo():
    print('from foo')
    bar()

def bar():
    print('from bar')
foo()	#在执行foo函数前已经定义好了bar
例2:程序会出错
def foo():
    print('from foo')
    bar()
foo()	#在调用foo前没有定义好bar函数
def bar():
    print('from bar')

三、函数递归

一个问路实例:

import time
persons=["马飞翔","刘健康","董雨生","陈果"]
def FindWay(perosns):
    time.sleep(2)
    print("=====================")
    person=persons.pop(0)
    if person=="董雨生":
        print("%s说:我知道路在哪里"%person)
        return
    else:
        print("%s说:我不知道路在哪里,我帮你问问:%s"%(person,persons))
        return FindWay(persons)


FindWay(persons)

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/82861130