变量作用域
顾名思义,即变量可以产生作用的区域,简单分为global和local (全局和局部)
在python中定义全局变量使用关键字 global +变量名
局部变量无需定义,函数体内的变量,如果不用global关键字进行变量的作用域提升,则默认作用域为函数体内。需要注意的一点是,在函数内进行变量作用域提升时,在调用该变量时,应先执行函数,使变量提升为全局变量,才可以调用,否则报错
例:
def func(n):
global a
a = n
print(a)//直接print(a)回报错
//正确方式
func(100)
print(a)
内置数据结构(变量类型)
list(列表)(有点类似php的数组)
定义方式 a = list([1,2,3,4,5,6])或a = [1,2,3,4,5,6]
和php类似,可以通过下标取值 a[0] 的值就是1
分片的概念(类似php的数组截取)
a[1:5:1] 的意义是 从下标为2的地方开始截取,截到下表为4的地方,不包括下标为4的值,截取时每隔1个数取一个值
最神奇的一点
如果 a = 【1,2,3】
aa = a
a【0】 = 100
此时 aa【0】也会等于100 a和aa完全相等
汉诺塔递归实例(规则,一次只能移一个,必须大的在下面)
def hano(n,a,b,c):
if n == 1:
print(a,'-->',c)
return None
if n == 2:
print(a,'-->',b)
print(a,'-->',c)
print(b,'-->',c)
return None
if n > 2:
hano(n-1,a,c,b)#把c当成媒介从a上转移到b上
print(a,'-->',c)#把a上剩的最大的盘子转移到c上
hano(n-1,b,a,c)#把a当成媒介从b上转移到c上完成汉诺塔转移
return None
hano(3,'A','B','C')
帮助理解递归
网友评论