我試圖理解這段代碼,但我對代碼的記憶部分發生了什么感到困惑。第 3 行有return fibstorage[x],但這實際上是做什么的?我知道上面它正在檢查是否x在字典內,但之后這到底回傳了什么?為什么x在fibstorage被呼叫之后在括號中?
fibstorage = {}
def fib(x):
if x in fibstorage:
return fibstorage[x]
elif x == 1:
value = 1
elif x == 2:
value = 1
elif x > 2:
value = fib(x - 1) fib(x - 2)
fibstorage[x] = value
return value
whatever = 100
for i in range(1, whatever 1):
print("fib({})".format(i), fib(i))
uj5u.com熱心網友回復:
fibstorage 是一本字典。你可以把它們想象成一個串列,你用一個值而不是一個位置來參考。如
x = {'Hello': 'world',
'foo': 'bar'
8: 'eight'}
print(x['Hello']) #would print world
print(x['foo']) #would print bar
print(x[8]) #would print eight
它似乎是一種快取方法,因此如果已經計算了 x,則不必再次計算。
如果您還有其他問題,請隨時提出
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/316004.html
