局部变量与全局变量
全局变量变量名全部大写,局部变量变量名全部小写
顶头写的觉全局变量
在子程序里面写的叫局部变量
无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)