簡體   English   中英

輸出向后輸入數字的Python列表

[英]Python list that outputs numbers inputted backwards

我需要一個代碼,要求輸入5個pos數字,然后向后輸出這些數字。 我想使用while循環。 到目前為止,這是我想出的,但是第二個while循環不起作用。

positiveNum = 0
SIZE = 5
numberList= []
ARRAY_LIMIT = SIZE -1

while len(numberList) < SIZE :
    positiveNum = input("Enter a positive number:")
    numberList.append(positiveNum)
while int(positiveNum) >= 0:
    print(numberList[positiveNum])
    positiveNum -= 1

您應該迭代numberList的長度,而不是正數。 基本上修改第二個while循環對此。

 i = SIZE; 
 while i>0: 
        print(numberList[i-1])
        i=i-1

在第二個循環中,您正在使用相同的positiveNum變量,而沒有將其重置為數組的大小,請嘗試:

SIZE = 5
numberList= []
ARRAY_LIMIT = SIZE -1

while len(numberList) < SIZE :
    positiveNum = input("Enter a positive number:")
    numberList.append(positiveNum)
index = SIZE - 1
while index >= 0:
    print(numberList[index])
    index -= 1

您的第一個問題是input返回一個string因此如果要使用它進行索引,則需要將其強制轉換為int 您可能會收到以下錯誤。

TypeError:列表索引必須是整數或切片,而不是str

# Won't work with string
numberList[positiveNum]
positiveNum -= 1
# Need to cast to int first
positiveNum = int(input("Enter a positive number:"))

在while循環條件中轉換它僅適用於該條件,它不會將變量中的值更改為int ,它仍然是string

# Works only once
while int(positiveNum) >= 0:

現在,下一個問題是您正在使用positiveNum作為索引號。 如果最后輸入的數字大於SIZE (例如100),這將導致IndexError

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

這也是for循環的幾種選擇

# 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])

使用while循環:

size = 5
number_list = []

while len(number_list) < size:
    number_list.append(int(input("Enter a positive number: ")))
i = 1
while i <= size:
    print(number_list[size - i])
    i += 1

在第二個循環中使用for循環:

size = 5
number_list = []

while len(number_list) < size:
    number_list.append(int(input("Enter a positive number: ")))
for i in number_list[::-1]:
    print(i)

使用兩個for循環,在這種情況下會更明智:

size = 5
number_list = []

for _ in range(size):
    number_list.append(int(input("Enter a positive number: ")))
for i in number_list[::-1]:
    print(i)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM