Skip to content

Commit 114bafe

Browse files
committed
Fixups for exceptions lesson
1 parent 1dc9ba2 commit 114bafe

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

lessons/beginners/exceptions/index.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def nacti_cislo():
1414

1515
Když uživatel nezadá číslice, ale třeba text `cokolada`,
1616
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:
1818

1919
```pycon
2020
Traceback (most recent call last):
@@ -28,7 +28,7 @@ Co s tím má chudák funkce `int` dělat?
2828
Není žádná rozumná hodnota, kterou by mohla vrátit.
2929
Př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.
3333
Stačí se uživatele zeptat znovu!
3434
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*.
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

8788
Jak to funguje?
@@ -207,8 +208,8 @@ funkce mohla vrátit.
207208
Místo vrácení výsledku musí tato funkce *signalizovat chybu*.
208209
S tou se pak může program, který `obsah_ctverce(-5)` zavolal,
209210
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ě.
212213

213214
Jak na to prakticky?
214215
Chybu 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.
227228
A nejen tu – pokud na tuhle konkrétní chybu není program předem připravený,
228229
ukončí se celý program.
229230

0 commit comments

Comments
 (0)