day 15与函数相关
局部变量与全局变量
一般全局变量都大写,局部变量都小写
global关键字:引用全局变量
1. 如果函数内没有global关键字,优先提取局部变量,能读取全局变量,无法对全局变量重新赋值,但是对于可变类型
可以进行append ;clear等操作
2. 如果函数内有global关键字,变量本身就是全局的那个变量,可读取可赋值
nonlocal:(调用上一层变量)
递归函数:
1.必须有一个明确的结束条件
2.每次进入更深一层递归,问题规模相比上次递归都就有所减少,
3.递归效率不高,递归层次过多会导致栈溢出.
person_list = ['wy','hdm','hsf'] def ask_way(person_list): if len(person_list) == 0: return print("问遍了所有人 都不知道路") person = person_list.pop(0) if person == 'hsf': return print('%s说我知道路怎么走:'%person) print('%s说:我也不知道路怎么走,我去帮你问问%s'%(person,person_list)) ask_way(person_list) ask_way(person_list)