Python随心记--局部变量与全局变量

局部变量与全局变量
全局变量变量名全部大写,局部变量变量名全部小写
顶头写的觉全局变量
在子程序里面写的叫局部变量
无global的时候优先读取局部变量,且无法对全局变量重新赋值,注:如果是可变类型变量是可以改变的
name='liyifan'   #全局变量
def chang_name():
    global name   #加上这句将会改变全局变量的值
    name='achun'   #局部变量 如果前面加上global关键字,则这里是修改全局变量的值
    print('chang_name',name)
chang_name()
name = 'lin'
def test():
    name = 'wu'
    def tests():
        nonlocal name   #取上一级的name = 'wu'
        name = 'wupangpang'
    tests()
    print(name)
print(name)
test()
print(name)
递归
必须有一个明确的结束条件
每次进入更深一层递归时,问题规模相比上一次应当相应减少

def calce(n);
    print(n)
    calce(n)
calce(10)    #死循环

def calc(n):
    print(n);
    if int(n/2) == 0:
        return n
    return calc(int(n/2))
calc(10)
import time

person_list=['摩西','马克思','小米','爱丽丝']
def ask_way(person_list):
    print('-',60)
    if len(person_list)  == 0:   #删除完了全部列表数据,这里就会是0
        return '没人知道'
    person = person_list.pop(0)   #删除列表的第一个
    if person == 'momo':
        return '%ssay:I know, just go ahead and turn left.' %person
    print('hi! [%s],Could you tell me how to get XXXX?' %person)
    print("%sanswer:I don't know. You wait for me to ask for you.%s..." %(person,person_list))
    time.sleep(3)   #睡上3秒在去问下一个
    return ask_way(person_list)

res = ask_way(person_list)
print(res)
 
posted @ 2018-12-08 12:16  爱跑步的乌龟  阅读(420)  评论(0编辑  收藏  举报