Kontrollabfrage, ob eine Zahl eingegeben wurde

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Mad-Marty hat geschrieben:String eingeben und dann String Method .isdigit() benutzen
Werf ich einfach mal so rein, ist imo der "richtige" weg.
Da stehst du aber relativ alleine auf deiner Seite ;-) Der try-except-Ansatz ist eigentlich Standard.
Das Leben ist wie ein Tennisball.
Horst
User
Beiträge: 37
Registriert: Mittwoch 14. April 2010, 17:55

Danke Dav1d. Dein Weg funktioniert einwandfrei. Jetzt klapps
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Gerne :)

Zu .isdigit:

Code: Alles auswählen

>>> int(-5)
-5
>>> '-5'.isdigit()
False
the more they change the more they stay the same
STORMBREAKER
User
Beiträge: 1
Registriert: Samstag 23. Dezember 2017, 19:01

Ich würde einfach direkt nur eine Eingabe als Integer zulassen. Das geht mit:

Code: Alles auswählen

Eingabe = int(input("Eingabe:"))
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

@STROMBREAKER: das ist schlechtweg falsch. Du kannst _alles_ eingeben - nur bekommst du eine Exception, wenn die Umwandlung nach Integer nicht funktioniert. Das wurde aber vor 7,5 Jahren in diesem Thread schon festgestellt...

Gruß, noisefloor
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

STORMBREAKER hat geschrieben:Ich würde einfach direkt nur eine Eingabe als Integer zulassen. Das geht mit:

Code: Alles auswählen

Eingabe = int(input("Eingabe:"))
Das Problem daran ist, dass das Programm dann bei einer Falscheingabe "abstürzt", sofern die Exception nicht behandelt wird. Das kann man so machen, aber meistens will man keinen Abbruch, sondern eine korrigierte Eingabe des Benutzers. Und dazu hat er bei deinem Code eben keine Chance (abgesehen vom Neustart des Programms).
Antworten