@@ -14,7 +14,7 @@ def nacti_cislo():
1414
1515Když uživatel nezadá číslice, ale třeba text ` cokolada ` ,
1616nastane výjimka jménem ` ValueError ` (chyba hodnoty) a Python vypíše
17- odpovídající chybovou hlášku.
17+ odpovídající chybovou hlášku:
1818
1919``` pycon
2020Traceback (most recent call last):
@@ -28,7 +28,7 @@ Co s tím má chudák funkce `int` dělat?
2828Není žádná rozumná hodnota, kterou by mohla vrátit.
2929Převádění tohoto textu na celé číslo nedává smysl.
3030
31- Až funkce ` nacti_cislo ` nejlíp „ví“, co se má stát, když uživatel nezadá
31+ Až funkce ` nacti_cislo ` nejlíp „ví“, co se má stát když uživatel nezadá
3232číslice.
3333Stačí se uživatele zeptat znovu!
3434Kdybys měl{{a}} funkci, která zjistí jestli jsou v řetězci jen číslice,
@@ -56,9 +56,9 @@ A dokonce nám to dá vědět – výjimkou, kterou můžeš *zachytit*.
5656> Místo řešení problému to ale spíš ilustruje, v čem problém spočívá:
5757> * Řetězcová metoda ` isnumeric ` vrací ` True ` pokud řetězec obsahuje číslice:
5858> ` '123'.isnumeric() ` je pravda; ` 'abc'.isnumeric() ` nepravda.
59- > Problém je, že funkci ` int ` potřebuje jeden konkrétní druh číslic:
60- > pro řetězce jako ` '½' ` nebo ` '௩三๓໓ ` ' (trojka v tamilském, japonském,
61- > thajském nebo laoském písmu) platí ` isnumeric ` , ale ` int ` si na nich
59+ > Problém je, že funkce ` int ` potřebuje jeden konkrétní druh číslic:
60+ > pro řetězce jako ` '½' ` nebo ` '௩三๓໓ ` ' (trojky v tamilském, japonském,
61+ > thajském a laoském písmu) platí ` isnumeric ` , ale ` int ` si na nich
6262> vyláme zuby stejně jako na ` 'abc' ` .
6363> * Řetězcová metoda ` isdecimal ` vrací ` True ` pokud řetězec obsahuje arabské
6464> číslice 0-9. To už je lepší, ale stejně to úplně nesedí: ` int ` si poradí
@@ -82,6 +82,7 @@ def nacti_cislo():
8282 return int (odpoved)
8383 except ValueError :
8484 print (' To nebylo číslo!' )
85+ # ... a zeptáme se znovu -- cyklus `while` pokračuje
8586```
8687
8788Jak to funguje?
@@ -207,8 +208,8 @@ funkce mohla vrátit.
207208Místo vrácení výsledku musí tato funkce * signalizovat chybu* .
208209S tou se pak může program, který ` obsah_ctverce(-5) ` zavolal,
209210vypořádat – vynadat uživateli, zkalibrovat měřák, nebo, pokud na chybu není
210- připravený, sám skončit s chybou ( a upozornit tak programátora, že je něco
211- špatně) .
211+ připravený, sám skončit s chybou a upozornit tak programátora, že je něco
212+ špatně.
212213
213214Jak na to prakticky?
214215Chybu můžeš vyvolat pomocí příkazu ` raise ` .
@@ -223,7 +224,7 @@ def obsah_ctverce(strana):
223224 raise ValueError (f ' Strana musí být kladná, číslo { strana} kladné není! ' )
224225```
225226
226- Podobně jako ` return ` , i příkaz ` raise ` ukončí funkci.
227+ Podobně jako ` return ` i příkaz ` raise ` ukončí funkci.
227228A nejen tu – pokud na tuhle konkrétní chybu není program předem připravený,
228229ukončí se celý program.
229230
0 commit comments