Als Teil eines größeren menügesteuertes Programm erfüllt, würde Ich mag eine Benutzereingabe testen, ob dieser Eingang zu sehen: eine ganze Zahl ist UND wenn es eine ist Ganzzahl, wenn sie im Bereich von 1 bis 12 liegt, einschließlich.Benutzereingabe zu überprüfen, ob es zwei Bedingungen
number = 0
while True:
try:
number = int(input("Enter a whole number between 1 and 12 >>> "))
except ValueError:
print("Invlaid input, please try again >>> ")
continue
else:
if not (1<= number <=12):
print("Need a whole number in range 1-12 >>> ")
continue
else:
print("You selected:",number)
break
Ich verwende Python 3.4.3, und wollte wissen, ob es eine knappere (weniger Linien, eine bessere Leistung, mehr „Pythonic“, zum Beispiel) Weg, dies zu erreichen? Danke im Voraus.
Beachten Sie, dass 'int' gerne einen Dezimalwert abschneidet. Wenn Sie '3.6' eingeben, akzeptiert dieser Code sie (als' 3'). – smarx
Wie ich glaube, 3.6 würde als "ungültige Eingabe ..." betrachtet werden. – marshki
@smarx, 'int (" 3.6 ")' wäre ein ValueError, Sie müssten in float und dann in int umwandeln. –