python 3.2隨便寫寫
阿新 • • 發佈:2019-01-01
Python3 程式設計第一步
在前面的教程中我們已經學習了一些 Python3 的基本語法知識,下面我們嘗試來寫一個斐波納契數列。
例項如下:
#!/usr/bin/python3# Fibonacci series: 斐波納契數列# 兩個元素的總和確定了下一個數 a, b =0,1while b <10:print(b) a, b = b, a+b
執行以上程式,輸出結果為:
112358
這個例子介紹了幾個新特徵。
第一行包含了一個複合賦值:變數 a 和 b 同時得到新值 0 和 1。最後一行再次使用了同樣的方法,可以看到,右邊的表示式會在賦值變動之前執行。右邊表示式的執行順序是從左往右的。
輸出變數值:
>>> i =256*256>>>print('i 的值為:', i) i 的值為:65536
end 關鍵字
關鍵字end可以用於將結果輸出到同一行,或者在輸出的末尾新增不同的字元,例項如下:
#!/usr/bin/python3# Fibonacci series: 斐波納契數列# 兩個元素的總和確定了下一個數 a, b =0,1while b <1000:print(b,end=',') a, b = b, a+b
執行以上程式,輸出結果為:
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
print() sep 引數使用:
cnjc1855
133***[email protected]
9個月前 (08-06)hackmeng
715***[email protected]
看了一下,目前還沒有把遞迴單獨拿出來講解
下面使用遞迴方式求斐波納契數列
其實遞迴就是函式內部呼叫自身。
使用 print(fab(num)) #num 是所求項位於數列中的位數【‘fab(1)’是指第一位斐波納契數】,可用遞迴方式求輸入數字的斐波納契結果
hackmeng
715***[email protected]
8個月前 (09-13)月夜面尊
Han***[email protected]
樓上說用遞迴的,單純說遞迴還好,其實遞迴在很大程度上犧牲了空間換取了可讀性。每次呼叫遞迴函式的時候都會建立一個函式棧,如果遞迴深度過大,則會造成溢位狀況。原文中使用a,b = b,a+b 方法求斐波那契數列,佔用空間少,來回只有兩個變數的空間佔用,很方便。
月夜面尊
Han***[email protected]
5個月前 (12-10)leviyb
lev***@163.com
樓上給出了求取斐波那契數列第n項的方法,利用列表可以將前20項輸出.但是遞迴演算法重複計算太多,基本計算到第40項就卡住了,太浪費資源,利用列表記錄n-1項,可以很大程度上減少重複計算量.利用字典記錄也可以實現相同運算.