簡體   English   中英

附加元素以在while循環中列出的問題

[英]Problem with appending element to list in while loop

該方法應該在列表(entryList)中收集用戶的數字輸入,直到用戶輸入'done'。 但是,條目列表變為空/ []

   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]

實際產量: []

您需要在主循環之外移動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.")

在while循環中,在每次迭代中,您的entrylist []初始化。 所以它變得空洞。 因此,如果在進入while循環之前聲明entrylist [],那么在每次輸入后它都不會變空。 它將使用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.") 

暫無
暫無

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

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