Portál AbcLinuxu, 31. října 2025 21:21
print("1/x=y")
Tady začíná ten testovací blok
try:Zde se definuje proměnná x
x = int(input("Zadajte x: "))
Na tomhle řádku je int což znamená celá čísla. Pak následuje input pro vstup a taky výzva pro uživatele, aby zadal vstup
 
y = 1/xTady se praví, do proměnné
ypřiřaď výsledek z 1/x Tomuhle řádku moc nerozumím, jde o formátování výstupu?
 print("y=1/{}={}".format(x, y))
except ValueError:
Tady je definována chyba, v tomto případě asi chyba hodnoty. 
            Řešení dotazu:
Na tomhle řádku je int což znamená celá čísla. Pak následuje input pro vstup a taky výzva pro uživatele, aby zadal vstupJen aby nedošlo k omylu, nejdříve je input, teprve po jeho provedení následuje int.
print("y=1/{}={}".format(x, y))
 
je popsáno tady. Lze to zapsat i takto:
print("y=1/%d=%d" % (x, y))
Obojí funguje trochu jako printf v C. V Pythonu tohle formátování umí spoustu užitečných věcí, tak doporučuju dokumentaci pročíst :) V tomhle příkladu se x dosadí namísto prvních {} a y namísto druhých závorek.
No a výjimka ValueError se vyhazuje právě v případech, kdy něco nejde převést na něco jiného. Tedy když uživatel zadá "aerjdnv" namísto čísla.
To znovu-zeptání se na věk by se pak udělalo v ošetření té výjimky:
try:
    x = int(input("Zadajte x: "))
except ValueError:
    try:
        x = int(input("Zadajte x (musí být číslo): "))
    except ValueError:
        exit(1)
což nevypadá moc hezky, ale zeptalo by se to znovu. Program tohoto stylu se tu řešil nedávno, tak se když tak mrkněte, v diskuzi v poradně jsou řešení.
            #!/usr/bin/env python3 # -*- coding: utf-8 -*-
while True:
    try:
        print ("Zadej celé číslo")
        vstup = input (" ")
        vstup = int(vstup)
        print ("Zadal jsi", vstup)
        break
    except ValueError:
        print("Nezadal jsi celé číslo, zkus to znovu")
Nicméně si nejsem jistý, jestli jsem ten příklad pochopil celý, tak se ho zase pokusím projít řádek po řádku a říct co který řádek dělá. Pokud se někde dopustím chyby, tak mne prosím, upozorněte. 
#!/usr/bin/env python3 # -*- coding: utf-8 -*-První řádek pravý, že bude použit python 3 a text bude v UTF-8 kódování
while True:Prováděj to co je uvnitř dokud není není pravda, že (dokud není splněna podmínka)
try:Tady začíná testování
print ("Zadej celé číslo")
Výzva k zadání celého čísla
vstup = input (" ")
vstup = int(vstup)
Tyhle dva řádky definují proměnnou vstup. První praví, že do této proměnné je vložen uživatelský vstup, druhý, že to má být celé číslo. 
Vím, že se to dá zapsat i do jednoho řádku, jako je to v tomto příkladu, ale tento postup se mi zatím zdá čitelnější. 
Tento řádek vypisuje vstup
print ("Zadal jsi", vstup)
Na internetu je často k vidění i tento zápis
print ("Zadal jsi"), vstup
Ale ten v Pythonu3 nefunguje, respektive, končí chybou. 
breakTento příkaz přeruší cyklus
 except ValueError:
        print("Nezadal jsi celé číslo, zkus to znovu")
Tady je ošetření chyby
            
        Tiskni
            
                Sdílej:
                 
                 
                 
                 
                 
                 
            
    
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.