2017-12-02 246 views
0

我有一個分配做出華氏Clesius計算器和使用嘗試,除了ValueError功能,但我不能輸入錯誤的值超過一次或崩潰。我希望用戶輸入一個數字而不是字母。這是我的代碼現在的樣子的Python:嘗試,除了ValueError異常只能使用一次

print("Hej och välkommen till Fahrenheit omvandlaren") 
Fahrenheit = (input("Vänligen ange grader i Fahrenheit: ")) 

try: 
    test = float(Fahrenheit) 

except ValueError: 
    Fahrenheit = (input("Vänligen ange ett tal!")) 

Celsius = (float(Fahrenheit)-32)*5/9 
print(Fahrenheit, "Fahernheit är lika med",(round(Celsius,2)),"grader Celsius") 

我在通用新的節目,並希望如果你能以簡單的方式解釋如何使人們有可能多次輸入的字符串,而無需在程序崩潰

+0

儘量避免把代碼中的'except'塊,能夠產生異常。 –

回答

1

你可以可以把輸入在一個循環:

while True: 
    fahrenheit = (input("Vänligen ange grader i Fahrenheit: ")) 
    try: 
     test = float(fahrenheit) 
     break 
    except ValueError: 
     pass 
0

你除了條款要求從用戶的輸入。但第二個輸入未經測試。 因此,當第二個輸入用於float函數時,如果輸入不正確,它將失敗。

如果你希望用戶繼續給輸入,直到他輸入一個數字,你需要一個循環。 在該循環中,您需要一個try-except子句(或其他一些測試)來測試輸入是否是數字。