python实现小程序

1、杨辉三角形Python实现:        


          1
         / \
        1   1
       / \ / \
      1   2   1
     / \ / \ / \
    1   3   3   1
   / \ / \ / \ / \
  1   4   6   4   1
 / \ / \ / \ / \ / \
1   5   10  10  5   1


#杨辉三角形
def triangel(n):
    L=[1]#定义一个list[1]
    while True:
        yield L#打印出该list
        L = [L[x] + L[x + 1] for x in range(len(L) - 1)]#计算下一行中间的值(除去两边的1)
        L.insert(0, 1)#在开头插入1,L.insert(index, object) -- 在下标处index插入object
        L.append(1)#在结尾添加1
        if len(L) > 10:#仅输出10行
            break
#生成一个generator对象,然后通过for循环迭代输出每一行
a=triangel(10)
for i in a:
    print(i)

2、找出列表中最大最小值

print(panduan([]))
def pan(L):
    if L!=[]:
        #MAX=L[0],MIN=L[0]#max=L[0],min=L[0]显示错误,int不能迭代
        MAX = L[0]
        MIN=L[0]
    for i in range(len(L)):
        if L[i]>MAX:
            MAX=L[i]
        if L[i] < MIN:
            MIN = L[i]
    return MAX,MIN
print(pan([1,2,3,4,5,6]))

3、汉诺塔的移动,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法
#根据圆盘的数量确定柱子的排放顺序:若n为偶数,按顺时针方向依次摆放 A B C;
#若n为奇数,按顺时针方向依次摆放 A C B。
#⑴按顺时针方向把圆盘1从现在的柱子移动到下一根柱子,即当n为偶数时,若圆盘1在柱子A,则把它移动到B;若圆盘1在柱子B,则把它移动到C;若圆盘1在柱子C,则把它移动到A。
#⑵接着,把另外两根柱子上可以移动的圆盘移动到新的柱子上。即把非空柱子上的圆盘移动到空柱子上,当两根柱子都非空时,移动较小的圆盘。这一步没有明确规定移动哪个圆盘,你可能以为会有多种可能性,其实不然,可实施的行动是唯一的。
#⑶反复进行⑴⑵操作,最后就能按规定完成汉诺塔的移动。
#所以结果非常简单,就是按照移动规则向一个方向移动金片:
#如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C
def move(n,a,b,c):
    if n==1:
        print(a,'->',c)
    else:
        move(n-1,c,a,b)
        print(a,'->',c)
        move(n - 1, b, a, c)
print(move(2, 'a', 'b', 'c'))
print(move(3,'a','b','c'))
print(move(4,'a','b','c'))
print(move(5,'a','b','c'))




猜你喜欢

转载自blog.csdn.net/lilulilu220723/article/details/85254386