Diskuse:Python/Kenjiro995/HeloWord
Úvod
editovatJak má člověk chápat ten úvodník? Trochu to připomíná výpis z nějaké nápovědy, ale interní nápovědy py to není. Jestli dobře rozumím help(object())
, tak object()
nepřijímá žádné argumenty, takže nemusíme řešit proměnou s
. Ta asi slouží jenom k aktivaci funkce. Nicméně mě object(s)
hází chybu. No a proč by funkce print() měla mít parametr ve funkci objektu? Juandev (diskuse) 9. 6. 2023, 16:04 (UTC)
- To asi souvisí s nejasnýma zápisama syntaxí. Já s tím boju třeba v případě Bashe, kde je v nápovědách často odlišný zápis syntaxe, která neodpovídá oficiální zadávací dokumentaci. Člověk se tak u každého zápisu musí dovtípovat co tím dotyčný chtěl asi říct, jaké další informace to nese a celé to dělá programování náročným. Juandev (diskuse) 21. 6. 2023, 11:24 (UTC)
- Tak jsem se dozvěděl, že
object(s)
je obecné označení libovolných objektů. Nicméně i přesto bych měl připomínku, že ten segmentprint(object(s), sep=separator, end=end, file=file, flush=flush)
je matoucí. Na jednu stranu to můžeme chápat tak, že to vysvětluje, jaké parametry funkceprint()
přijímá. Tady je to celkem jasné, až naflush
, kde si nemyslím, že opakem kflush
jebuffered
, ale budiž. Hezčí by asi bylo to nějak graficky rozparcelovat, alespoň u začátečníků. Např.funkce(parametr 1, parametr 2 = hodnota, parametr 3 = hodnota, etc.)
atd. Juandev (diskuse) 13. 9. 2023, 07:38 (UTC)- Moje nápověda v terminálu to vypisuje takto:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
. Juandev (diskuse) 13. 9. 2023, 07:40 (UTC)
- Moje nápověda v terminálu to vypisuje takto:
Zkuste cow pie
editovat#!/usr/bin/env python
a, b, c, d, e, f, g, h, i, j, k = "(", "_", ")", "o", "/", "-", "\\", "|", "*", " ", "\n"
print(j * 11, a, b * 2, c, k, j * 11, a, d * 2, c, k, j*4, e, f*7, g, e, k, j*3, e, h, j*7, h*2, k, j*2, i, j, h, j*7, h*2, sep="")
- Ještě bych uvedl, že pokud na dort nemáte zrovna chuť můžete využít argumentu
file
a odeslat ho do lednice. To by vypadalo následovně:
#!/usr/bin/env python
#ingredience:
a, b, c, d, e, f, g, h, i, j, k = "(", "_", ")", "o", "/", "-", "\\", "|", "*", " ", "\n"
#ověří, jestli máte lednici a případně vám ji koupí a zapne:
lednice = open('cowpie.txt', 'w')
#vloží dort do lednice:
print(j * 11, a, b * 2, c, k, j * 11, a, d * 2, c, k, j*4, e, f*7, g, e, k, j*3, e, h, j*7, h*2, k, j*2, i, j, h, j*7, h*2, sep="", file=lednice)
#zavře lednici:
lednice.close()
- Kdybyste nemohli najít novou lednici, využijte script:
import os
cwd = os.getcwd()
print("Lednice je umístěná v: ", cwd, "/cowpie.txt", sep="")
Interpretace více řádků
editovatJá používám IDLE a tam mi to neinterpretuje více řádků, takže to zadávám postupně. Takže:
print("Pyton je skvělý programovací jazyk", end=". ")
print("Pyton je skvělý programovací jazyk", end="? ")
mi toho moc nedá a musím to zanořit print(print("Pyton je skvělý programovací jazyk", end=". "), "Pyton je skvělý programovací jazyk", end="? ")
. To sem dávám jen pro info, kdyby se někdo divil. Juandev (diskuse) 21. 6. 2023, 09:45 (UTC)
Nácvyk parametru flush
editovatflush = True
odešle bobek okamžitě bez čekání do souboru miska.txt. Pokud by nebyl flush=True
, šel by bobek do bufferu a to přeci nechceme. Mohl by nám zasmradit celý systém.
#!/usr/bin/env python
#Kráva vyhodila bobek!
a, b, c, d, e, f = " ", "(", "_", "\\", "\n", ")"
print(a * 5, b, e, a * 4, f, a, f, e, a * 4, b, f, c, e, a * 3, b, c, d, f, d, e, a * 2, b, c * 3, d, c * 2, f*2, e * 2, "Odstraňuji...", sep="")
#Otevře misku
miska = open('miska.txt', 'w')
#Spláchne bobek do misky
print(a * 5, b, e, a * 4, f, a, f, e, a * 4, b, f, c, e, a * 3, b, c, d, f, d, e, a * 2, b, c * 3, d, c * 2, f*2, sep="", file=miska, flush=True)
#Zavře misku
miska.close()
#Oznámí splnění úkolu
print("Hotovo!")