Portál AbcLinuxu, 18. dubna 2024 16:44


Dotaz: Python - kontrola, zhodnocení, připomínky

13.10.2013 18:11 Marcus
Python - kontrola, zhodnocení, připomínky
Přečteno: 388×
Odpovědět | Admin
Příloha:
Pěkný den vinšuji, rád bych si nechal zkritizovat přiložený skript, popřípadě bych uvítal jakékoli připomínky atd. Mimojiné bych se rád optal na nejlepší řešení následujícího problému - v některých historických pramenech je datování typu např. 2 dny před sv. Václavem, nebo ve středu po sv. Václavu, tudíž mě napadlo vytvořit xml, kde budou svatí + datum jejich svátku a pak ve skriptu bych přidával či ubíral dny. Jen první nápad. Už jsem tu podobný problém řešil v ruby, ovšem python mi přišel víc...pro mě. Takže se velmi omlouvám těm, kteří pomohli s ruby a já zbaběle utekl k pythonu.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.10.2013 19:17 NN
Rozbalit Rozbalit vše Re: Python - kontrola, zhodnocení, připomínky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kdyz uz te nekdo donutil psat ceske komentare, tak je pis alespon bez diakritiky. Nektere nazvy tipu 'nedelni_p_j' nedavaji neznalemu moc smysl ani v cestine.
13.10.2013 20:04 potato
Rozbalit Rozbalit vše Re: Python - kontrola, zhodnocení, připomínky
Nesmysl. Pokud už pojmenováváš proměnné a píšeš komentáře česky, rusky, čínsky, hebrejsky, svahilsky, etc. děláš to (a) proto, že je program vyvíjen pro nacionalistickou skupinu (b) aby mu nikdo ze zahraničí nerozuměl (c) jelikož zdrojový kód budou číst po odpoledních starší dámy v literárních kroužcích. Ve všech případech je samozřejmě vhodné diakritiku používat.
13.10.2013 20:10 Marcus
Rozbalit Rozbalit vše Re: Python - kontrola, zhodnocení, připomínky
za (a), protože určování těchto chronologických pomůcek (ne všech ovšem) je sice podobné ve všech křesťanských zemích, ale drobné rozdíly se najdou. Ale chápu připomínku, leč bohužel neovládám Aj natolik, abych si dovolil komentovat
13.10.2013 22:02 NN
Rozbalit Rozbalit vše Re: Python - kontrola, zhodnocení, připomínky
Chapu, nemyslel jsem to zle.
14.10.2013 20:50 Sajfi | skóre: 8
Rozbalit Rozbalit vše Re: Python - kontrola, zhodnocení, připomínky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Příloha:
Koukal jsme jen zběžně, jako příklad vezmu funkci nedelni_pismeno_j:
  1. Snažit se v Pythonu dodržovat PEP-8, usnadní to ostatním čtení kódu. Mezi funkcí a závorkou se nepíše mezera, stejně tak ve slovníku mezi klíčem a dvojtečkou. Jméno argumentu funkce bude přehlednější slunecni_kruh než slunecnikruh.
  2. S docstringem to tu už zaznělo.
  3. A abych nebyl jen hnidopich, teď to zajímavější - výkon. Ve funkci se zbytečně při každém volání funkce vytváří slovník, což něco stojí. Udělat si na začátku „konstantu“ a tu použít ve funkci vedle zrychlení přinese jako bonus zpřehlednění kódu. Viz příloha.
14.10.2013 21:09 Marcus
Rozbalit Rozbalit vše Re: Python - kontrola, zhodnocení, připomínky
Velmi přínosné, děkuji mnohokráte. Jinak pro kontrolu prasečin jsem používal pylint a tak nějak spoléhal na něj, leč zdá se, že to taky není na vše
15.10.2013 15:46 Marcus
Rozbalit Rozbalit vše Re: Python - kontrola, zhodnocení, připomínky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Úpravy - http://pastebin.com/4SKWA3ba
15.10.2013 15:56 NN
Rozbalit Rozbalit vše Re: Python - kontrola, zhodnocení, připomínky
Prvni tri slovniky, lze z vyhodou slozit do jedineho..
rADOn avatar 15.10.2013 16:59 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Python - kontrola, zhodnocení, připomínky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Uplne na konci mas podminku ktera ma v obou vetvich return a za ni kod ke kterymu se to nikdy nedostane.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
rADOn avatar 15.10.2013 17:30 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Python - kontrola, zhodnocení, připomínky
Odpovědět | | Sbalit | Link | Blokovat | Admin
andítko/ořítko v pythonu netypuje na bool ale vrací první nebo druhou hodnotu. Nauč se to, zvykni si na to, zamiluj si to:
def konkurenty(rok):
    return (rok + (rok / 4) + 4) % 7 or 7
Ditto zlaté číslo a další funkce.
return "Neni"
Za takovej kod bych ruce lamal :-) Pokud opravdu mermomoci nechces vystrelit vyjimku, tak z toho aspon udelej konstantu.

Funkce velikonoce_j() ma na konci blok if…return…elif…return. Když nematchne ta druhá podmínka tak ti z toho vypadne None což asi není to co chceš. Zkus si to na roce '69.

Podmínky jako rok > 1582 and rok < 1700 můžeš napsat zkráceně: 1582 < rok < 1700
"2^24 comments ought to be enough for anyone" -- CmdrTaco
15.10.2013 17:59 Marcus
Rozbalit Rozbalit vše Re: Python - kontrola, zhodnocení, připomínky
Mě tak napadá, jestli by nebylo výhodnější ošetřit juliánské/gregoriánské datování až na vstupu, tj. nepoužívat fce s gregoriánským určováním pro roky menší než 1582. Zkrátil bych tím fce

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.