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-变量与递归函数