递归问题:
【汉诺塔的问题】
1.每次移动一个盘子
2.任何时候,大盘子在下,小盘子在上
方法:
1. 当n=1时,直接把A上的盘子移动到C盘子上
2. 当n=2时,
先把小盘子放到B上
把大盘子从A放到C上
再把小盘子从B放到C上
def hanno(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
hanno(n-1,a,c,b)
print(a,"--->",c)
hanno(n-1,b,a,c)
a = "A"
b = "B"
c = "C"
n = 3
hanno(n,a,b,c)
关于列表函数
append函数
#append函数
a =[i for i in range(1,10)]
print(a)
#在列表的末尾,插入元素20
a.append(20)
print(a)
insert函数
#insert 在指定的位置插入
#inser(index,data) 在index前面插入数据
a.insert(3,666)
#下标是3的元素是a[3] = 4 即在元素4前面插入新的元素666
print(a)
del删除
#
#pop,从对位拿出一个元素,即把最后一个元素取出来
last_else = a.pop()
print(last_else)
print(a)
#remove在列表中删除指定值的元素
print(id(a))
#a.romove(3)#若删除的元素没有在列表里面,则会报错
print(a)
print(id(a))
#clear清空,在原列表基础上直接给清空
#reverse 翻转
# [1,2,3] ---> [3,2,1]
#extend 扩展列表,把一个列表拼接到一个列表最后一个元素后
#count 返回列表的长度
#copy 拷贝
a = [1,2,3,4,5,666]
print(a)
b = a
b[3] = 77
print(a)
print(b)