[英]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.