将元素追加到while循环列表中的问题

时间:2019-06-21 17:35:36

标签: python

该方法应该在列表(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]

实际输出:[]

2 个答案:

答案 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.")