Python 3 (3): funkcie dátových typov a vstup od užívateľa jneterda 5. 05. 2015, 12:29:12 OdpovědětOdkaz
Seriál je velice dobře pojat, určitě bych ho použil, až budu svého vnuka učit Python (naučí se taky trochu slovensky). Zajímalo by mě, jak chce autor tutorial zaměřit - Python umí prakticky cokoliv (pokud se k tomu vyberou vhodné importy). Co chybí jsou např.tutoriály s jednoduchými příklady použití Pythonu pro úlohy, které řeší jiné jazyky složitě nebo vůbec ne. Autor možná už tím směrem trochu jde. R-Pi je také super zajímavá disciplina pro Python.
Re: Python 3 (3): funkcie dátových typov a vstup od užívateľa Štefan Uram 5. 05. 2015, 16:04:27 OdpovědětOdkaz
Som rád, že sa vám seriál páči.
Autor zatiaľ ani sám nevie, kam sa bude tento tutoriál vyvíjať a kde skončí :). Ku príkladom použitia sa ale určite dostanem...
RPi (zatiaľ) nevlastním.
Python 3 (3): funkcie dátových typov a vstup od užívateľa Lukáš 5. 05. 2015, 12:52:23 OdpovědětOdkaz
Předně díky za skvělý seriál, rád na něj budu odkazovat :-)
Jen bych si dal pozor na konstrukce typu "list = [1, 2, 3, 5, 9, 11]". Programátor, který nevidí do objektového modelu Pythonu, se bude divit, co se stalo s funkcí list() :-)
Re: Python 3 (3): funkcie dátových typov a vstup od užívateľa Štefan Uram 5. 05. 2015, 16:07:37 OdpovědětOdkaz
Díky a vďaka za upozornenie. Toto mi, úprimne, ani nenapadlo.
Python 3 (3): funkcie dátových typov a vstup od užívateľa Ondrej 5. 05. 2015, 15:40:31 OdpovědětOdkaz
% bych nepoužíval, sám mám sice toto raději než format, ale je to zastaralé a dříve nebo později % bude z pythonu odebráno a zůstane jen format, tak je lepší bych řekl již % nepoužívat, obzvláště pokud člověk začíná...
Python 3 (3): funkcie dátových typov a vstup od užívateľa Wrunx 5. 05. 2015, 18:15:23 OdpovědětOdkaz
Maličký zásek.
Pokud je obsah listu [2, 3, 5, 7, 11, 13, 17, 19, 21] jak v příkladu, tak volání pop() vrátí 21, ne 19. Pop() je dle mě prosté sejmutí vrchního prvku hromady.
Každopádně ale kdo zažil Pascalské trápení s pekelnými spojovými seznamy, toho funkce remove a insert svojí přímočarou prostotou přivedou rovnou do nebe.
A protože seznam v Pythonu je objekt, lze do číselného seznamu s=[1,2,3] klidně vložit znaky s.insert(1,"ahoj") což má za výsledek [1, 'ahoj', 2, 3], nebo celý nový seznam s.insert(2,[5,55]) což má za výsledek [1, 'ahoj', [5, 55], 2, 3], nebo prakticky libovolný další objekt. Jde si tak třeba udělat list funkcí nebo list grafických objektů...
def def xe():
print("funkce!") #
s.insert(0,xe) # nultý prvek pole teď "obsahuje" funkci xe
# fakt?
>>>s[0]()
funkce!
# jo! :-D
Re: Python 3 (3): funkcie dátových typov a vstup od užívateľa Štefan Uram 6. 05. 2015, 15:15:34 OdpovědětOdkaz
Ďakujem za upozornenie, chybička je opravená.
Čo sa týka ďalších funkcií atp., je toho celkom veľa a pokiaľ by som chcel spomenúť úplne všetko, bolo by to oveľa dlhšie, čo by nebolo zrovna ideálne. Snažím sa preto písať len o základných, často používaných alebo zaujímavých veciach :) Každopádne vďaka za postreh.
Re: Re: Python 3 (3): funkcie dátových typov a vstup od užívateľa Wrunx 6. 05. 2015, 18:53:48 OdpovědětOdkaz
Jo a přidávám se k těm, co se tu těší na pokračování :-)
Re: Python 3 (3): funkcie dátových typov a vstup od užívateľa Pavel Šimerda25. 05. 2015, 12:51:10 OdpovědětOdkaz
„Každopádně ale kdo zažil Pascalské trápení s pekelnými spojovými seznamy, toho funkce remove a insert svojí přímočarou prostotou přivedou rovnou do nebe.“
Vidím dva zásadní problémy. Jednak to v případě Pascalu není ani tak chyba jazyka jako přímý důsledek tradiční výuky ve stylu „udělej si sám“, kdy se úmyslně používají jen elementární nástroje.
Ale co mi připadá horší je míchat pythoní seznam a ručně implementovaný spojový seznam. Prvním a nejvíce viditelným rozdílem je to, že zatímco pythoní seznam je abstraktní datový typ, ke kterému se přistupuje pomocí API, v tom druhém případě se zjevně bavíme o aplikaci (1) dynamické alokace prvků seznamu, (2) ukazatelů pro vytvoření vazeb a (3) konkrétního modelu spojového seznamu jako je například cyklický obousměrně řetězený seznam s hlavou.
Pokud bych měl srovnávat s ručně tvořeným seznamem v Pascalu nebo C, dával bych na druhou stranu dynamické pole s realokací (což je mimochodem implementace schovaná za pythoním API), kde je při každém přidání prvku potřeba se starat o případnou realokaci a údržbu informací o alokaci.
Jinak srovnání mezi školským přístupem k Pascalu a běžným užíváním Pythonu bude ještě divočejší než srovnání jazyků a nástrojů jako takových. :)
Python 3 (3): funkcie dátových typov a vstup od užívateľa Vojta22. 05. 2015, 18:41:40 OdpovědětOdkaz
Dobrý seriál, díky za něj. Jen bych se zeptal, jak to je s tečkami v názvech proměnných. V R si proměnné s oblibou pojmenovávám s tečkami, ale v Pythonu by to mohlo být velmi zmatečné vzhledem k dalším funkcím... Je na to nějaká konvence/pravidlo?
Re: Python 3 (3): funkcie dátových typov a vstup od užívateľa Pavel Šimerda25. 05. 2015, 12:55:01 OdpovědětOdkaz
Vzhledem k tomu, že má tečka v Pythonu syntaktický význam, tak asi těžko bude člověk běžným způsobem pracovat s proměnnými s tečkou v názvu.
Python 3 (3): funkcie dátových typov a vstup od užívateľa Pavel Šimerda25. 05. 2015, 12:53:07 OdpovědětOdkaz
Mimochodem, přičítat k seznamu jiný seznam a výsledek ukládat do proměnné, kde byl původní seznam, je v Pythonu zbytečně krkolomné.
>>> l = [1,2,3]
>>> l += [4,5]
>>> l
[1, 2, 3, 4, 5]
Re: Python 3 (3): funkcie dátových typov a vstup od užívateľa Pavel Šimerda25. 05. 2015, 12:54:01 OdpovědětOdkaz
Měl jsem namysli otrocký způsob použitý v článku, za lepší považuju způsob uvedený zde.
Python 3 (3): funkcie dátových typov a vstup od užívateľa Félix30. 07. 2015, 14:32:19 OdpovědětOdkaz
Len taká otázočka...
inp = input("Zadajte dĺžku strany kocky (bez jednotiek): ")
a = int(inp)
volume = a**3
surface_area = 6*a**2
print("Objem kocky je: {}".format(volume))
...
Prečo sa riadok
print("Objem kocky je: {}".format(volume))
nezapísal napríklad takto:
print("Objem kocky je: ",volume)
? Len sa to učím a tak sa mi to zdá jednoduchšie, tak sa pýtam.
Re: Python 3 (3): funkcie dátových typov a vstup od užívateľa Štefan Uram 1. 08. 2015, 08:31:52 OdpovědětOdkaz
V tomto prípade je použitie print("Objem kocky je:", volume) skutočne jednoduchšie a funkčné. Do príkladu som to však nechcel miešať, keďže som tento spôsob "spájania" dát pri printe (bez ohľadu na dátový typ) zatiaľ nespomenul.
Upozorním však, že pri použití print("A", "B") sú tieto reťazce oddelené medzerou, takže print("A ", "B") by spôsobilo výstup: "A B" [A(medzera)(medzera)B].
A samozrejme ďakujem za skvelú poznámku.