Jinak v podobných situacích doporučuju sednout a projít program řádek po řádku, tak jak ho Python vykonává. Občas se tak chyba dá najít.
(A občas taky ne a je rozumné se zeptat ☺)


On 2020-09-29 16:00, jan kotrba wrote:
...
for pocet_hadani in range(3):

OK, budu opakovat třikrát. Jdu poprvé; do `pocet_hadani_ přiřadím 0 a pokračuju:

     try:

OK, tady bude něco co se nemusí povést.

         cislo = int(input("Hádej číslo: "))

OK, vyhodnotím výraz za závorkou a výsledek přiřadím do proměnné.
První vyhodnotím výraz v závorkách čili `input("Hádej číslo: ")`, volání funkce `input`. Zeptám se tedy uživatele "Hádej číslo: " a počkám si na odpověd...

... Odpověděl "a", což dosadím místo `input("Hádej číslo: ")`, a pokračuju ve vyhodnocování výrazu: `int("a")`. Převedu tedy "a" na číslo... Ale ouvej, to nejde! Nastala chyba, takže přestanu provádět zbytek bloku `try` a skočím na příslušný `except`. (pozn. zbytek příkazu, tedy přiřazení do `cislo`, se neprovede – ani nemůže, není k dispozici žádná hodnota, co by se té proměnné přiřadila.)

     except ValueError:

Ten je hned tady! Tak začnu:

         print("Tohle není číslo!")

OK, volání funkce `print`; vypíšu `"Tohle není číslo!"`.
Tím blok `except` končí, takže pokračuju dál.

     pocet_hadani += 1

K `pocet_hadani` (aktuálně 1) přičtu 1, nová hodnota je tedy 1.
(pozn. tohle není potřeba, postará se o to cyklus `for`.)

     if cislo == tajne_cislo:

OK, porovnám hodnotu `cislo` s `tajne_cislo`.
Ale ouvej! Do proměnné `cislo` ještě není nic přiřazené!
A ani nejsem v bloku `try`, tak ukončím program s chybovou hláškou.

--
--
E-mailová skupina [email protected]
Správa: http://groups.google.cz/group/django-cs
--- Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete 
e-mail na adresu [email protected].
Chcete-li zobrazit tuto diskusi na webu, navštivte 
https://groups.google.com/d/msgid/django-cs/c1f004c0-f9c9-4420-c333-f83a9a789865%40gmail.com.

Reply via email to