该方法应该在列表(entryList)中收集用户的数字输入,直到用户键入“完成”为止。但是,条目列表显示为空/ []
。
def entryReader():
while True:
entry = input('Enter a number: ')
entryList = []
if entry.lower() == "done":
print(entryList)
break
try:
number = float(entry)
entryList.append(number)
print(number)
except ValueError:
print("Please enter a numeric value.")
预期输出:[input1, input2]
实际输出:[]
答案 0 :(得分:0)
您需要将entryList声明移至主循环之外,以使列表不会在每次循环运行时都为空
entryList = []
while True:
entry = input('Enter a number: ')
if entry.lower() == "done":
print(entryList)
break
try:
number = float(entry)
entryList.append(number)
print(number)
except ValueError:
print("Please enter a numeric value.")
答案 1 :(得分:0)
在while循环中,在每次迭代中,您的entrylist []都会初始化。因此它变成空的。 因此,如果您在进入while循环之前声明entrylist [],则每次输入后它将不会为空。它将在新编号后附加条目列表[]。
entryList = []
while True:
entry = input('Enter a number: ')
#entryList = [] // Becomes empty
if entry.lower() == "done":
print(entryList)
break
try:
number = float(entry)
entryList.append(number)
print(number)
except ValueError:
print("Please enter a numeric value.")