我正在從John Zelle關於Python的書中做練習,他要求用循環函數做斐波那契數列。範圍上的紙牌負數是什麼?
後,我沒能完成它,我給看看他的決心,這是這樣的:
n = int(input("Enter the value of n: "))
curr, prev = 1, 1
for i in range(n-2):
curr, prev = curr+prev, curr
print("The nth Fibonacci number is", curr)
雖然我也明白他做了什麼的一部分,我錯過了一部分(n-2)
範圍。
我在這裏看了一下Stackoverflow來看看這個,人們說範圍上的負數會回到列表的末尾。但在這種情況下,如果用戶提示1,則結果將是range(-1)
。
我的猜測是,作者這樣做是爲了讓for循環沒有將斐波那契數列的前兩個值相加,因爲它們都是1,並且只有在用戶提示2和4之後,循環纔會真正開始加起來。我猜對了嗎?
是的。 'range(-x)'或'range(0)'不會產生任何東西。 – kindall
這是你可以輕鬆測試的東西,不是嗎? – trincot
閱讀[文檔](https://docs.python.org/3/)。大多數Python內置函數都在[functions]下(https://docs.python.org/3/library/functions.html#func-range)。範圍和其他內置對象的詳細信息大部分都在[Built-In Types]中(https://docs.python.org/3/library/stdtypes.html#typesseq-range)。 –