@@ -14,7 +14,7 @@ def nacti_cislo():
14
14
15
15
Když uživatel nezadá číslice, ale třeba text ` cokolada ` ,
16
16
nastane 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:
18
18
19
19
``` pycon
20
20
Traceback (most recent call last):
@@ -28,7 +28,7 @@ Co s tím má chudák funkce `int` dělat?
28
28
Není žádná rozumná hodnota, kterou by mohla vrátit.
29
29
Převádění tohoto textu na celé číslo nedává smysl.
30
30
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á
32
32
číslice.
33
33
Stačí se uživatele zeptat znovu!
34
34
Kdybys 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*.
56
56
> Místo řešení problému to ale spíš ilustruje, v čem problém spočívá:
57
57
> * Řetězcová metoda ` isnumeric ` vrací ` True ` pokud řetězec obsahuje číslice:
58
58
> ` '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
62
62
> vyláme zuby stejně jako na ` 'abc' ` .
63
63
> * Řetězcová metoda ` isdecimal ` vrací ` True ` pokud řetězec obsahuje arabské
64
64
> číslice 0-9. To už je lepší, ale stejně to úplně nesedí: ` int ` si poradí
@@ -82,6 +82,7 @@ def nacti_cislo():
82
82
return int (odpoved)
83
83
except ValueError :
84
84
print (' To nebylo číslo!' )
85
+ # ... a zeptáme se znovu -- cyklus `while` pokračuje
85
86
```
86
87
87
88
Jak to funguje?
@@ -207,8 +208,8 @@ funkce mohla vrátit.
207
208
Místo vrácení výsledku musí tato funkce * signalizovat chybu* .
208
209
S tou se pak může program, který ` obsah_ctverce(-5) ` zavolal,
209
210
vypořá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ě.
212
213
213
214
Jak na to prakticky?
214
215
Chybu můžeš vyvolat pomocí příkazu ` raise ` .
@@ -223,7 +224,7 @@ def obsah_ctverce(strana):
223
224
raise ValueError (f ' Strana musí být kladná, číslo { strana} kladné není! ' )
224
225
```
225
226
226
- Podobně jako ` return ` , i příkaz ` raise ` ukončí funkci.
227
+ Podobně jako ` return ` i příkaz ` raise ` ukončí funkci.
227
228
A nejen tu – pokud na tuhle konkrétní chybu není program předem připravený,
228
229
ukončí se celý program.
229
230
0 commit comments