To dáva zmysel... skúsila som teda to upraviť:
čiže:
Ak pole neobsahuje "-", tak vyvolaj Value Error.
Ale cyklí sa mi to veselo naďalej...

Moc díky :)
Heli




Dne pátek 8. května 2020 19:03:35 UTC+2 Petr Viktorin napsal(a):
>
> `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 
> >      > nerozumiem, prečo mi test_tah_chyba nefunguje... 
> >      > V príkazovom riadku sa mi program zasekne na modro podčiarknutej 
> >     časti, 
> >      > a musím to ukončiť ctrl+C... 
> >      > 
> >      > 
> >      > Chýba mi niečo v piskvorky.py? Nakoniec som tam doplnila túto 
> >     časť (aj 
> >      > keď v materiáloch to vyslovene povedané nie je, ale naznačené to 
> >     asi je): 
> >      > Ale nepomohlo to. Nedáva mi to aj tak moc zmysel, pretože vtedy, 
> >     keď je 
> >      > na rade počítač, nemôže mať plné pole... pretože najprv hrá hráč, 
> >     potom 
> >      > počítač, obaja doplňujú po jednom písmene, a pole má párny počet 
> >     polí... 
> >      > 
> >      > Moc díky za radu :) snažím sa to pochopiť, a z materiálov mi nie 
> je 
> >      > jasné, čo je zle a prečo sa mi to cyklí/zasekáva. 
> >      > 
> >      > Heli 
> > 
> >     Ahoj! 
> >     Zkus tu funkci zavolat, tak jak ji volá test: 
> > 
> >     piskvorky.tah_pocitace('oxoxoxoxoxoxoxoxoxox') 
> > 
> >     V téhle situaci funkce tah_pocitace nemůže nic rozumného vrátit. 
> >     Správná 
> >     reakce na tuhle situaci je tedy vyvolání výjimky, třeba ValueError. 
> >     Místo toho to vypadá, že se tvoje funkce zacyklí: vybírá pořád 
> dokola 
> >     náhodné pozice, a nikdy nevybere volnou pozici na kterou jde hrát. 
> >     Je tedy potřeba změnit funkci tah_pocitace: když v hracím poli není 
> >     volné místo, vyhoď výjimku. 
> > 
> >     Je pravda, že když správně napíšeš program který tuhle funkci volá, 
> tak 
> >     k téhle situaci nedojde. Ale co když ho napíšeš špatně? Co když 
> budeš 
> >     pracovat v týmu, a jeden z tvých kolegů bude chtít tah_pocitace 
> >     použít v 
> >     jiném programu? 
> >     `test_tah_chyba` testuje funkci jako takovou, ne jen způsob jak ji 
> >     Piškvorky volají. 
> > 
> > -- 
> > -- 
> > E-mailová skupina [email protected] <javascript:> 
> > 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] <javascript:> 
> > <mailto:[email protected] <javascript:>>. 
> > 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>.
>  
>
>

-- 
-- 
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/c05edfb0-ea9b-4eef-9d2a-38dfa1faaf18%40googlegroups.com.

Reply via email to