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)

 

posted @ 2022-07-27 08:59  colin_7  阅读(18)  评论(0编辑  收藏  举报