2017-12-02 6 views
0

Ich habe eine Aufgabe, um eine Fahrenheit zu Clesius Rechner und die versuchen und außer ValueError Funktion, aber ich kann nicht einen falschen Wert mehr als einmal eingeben oder es stürzt ab. Ich möchte, dass der Benutzer eine Nummer und keine Buchstaben eingibt. Dies ist, wie mein Code jetztPython: versuchen, außer ValueError funktioniert nur einmal

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") 

sieht ich in der Regel auf der Programmierung neu bin und würde sich freuen, wenn Sie auf einfache Art und Weise erklären, wie es möglich zu machen, Strings, ohne das Programm mehrmals einzugeben Absturz

+0

Versuchen Sie zu vermeiden, Code in einen 'except' Block zu setzen, der eine Ausnahme auslösen kann. –

Antwort

1

können Sie könnten die Eingabe in einer Schleife setzen:

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

Ihre außer Klausel fordert von dem Benutzer für die Eingabe. Aber die zweite Eingabe wird nicht getestet. Also, wenn die zweite Eingabe in der Float-Funktion verwendet wird, wird es fehlschlagen, wenn die Eingabe falsch ist.

Wenn Sie möchten, dass der Benutzer weiterhin Eingaben vornimmt, bis er eine Zahl eingibt, benötigen Sie eine Schleife. Und innerhalb dieser Schleife benötigen Sie eine try-except-Klausel (oder einen anderen Test), um zu testen, ob die Eingabe numerisch war.