`On 2020-05-08 18:40, Helena Zubčeková wrote:
> Ahoj,
>
> Myslím, že som pohopila, čo myslíš, ale stále neviem, ako opraviť svoj
> kód...
> Mala by som teda v ai.py, kde mám funkciu tah_pocitace, pridať nejaké
> ošetrenie situácie, keď v "pole" nemám žiadnu "-", čo znamená, že už tam
> nie sú voľné miesta. Napísala som toto:
> try:
> "-" in pole == True
> except Value:
> print("Pole je plné")
> (zbytek programu)
Řekněme že jsem Python a jdu udělat co mi tenhle program přikazuje.
Řekněme že pole je 'oxoxoxoxoxoxoxoxoxox', tedy neobsahuje pomlčku.
`try:` -- hmm, tady asi nastane nějaká výjimka, budu na to připravený!
`"-" in pole == True` -- to je složitý výraz, vyhodnotím ho postupně.
žádá pomlčka v `pole` není, takže `"-" in pole` neplatí; můžu za to
dosadit False. Z `"-" in pole == True` se stane `False == True`. To
neplatí, takže hodnota celého výrazu je False.
S výrazem `"-" in pole == True` nemám nic dělat, tak na výsledek `False`
zapomenu.
`except Value:` -- žádná výjimka nenastala, tak celý `except` blok
přeskočím.
A teď Python dostane ke zbytku programu, který se, jak víme z
dřívějška, zacyklí.
Když tenhle kousek programu přeložím z Pythonu do češtiny, dostanu:
zkus:
spočítat jestli "pole obsahuje pomlčku" je rovno "pravdě"
a když se to nepovede:
napiš "pole je plné!"
Tady je možná líp vidět, proč to nedělá co má. Tenhle program reaguje na
případné výjimky (try/except), ale žádné výjimky nezpůsobuje! Přitom
právě vyvolání výjimky je správná reakce na nekorektní vstup jako
pole='oxoxoxoxoxoxoxoxoxox'.
> Ale keď skúšam zavolať test_piskvorky.py, tak sa mi to stále zacyklí,
> rovnako, ako predtým... Myslím, že nerozumiem, ako spolu komunikujú
> súbory text_piskvorky.py a ai.py, aký je medzi nimi vzťah. Ak
> test_piskorky raisuje chybu za určitých okolností, tak ai.py má mať
> try:except blok? Alebo vôbec nie?
> Zatiaľ tomu rozumiem tak, že test_piskvorky skúša funkciu s použitím
> nesprávneho vstupu, a raisuje chybu, ak tam je, a potom ten core súbor
> (v tomto prípade ai.py) potrebuje mať takúto chybu nejako ošetrenú?
> takže try-except? Až na to, že toto to nefunguje, možno to bude tým, že
> ak "-" in pole == True nie je pravdivé, tak tá chyba nie je ValueError...
>
> Som hodne zmätená. Díky za radu,
> Heli
>
>
> Dne úterý 5. května 2020 12:58:52 UTC+2 Petr Viktorin napsal(a):
>
> On 2020-05-01 15:58, Helena Zubčeková wrote:
> > Ahoj,
> >
> > Som v kapitole
> >
https://naucse.python.cz/course/pyladies/beginners/testing/
> <
https://naucse.python.cz/course/pyladies/beginners/testing/>, a
> --
> --
> E-mailová skupina
djan...@googlegroups.com
> 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
django-cs+...@googlegroups.com
> <mailto:
django-cs+...@googlegroups.com>.
> Chcete-li tuto diskusi zobrazit na webu, navštivte
>
https://groups.google.com/d/msgid/django-cs/66df6009-4404-4159-ac90-1cc76bce5519%40googlegroups.com
> <
https://groups.google.com/d/msgid/django-cs/66df6009-4404-4159-ac90-1cc76bce5519%40googlegroups.com?utm_medium=email&utm_source=footer>.