Díky vám obom, tá zátvorka naozaj všetko vyriešila :D 
Zároveň som to ale opravila viac popythonovsky a mám tam to "not in". Už to 
funguje!
Takže... v test_piskvorky mám funkciu, ktorá overuje, že ten nevalidný 
vstup naozaj vyvolá ValueError:
A v ai.py, kde tá pôvodná funkcia je, si potrebujem tú exception raisnúť a 
povedať mu, za akých okolností sa to má stať:

Ešte ma napadá, ako by som skombinovala test_blabla s tým, keď mám v tom 
core.py nejakú chybu ošetrené cez try: except: ....
napr.:
Je možné toto ošetrenie tiež nejako overiť v tom mojom test_blabla file? 
Ak aj áno, tak mi uniká, čo tým dosiahnem... možno akurát overím, že tá 
funkcia je ošetrená? Povedala by som, že v tomto prípade test_blabla file 
je zbytočný a nemá čo overiť... mám pravdu?

Ďakujem :)
Heli



Dne pátek 8. května 2020 22:03:19 UTC+2 Krystof Pilnacek napsal(a):
>
> Ahoj,
>
> z nejakeho duvodu ta podminka ("-" in pole == False) nevypada, ze by 
> fungovala jak popisuje Petr. Jejim vysledkem je totiz False a proto se ten 
> program cykli. True (coz je hodnota, kterou je potreba dostat) se mi 
> povedla dostat, pokud jsem dal zavorku kolem "-" in pole, tedy if ("-" in 
> pole) == False:. Pak to zacne fungovat.
>
> Jen mi to neprijde jako spravne Python reseni. Jednak se v Pythonu pro 
> porovnavani jestli je neco True/False nepouziva == ale is (stejne jako 
> pro None). A pak jeste v ifech neni potreba to porovnani s False, ale 
> pred dany vyraz staci dat not. A aby to bylo uplne nej, tak not se v 
> tomto pripade dava pred in (to aby to bylo co nejpodobnejsi anglictine). 
> Takze radek if "-" in pole == False:by mel vypadat: if "-" not in pole:.
>
> Doufam, ze to pomuze.
> Hezky vecer
> Krystof
>
> On Fri, May 8, 2020 at 7:21 PM Helena Zubčeková <[email protected] 
> <javascript:>> wrote:
>
>> 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] 
>>> > 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] 
>>> > <mailto:[email protected]>. 
>>> > 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] <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:>.
>> Chcete-li tuto diskusi zobrazit na webu, navštivte 
>> https://groups.google.com/d/msgid/django-cs/c05edfb0-ea9b-4eef-9d2a-38dfa1faaf18%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/django-cs/c05edfb0-ea9b-4eef-9d2a-38dfa1faaf18%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/57e9b74a-c4bc-4613-abba-e2474efb2be1%40googlegroups.com.

Reply via email to