十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
直接創(chuàng)建一個類然后調(diào)用下面的def函數(shù)即可
創(chuàng)新互聯(lián)主營石景山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機APP定制開發(fā),石景山h5微信小程序開發(fā)搭建,石景山網(wǎng)站營銷推廣歡迎石景山等地區(qū)企業(yè)咨詢
#斐波那契數(shù)列
'''
第一位是1
第二位是1
第三位是2
公式位F(n)=f(n-1)+f(n-2)
'''
def get_Fibonacci_sequence(n):
'''輸入n,遍歷到第n位的斐波那契數(shù)列'''
a,b=0,1
if n=3:#即等于2 相當(dāng)于1,2位特殊處理
for i in range(n-1):#操作次數(shù)是n-1,去除一次第一位的操作
c=a+b
a,b,=b,c
print(b)#這里選擇先改變再輸出,可以減少1次的循環(huán)
def get_Fibonacci_Num(n):
'''輸入n,遍歷到第n位的斐波那契數(shù)列的第n位數(shù)'''
a, b = 0, 1
if n = 3: # 即等于2 相當(dāng)于1,2位特殊處理
for i in range(n - 1): # 操作次數(shù)是n-1,去除一次第一位的操作
c = a + b
a, b, = b, c
# 這里選擇先改變再輸出,可以減少1次的循環(huán)
return b
def get_Fibonacci_Num_recursion(n):
'''輸入n,遍歷到第n位的斐波那契數(shù)列的第n位數(shù),遞歸實現(xiàn)'''
if n==1 or n==2:#特別注意,這里要用邏輯或判斷,不能直接用或判斷,
return 1
else:
return get_Fibonacci_Num_recursion(n-1)+get_Fibonacci_Num_recursion(n-2)
get_Fibonacci_sequence(11)
print(get_Fibonacci_Num(11))
print(get_Fibonacci_Num_recursion(11))
首先定義函數(shù):
def fib(n):
a,b = 1,1
for i in range(n-1):
a,b = b,a+b
return a
n=int(input("請輸入n的值:"))
print("第{0}位斐波那契數(shù)列的值"%(fib(n)))
斐波那契數(shù)列指的是這樣一個數(shù)列 0, 1, 1, 2, 3, 5, 8, 13,特別指出:第0項是0,第1項是第一個1。從第三項開始,每一項都等于前兩項之和。
# 判斷輸入的值是否合法
if nterms = 0:
print("請輸入一個正整數(shù)。")
elif nterms == 1:
print("斐波那契數(shù)列:")
print(n1)
else:
print("斐波那契數(shù)列:")
print(n1,",",n2,end=" , ")
while count nterms:
nth = n1 + n2
print(nth,end=" , ")
# 更新值
n1 = n2
n2 = nth
count += 1
平方與前后項
從第二項開始(構(gòu)成一個新數(shù)列,第一項為1,第二項為2,……),每個偶數(shù)項的平方都比前后兩項之積多1,每個奇數(shù)項的平方都比前后兩項之積少1。如:第二項 1 的平方比它的前一項 1 和它的后一項 2 的積 2 少 1,第三項 2 的平方比它的前一項 1 和它的后一項 3 的積 3 多 1。
4.6. 定義函數(shù)
我們可以創(chuàng)建一個用來生成指定邊界的斐波那契數(shù)列的函數(shù):
def fib(n): # write Fibonacci series up to n
... """Print a Fibonacci series up to n."""
... a, b = 0, 1
... while a n:
... print(a, end=' ')
... a, b = b, a+b
... print()
...
# Now call the function we just defined:
... fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
關(guān)鍵字 def 引入了一個函數(shù) 定義。在其后必須跟有函數(shù)名和包括形式參數(shù)的圓括號。函數(shù)體語句從下一行開始,必須是縮進(jìn)的。
函數(shù)體的第一行語句可以是可選的字符串文本,這個字符串是函數(shù)的文檔字符串,或者稱為 docstring。(更多關(guān)于 docstrings 的信息請參考 文檔字符串) 有些工具通過 docstrings 自動生成在線的或可打印的文檔,或者讓用戶通過代碼交互瀏覽;在你的代碼中包含 docstrings 是一個好的實踐,讓它成為習(xí)慣吧。
函數(shù) 調(diào)用 會為函數(shù)局部變量生成一個新的符號表。確切的說,所有函數(shù)中的變量賦值都是將值存儲在局部符號表。變量引用首先在局部符號表中查找,然后是包含函數(shù)的局部符號表,然后是全局符號表,最后是內(nèi)置名字表。因此,全局變量不能在函數(shù)中直接賦值(除非用 global 語句命名),盡管他們可以被引用。
函數(shù)引用的實際參數(shù)在函數(shù)調(diào)用時引入局部符號表,因此,實參總是 傳值調(diào)用 (這里的 值 總是一個對象 引用 ,而不是該對象的值)。[1] 一個函數(shù)被另一個函數(shù)調(diào)用時,一個新的局部符號表在調(diào)用過程中被創(chuàng)建。
一個函數(shù)定義會在當(dāng)前符號表內(nèi)引入函數(shù)名。函數(shù)名指代的值(即函數(shù)體)有一個被 Python 解釋器認(rèn)定為 用戶自定義函數(shù) 的類型。 這個值可以賦予其他的名字(即變量名),然后它也可以被當(dāng)作函數(shù)使用。這可以作為通用的重命名機制:
fib
f = fib
f(100)
0 1 1 2 3 5 8 13 21 34 55 89
如果你使用過其他語言,你可能會反對說:fib 不是一個函數(shù),而是一個方法,因為它并不返回任何值。事實上,沒有 return 語句的函數(shù)確實會返回一個值,雖然是一個相當(dāng)令人厭煩的值(指 None )。這個值被稱為 None (這是一個內(nèi)建名稱)。如果 None 值是唯一被書寫的值,那么在寫的時候通常會被解釋器忽略(即不輸出任何內(nèi)容)。如果你確實想看到這個值的輸出內(nèi)容,請使用 print() 函數(shù):