擅长:python、mysql、java
<pre><code>FibonacciArray = [amount]
</code></pre>
<p>这不会生成长度为<code>amount</code>的数组。它只创建一个数组,其中一个条目的值为<code>amount</code>。你要找的是这样的东西:</p>
^{pr2}$
<p>第二,IIRC,<code>else</code>情况只在每个<code>if</code>和<code>elif</code>语句解析为<code>False</code>之前发生。在此声明中:</p>
<pre><code>elif amount == 2 or amount > 2:
</code></pre>
<p>指定<code>amount</code>必须大于或等于2。这保证了您的<code>else</code>块永远不会执行。</strong></p>
<p>您的代码还有一些问题,但这些是最大的违规者。</p>
<p>您的代码应该看起来更像这样:</p>
<pre><code>amount = int(input("How many Fibonacci numbers would you like me to create?:"))
if (amount <= 0):
print("Amount cannot be less than 1!")
else:
FibonacciArray = [0]*amount
FibonacciArray[0] = 1
FibonacciCounter = 2
if (amount > 1):
FibonacciArray[1] = 1
if (amount > 2):
while FibonacciCounter < amount:
FibonacciArray[FibonacciCounter] = FibonacciArray[FibonacciCounter - 2] + FibonacciArray[FibonacciCounter - 1]
FibonacciCounter = FibonacciCounter + 1 #increment FibonacciCounter
print(FibonacciArray)
</code></pre>
<p>编辑:增加了对负数的处理,我意识到我没有正确处理这个案例。修好了。</p>