我正在从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)。 –