Když píšeme program, často se ptáme uživatele na různé informace nebo zadáváme různé hodnoty do programu. Ale co když uživatel zadá něco, co nečekáme? Například místo čísla zadá písmeno nebo místo možnosti A, B nebo C zadá X. Tady nastupuje ošetření vstupu! Pomocí ošetření vstupu můžeme kontrolovat vstupy od uživatele a reagovat na ně vhodným způsobem.
Když požádáme uživatele o výběr z několika možností, musíme kontrolovat, zda vůbec zadá platnou možnost. To mužeme ověřit uvnitř nekonečného cyklu podmínkou s použitím or.
while True:
volba = input("Vyber moznost A, B nebo C: ")
if volba == 'A' or volba == 'B' or volba == 'C':
print("Vybral(a) jsi moznost:", volba.upper())
break
else:
print("Neplatna moznost! Zkus to znovu.")
Když požádáme uživatele, aby zadal číslo, může se stát, že zadá něco jiného než číslo. Například písmeno nebo slovo. To můžeme ošetřit pomocí nekonečného cyklu, který skončí při zadání platného čísla. Načteme od uživatele řetězec a funkcí isdigit zkontrolujeme, zda se jedná o číslo.
while True:
vstup = input("Zadej cislo: ")
if vstup.isdigit():
cislo = int(vstup)
print("Zadal(a) jsi cislo:", cislo)
break
else:
print("To neni cislo! Zkus to znovu.")
Můžeme také kontrolovat, zda uživatel zadá číslo v určitém intervalu. To provedeme stejným způsobem, akorát do podmínky přidáme and kontrolující rozsah čísla.
min = 1
max = 10
while True:
vstup = input("Zadej cislo mezi", min, "a", max)
if vstup.isdigit and int(vstup) >= min and int(vstup) <= max:
cislo = int(vstup)
print("Zadal(a) jsi platne cislo:", cislo)
break
else:
print("Neplatny vstup! Zkus to znovu.")