2015-04-21 40 views
1

我運行的代碼可能會出錯,但我想運行它只要 沒有錯誤。只要沒有錯誤,如何運行while循環

我想過這樣的事情:

while ValueError: 
    try: 
     x = int(input("Write a number: ")) 
    except ValueError: 
     x = int(input("You must write a number: "))` 
+0

@jonrsharpe你閃亮的金錘怎麼了? –

+1

@BhargavRao沒有[標籤:蟒蛇]在最初的修訂版本(或沒有在[標籤:python-3.x]金牌徽章,取決於你如何看待它!) – jonrsharpe

回答

4

你是相當接近

while True: 
    try: 
     x = int(input("Write a number: ")) 
     break 
    except ValueError: 
     print("You must write a number: ") 

要了解更多關於異常處理,請參考documentation

+1

感謝您@Padraic ...用於不用大腦! –

+0

怎麼樣一個'else'塊? – Zizouz212

+0

@ Zizouz212更多* Pythonic *,這更直觀*。你可以選擇你喜歡的任何東西! :) –

1

作爲除了Bhargav的回答,我想我會提一個選項:

while True: 
    try: 
     x = int(input("Write a number: ")) 
    except ValueError: 
     print("You must write a number: ") 
    else: 
     break 

執行try語句。如果拋出異常,則except塊將接管並運行。如果沒有拋出異常,則執行else塊。不用擔心,如果執行except塊,else塊將不會被調用。 :)

此外,你應該注意到,這個答案被認爲是更Pythonic,而Bhargav的答案可以更容易閱讀和更直觀。