1. 程式人生 > >python實現小程式

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'))