簡體   English   中英

如何在空輸入 python 時中斷 while 循環?

[英]How to break a while loop upon an empty input python?

我有一個代碼,要求用戶輸入兩個整數,用“”分隔。 只要用戶不輸入任何內容,這應該會繼續,從而導致 ValueError 並打破 While 循環。 但是,我無法弄清楚我做錯了什么:

def syote():
 koepisteet_all = []
 harjoitukset_all = []
 while True:
    koepisteet, harjoitukset = input('Koepisteet ja harjoitusten määrä: ').split()
    if ValueError:
        break
    else:
        koepisteet_all.append(koepisteet)
        harjoitukset_all.append(harjoitukset)


print(koepisteet_all)
print(harjoitukset_all) 

if __name__ == "__main__":
     
syote()

如所願,我確實收到了一個 ValueError "ValueError: no enough values to unpack (expected 2, got 0)",但代碼停止運行。

你需要一個try/except結構:

  • 如果引發ValueError (由於輸入錯誤),則停止break
  • 如果給出 2 個值,則保存它們
def syote():
    koepisteet_all, harjoitukset_all = [], []
    while True:
        try:
            koepisteet, harjoitukset = input('Koepisteet ja harjoitusten määrä: ').split()
            koepisteet_all.append(koepisteet)
            harjoitukset_all.append(harjoitukset)
        except ValueError:
            break

    print(koepisteet_all)
    print(harjoitukset_all)

暫無
暫無

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

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