Výuka IT

Ošetření vstupu

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.

Ošetření vstupu pro výběr možností

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.")

Kontrola číselného vstupu

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.")

Ošetření vstupu s rozsahem čísel

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.")