您的位置:首頁技術文章
文章詳情頁

Python 3.5,斐波數列, a,b = 0,1

瀏覽:120日期:2022-08-31 13:28:22

問題描述

class Fib(object):

def __getitem__(self, n): a, b = 0, 1 for x in range(n):a, b = b, a + b return a

f = Fib()f[0] = 0

不解為什么是f[0] = 0

函數是不是直接執行Return 再回到循環體?

初學者還有很多不懂,請多指教,謝謝

問題解答

回答1:

在用下標取值符[]的時候,程序會去訪問對象的__getitem__函數。

f[0] 相當于 f.__getitem__(self, 0) ,n賦值為0

a = 0, b = 1for x in range(0): # 這里range(0) 直接跳過 a, b = b, a + breturn a # a = 0

所以f[0] = 0。

不知道怎么回事,就一步一步調試,查文檔。

回答2:

f[0]的話,即 n = 0

for x in range(n): a, b = b, a + b

循環體就直接return了啊,所以是a沒變還是0啊。

標簽: Python 編程
相關文章:
国产综合久久一区二区三区