Doppelabsicherung bei Eingabe
- Bill987654321
- User
- Beiträge: 136
- Registriert: Sonntag 8. März 2020, 10:56
Ich möchte, dass Ups! Das war keine gültige Zahl. Versuche es noch einmal... erscheint, wenn ein Buchstabe (und auch andere Zeichen wie z.B. ?",%) oder eine Zahl kleiner gleich 0 oder größer MANNSCHAFTSANZAHL eingegeben wird. Dann soll der Nutzer eine erneute Eingabe vornehmen.
- Bill987654321
- User
- Beiträge: 136
- Registriert: Sonntag 8. März 2020, 10:56
Vermutlich verstehe ich etwas nicht.
Die Schleife soll unterbrochen werden, wenn eine gültige Zahl eingegeben wird. Diese muss zwischen 1 und einschließlich der MANNSCHAFTSANZAHL liegen.
In allen anderen Fällen soll die Schleife weiterlaufen. Es soll der Benutzer immer wieder die Fehlemeldung erhalten und dann eine neue Eingabe vornehmen dürfen/müssen.
Die Schleife soll unterbrochen werden, wenn eine gültige Zahl eingegeben wird. Diese muss zwischen 1 und einschließlich der MANNSCHAFTSANZAHL liegen.
In allen anderen Fällen soll die Schleife weiterlaufen. Es soll der Benutzer immer wieder die Fehlemeldung erhalten und dann eine neue Eingabe vornehmen dürfen/müssen.
- Bill987654321
- User
- Beiträge: 136
- Registriert: Sonntag 8. März 2020, 10:56
Ich prüfe (i < 0 or i >= MANNSCHAFTSANZAHL)
Ich prüfe, ob i kleiner als 0 oder größer als MANNSCHAFTSANZAHL ist.
Ist das falsch? Wenn ja - warum?
Ich prüfe, ob i kleiner als 0 oder größer als MANNSCHAFTSANZAHL ist.
Ist das falsch? Wenn ja - warum?
- Bill987654321
- User
- Beiträge: 136
- Registriert: Sonntag 8. März 2020, 10:56
Wie bereits bekannt ist mein aktueller Stand so:
Vielleicht stehe ich gerade auf dem Schlauch. Ich habe diese Zeilen auch in ein eigenes File kopiert. Das besteht aus 8 Zeilen. Hier habe ich schon viele Änderungen vorgenommen und ausprobiert. Es kommt aber am Ende nie das raus, wie es sein soll.
Ich weiß wrklich nicht, was falsch ist. Könntest du mir bitte die Zeilen programmiern? Das wäre sehr nett.
Es gibt die Zeile mit dem ValueError. Muss man wissen, welche Fehlermeldung geworden wird, um diese abzufangen? Vermutlich ja - ich habe mal nur Error eingegeben. Das hat nicht funktioniert.
Code: Alles auswählen
while True:
try:
i = int(input("Gebe die Kennzahl für die Heimmannschaft ein:"))
if (i < 0 or i >= MANNSCHAFTSANZAHL):
break
except ValueError:
print("Ups! Das war keine gültige Zahl. Versuche es noch einmal...")
Ich weiß wrklich nicht, was falsch ist. Könntest du mir bitte die Zeilen programmiern? Das wäre sehr nett.
Es gibt die Zeile mit dem ValueError. Muss man wissen, welche Fehlermeldung geworden wird, um diese abzufangen? Vermutlich ja - ich habe mal nur Error eingegeben. Das hat nicht funktioniert.
- Bill987654321
- User
- Beiträge: 136
- Registriert: Sonntag 8. März 2020, 10:56
Habe gerade bei meinem Kurzprogramm die Vorzeichen geändert, weil ich vermute, dass es an ihnen liegt. Das Programm läuft durch. Aber egal, welche Zahl (zwischen 0 und 5 bzw. außerhalb dieses Bereichs) ich eingebe, kommt nicht die Zeile, dass man die Eingabe noch mal versuchen soll.
Die Meldung Ups! Das war keine gültige Zahl. Versuche es noch einmal... kommt nur, wenn ich einen Buchstaben eingebe.
Die Meldung Ups! Das war keine gültige Zahl. Versuche es noch einmal... kommt nur, wenn ich einen Buchstaben eingebe.
Der except-Teil wird nur durchlaufen, wenn auch eine Exception auftritt. Ein if löst das nicht aus. Wenn Du eine Text-Ausgabe in jedem Schleifendurchgang willst, dann pack das print einfach hinter den excet-Bloc:
Code: Alles auswählen
while True:
try:
i = int(input("Gebe die Kennzahl für die Heimmannschaft ein:"))
except ValueError:
pass
else:
if 0 <= i < MANNSCHAFTSANZAHL:
break
print("Ups! Das war keine gültige Zahl. Versuche es noch einmal...")
- Bill987654321
- User
- Beiträge: 136
- Registriert: Sonntag 8. März 2020, 10:56
Vielen, vielen Dank für die Lösung. Habe sie gerade ausprobiert. Da wäre ich nie drauf gekommen.
Werde noch nachschauen wass pass bedeutet. Habe es in meinen Büchern schon gesehen.
Logge mich jetzt aus.
Nochmal vielen Dank
Bill
Werde noch nachschauen wass pass bedeutet. Habe es in meinen Büchern schon gesehen.
Logge mich jetzt aus.
Nochmal vielen Dank
Bill
- Bill987654321
- User
- Beiträge: 136
- Registriert: Sonntag 8. März 2020, 10:56
Ich kann die verschiedenen Varianten jetzt nachvollziehen.
Vielen Dank nochmals.
Vielen Dank nochmals.