@Brevista: Da Du an anderer Stelle nach weiterem Vorgehen gefragt hast: Du könntest Deine bisherigen Programme durchgehen und schauen ob die auch alle ordentlich mit Falscheingaben klar kommen und der Code sinnvoll auf Funktionen aufgeteilt ist.
Wie gesagt kann der Benutzer bei Deinem Code auch negative Zahlen eingeben, was eher nicht sinnvoll ist. Und es wird auch nicht der Fall berücksichtigt, das der Benutzer kein Trennzeichen eingibt.
Ich habe das mal spasseshalber in QBasic implementiert, damit Du das bei Deinem Python-Code selbst machen kannst:
[codebox=qbasic file=Unbenannt.txt]' Maximale Minutenzahl die in Sekunden als Integer ausgedrückt werden können.
CONST MAX_MINUTES=2^15\60
FUNCTION AskDuration%
DO
Line Input "Dauer als Minuten:Sekunden";answer$
i%=InStr(answer$,":")
IF i% = 0 THEN
Print "Minuten und Sekunden müssen durch einen ':' getrennt werden!"
ELSE
minutes%=Val(Left$(answer$,i%-1))
seconds%=Val(Mid$(answer$,i%+1))
IF minutes% < 0 OR seconds% < 0 THEN
Print "Bitte nur positive Werte eingeben!"
ELSE
IF minutes% >= MAX_MINUTES THEN
Print "Minuten müssen kleiner";MAX_MINUTES;"sein!"
ELSE
totalSeconds%=minutes%*60+seconds%
IF totalSeconds% < 0 THEN
Print "Zu viele Sekunden gesamt!"
ELSE
EXIT DO
END IF
END IF
END IF
END IF
LOOP
AskDuration%=totalSeconds%
END FUNCTION
SUB PrintCountdown(seconds%)
FOR i%=seconds% TO 0 STEP -1
Print i%
Sleep 1
NEXT
Print "GO"
END SUB
PrintCountdown AskDuration()[/code]
In QBasic muss man auch noch prüfen ob die Sekundenzahl insgesamt nicht zu gross für den Datentyp `Integer` wird — bei Python gibt es bei `int` diese Beschränkung netterweise nicht. Wobei auch mit der vorzeichenbehafteten 16-Bit-Zahl in QBasic Countdowns über 9 Stunden möglich sind.
