Portál AbcLinuxu, 12. května 2025 07:48
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"), vstupAle 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.