Python基础局部变量全局变量,递归的特性——07

Posted winsdom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础局部变量全局变量,递归的特性——07相关的知识,希望对你有一定的参考价值。

局部变量与全局变量

如果函数的内容无global关键字,优先读取局部变量,能读取全局变量,无法对全局变量重新赋值,但是对于可变类型,可以对内部元素进行操作。

如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值。

 

 

 

递归

特性:

1、必须有一个明确的结束条件

2、每次进入更深一层递归时,问题规模相比上次递归都应有所减少

3、递归效率不高,递归层次过多会导致栈溢出

例:

def calc(n):
    if int(n/2) == 0:
        return n
    return (int(n/2))
 
calc(10)
#运行结果是:
10
5
2
1

 

一个问路的例子:

person_list = [winsdom,xl,hzz,hc]
def ask_way(person_list):
    if len(person_list) == 0:
        return 没有人知道
    person = person_list.pop(0)
    if person == hc:
        return %s说,我知道在哪,就在。。。往右走%person
    print(%s说,我不知道怎么去,我帮你问问[%s]%(person,person_list))
    return ask_way(person_list)

res = ask_way(person_list)
print(res)
#结果是:
winsdom说,我不知道怎么去,我帮你问问[[xl, hzz, hc]]
xl说,我不知道怎么去,我帮你问问[[hzz, hc]]
hzz说,我不知道怎么去,我帮你问问[[hc]]
hc说,我知道在哪,就在。。。往右走

 

以上是关于Python基础局部变量全局变量,递归的特性——07的主要内容,如果未能解决你的问题,请参考以下文章

Python学习——02-Python基础——4-变量与递归函数

第七章 python基础之函数,递归,内置函数

python学习-day15:局部变量与全局变量嵌套函数递归

python-递归,局部变量与全局变量

第十二篇 Python函数之全局变量&局部变量&递归函数

Python 小栈_05:Python 变量和递归函数