标签:等于 += 元素 render sub turn outline print 数据
规则:
1.每次移动一个盘子
2.任何时候大盘子在下面,小盘子在上面
方法:
1.n = 1 直接把 A 上的盘子移到 C 上去,A->C 2.n = 2 :
小盘子放到B 上A->B
把大盘子放到C上 A->C
把小盘子放到C上 B->C
3.n = 3:
把A上的两个盘子,通过C移到B上去,调用递归实现
把A上的最大的盘子移到C上 A->C
把B上的两个盘子借助A,移到C上去,调用递归实现
4.n = n:
把A 上的n-1个盘子,借助c移到B上去,调用递归
把A 上的 最大的盘子移到C上,A->C
把B上的n-1个盘子,借助A,移到C上去,调用递归
def hano(n,a,b,c):
"""
汉诺塔的递归实现
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
# 把 n-1 个盘子,借助于 c 塔,移动到 b 塔上去
hano(n-1,a,c,b)
print(a,"-->",c)
# 吧 n-1 个盘子借助于 A 塔,移到c 塔上去
hano(n-1,b,a,c)
a = "A"
b = "B"
c = "C"
?
n = 1
hano(n,a,b,c)
n = 2
hano(n,a,b,c)
n = 3
hano(n,a,b,c)
# list (列表)
?
- del:删除命令
# del 删除
a = [1,2,3,4,5]
del a[2]
print(a)
# del 删除
# 如果使用del 之后,id 的值和使用前不一样,则生成了一个新的 list
a = [1,2,3,4,5]
print(id(a))
del a[2]
print(id(a))
print(a)
# del 一个变量后就不能在使用此变量
del a
print(a)
## 列表相加(相乘)
?
- 使用加号“ + ”连接两个列表
a = [1,2,3,4,5]
b = [11,12,13,14]
d = a + b
print(d)
a = [1,2,3,4,5]
b = a * 10
print(b)
## 成员资格运算
?
# 就是判断一个元素是否在 list 里边
?
a = [1,5,9,6,7]
b = 5
# C的值一定是个布尔值
c = b in a
print(c)
?
b = 4
print(b in a)
# not in
a = [1,5,9,6,7]
b = 10
print(b not in a)
# 链表的遍历
- for
- while
# for in list
a = [1,5,9,6,7]
?
# 挨个打印出a 里边的元素
for i in a:
print(i)
a = ["I love you"]
for i in a:
print(i)
## range
# 在 in 后面的所有变量要求是可以可迭代的内容
for i in range(1,11):
print(i)
# while循环访问list, 一般不用 while访问
a = [1,2,3,4,5]
length = len(a)
# indx 表示的是 list 的下标
indx = 0
while indx < length:
print(a[indx])
indx += 1
## 双层列表循环
a = [["one",20],["love",50],["pou",60] ]
for k,v in a:
print(k,"__",v)
## 双层列表循环变异
a = [["one",20,"onr"],["love",50],["pou",60] ]
for k,v in a:
print(k,"__",v)
## 双层列表循环变异
a = [["one",20,"hah"],["love",50,"yyj"],["pou",60,"bbq"] ]
# 这个例子说明,k v w 的个数应该跟解包出来的个数一致
for k,v,w in a:
print(k,"__",v,"__",w)
# 列表内涵: list content
?
- 通过简单的方式创作列表
# for 创建
a = ["a","b","c","d"]
# 用 list a 创建一个 list b
# 下面代码的含义是,对于所有 a 中元素,这个放入新的列表中
b = [i for i in a]
print(b)
# 对于 a 中所有元素乘以 10 ,生成一个新的 list
a = ["a","b","c","d"]
# 用 list a 创建一个 list b
# 下面代码的含义是,对于所有 a 中元素,这个放入新的列表中
b = [i*10 for i in a]
print(b)
# 还可以过滤原来 list 中内容放入新的列表
# 比如原有列表 a ,需要把所有 a 中的偶数生成新的列表 b
?
a = [x for x in range(1,35)] # 生成从 1 到 34 的整数列表
# 吧 a 中所有偶数生成一个新的列表 b
b = [m for m in a if m % 2 == 0 ]
print(b)
# 列表生成可以嵌套
# 由两个列表 a ,b
?
a = [i for i in range(1,10)]# 生成列表 a
print(a)
?
b = [i for i in range(100,400) if i % 100 == 0]
print(b)
?
# 列表生成是可以嵌套,此对等于两个 for 循环嵌套
c = [m+n for m in a for n in b]
print(c)
?
# 上面代码跟下面的代码等价
for n in a:
for m in b:
print(m+n, end=" ")
print()
?
?
?
# 嵌套的列表生成式也可以用条件表达式
c = [ m+n for m in a for n in b if m+n < 200]
print(c)
## 关于列表的函数
?
# len 求列表长度
a = [x for x in range(1,20)]
print(len(a))
?
# max :求函数中的最大值
# min: 同理(最小值)
print(max(a))
print(min(a))
?
b = ["one","whuin","lone"]
print(max(b))
print(min(b))
# list :把其他的数据转换成 list
a = [1,2,3]
print(list(a))
s = "I am is yj do you know"
print(list(s))
print()
标签:等于 += 元素 render sub turn outline print 数据
原文地址:https://www.cnblogs.com/yuanjian6/p/9702916.html