<p>您的第一个问题是<code>input</code>返回一个<code>string</code>,因此如果您想用它建立索引,您需要将它强制转换为<code>int</code>。您可能会遇到以下错误。你知道吗</p>
<blockquote>
<p>TypeError: list indices must be integers or slices, not str</p>
</blockquote>
<pre><code># Won't work with string
numberList[positiveNum]
positiveNum -= 1
# Need to cast to int first
positiveNum = int(input("Enter a positive number:"))
</code></pre>
<p>在while循环条件中转换它只对条件有效,它不会将变量中的值更改为<code>int</code>,它仍然是<code>string</code></p>
<pre><code># Works only once
while int(positiveNum) >= 0:
</code></pre>
<p>现在下一个问题是使用<code>positiveNum</code>作为索引号。如果输入的最后一个数字大于<code>SIZE</code>,例如100,这将导致<code>IndexError</code>。你知道吗</p>
<pre><code>SIZE = 5
number_lst = []
while len(number_lst) < SIZE:
# Should perform error checking if you must have positive numbers
num = int(input("Enter a positive number: "))
number_lst.append(num)
# Output backwards using while
i = len(number_lst) - 1
while i >= 0:
print(number_lst[i])
i -= 1
</code></pre>
<p>这里还有几个for-loop替代方案</p>
<pre><code># Output backwards using for
for item in number_lst[::-1]:
print(item)
for item in reversed(number_lst):
print(item)
for i in range(len(number_lst) - 1, -1):
print(number_lst[i])
for i in reversed(range(len(number_lst))):
print(number_lst[i])
</code></pre>