NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 8 - Bojovník do arény v Pythonu

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Roman
Člen
Avatar
Roman:15.9.2015 11:44

Super článok :)
PS: v konštruktore ti chýba

self.__kostka = kostka
 
Odpovědět
15.9.2015 11:44
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Roman
gcx11:16.9.2015 9:05

Díky za upozornění :)

 
Odpovědět
16.9.2015 9:05
Avatar
Tomáš Pařízek:30.7.2016 12:49

Nedal byste mi někdo kompletní zdroják?
Někde dělám chybu a nevím kde.

 
Odpovědět
30.7.2016 12:49
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na Tomáš Pařízek
gcx11:30.7.2016 13:05

Tak jsem ho hledal, jestli ho ještě nemám a nakonec ho mám, ale došlo mi, že u článku je přesně ten samý zdrojový kód ke stažení, takže si to asi stáhni odsud.

 
Odpovědět
30.7.2016 13:05
Avatar
Odpovídá na gcx11
Tomáš Pařízek:30.7.2016 13:08

Děkuji, sice mě to mohlo napadnout ale nenapadlo.
Je to super, že zde máme takové redaktory.

 
Odpovědět
30.7.2016 13:08
Avatar
kampkin
Člen
Avatar
kampkin:10.8.2016 12:37

Zdravím,
ošetření grafických životů proti stavu " [ ]", když je bojovník stále naživu se mi zdá elegantnější za pomoci knihovny math, konkrétně metody ceil, která zaokrouhlí desetinná čísla nahoru. :)

def graficky_zivot(self, celkem = 20):
    import math
    pocet = math.ceil(self.__zivot / self.__max_zivot * celkem)
    return "[{0}{1}]".format("#"*pocet, " "*(celkem-pocet))
 
Odpovědět
10.8.2016 12:37
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na kampkin
gcx11:10.8.2016 12:59

Ahoj, tohle se zdá jako lepší řešení, ale podle konvencí by se měly importy dávat na začátek skriptu. PEP 8

Editováno 10.8.2016 12:59
 
Odpovědět
10.8.2016 12:59
Avatar
kampkin
Člen
Avatar
Odpovídá na gcx11
kampkin:10.8.2016 13:25

Děkuji za upozornění, příště si dám pozor :)
pouze jsem se inpiroval při vytváření kostky, přesněji import knihovny random

def hod(self):
    """Vrátí náhodné číslo od 1 do počtu stěn"""
    import random as _random
    return _random.randint(1, self.__pocet_sten)

Je tento zápis v pořádku nebo bychom měli import také provést na začátku?
Popřípadě import je vhodnější provést na úplném začátku skriptu anebo v metodě __init__()?
Předem děkuji za odpověď

 
Odpovědět
10.8.2016 13:25
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na kampkin
gcx11:10.8.2016 13:35

Teď už bych to asi takhle nepsal. Také by se to mělo dát na úplný začátek skriptu, ale až pod shebang, to je to #!/usr/bin/env python3. Metoda __init__ slouží k inicializaci objektu, tam bych to neimportoval už vůbec, jelikož by to nefungovalo a akorát vyhodilo chybu.

class Foo:
        def __init__(self):
                import math
                this.x = 4
        def bar(self):
                return math.sqrt(x)

foo = Foo()
foo.bar() # vyhodí chybu, protože bar tu math nezná
 
Odpovědět
10.8.2016 13:35
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na kampkin
gcx11:10.8.2016 13:45

Jelikož Python v té funkci musí mít nadefinovaný to jméno math a takhle ho nemá. Ale tohle by fungovalo, ovšem je to strašná prasarána.

#!/usr/bin/env python3

class Foo:

    def __init__(self):
        self.math = __import__("math")
        self.x = 4

    def bar(self):
        return self.math.sqrt(self.x)

foo = Foo()
print(foo.bar())

A nahoře mám chybu, to this má být self, už se ten C# začal projevovat :D

Editováno 10.8.2016 13:46
 
Odpovědět
10.8.2016 13:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 69.