čtu si nyní pěknou učebnici na internetu s názvem "Jak se naučit programovat".
čtení je to moc pěkné, ale některé příklady nechápu, proč fungují tak, jak fungují. S tím ale počítám. Jsem nováček. Například v článku o tom, jak definovat vlastní funkci je tento příklad:
#########################################
def tabulkaNasobku(n):
s = ""
for i in range(1, 13):
s = s + "%d x %d = %dn" % (i, n, i*n)
return s
print tabulkaNasobku(7)
#########################################
To vypíše skutečně všechny požadované násobky. Ale nechápu,
proč je tam to s = "" .
Zkusil jsem to tedy bez toho takhle:
#########################################
def tabulkaNasobku(n):
for i in range(1, 13):
s = "%d x %d = %dn" % (i, n, i*n)
return s
print tabulkaNasobku(7)
#########################################
Toto vypíše jen poslední násobek, tedy 12x7=84.
Proč to tak funguje, prosím?
Fórum › Python
Vlastní funkce
no, myslím že bys sis měl trochu víc prozkoumat dokumentaci :toto:
není to až zas tak moc složité.
V prvním příkladě musí být to s už deklarováno, jinak ti to vrátí chybu. Jistě znáš co dělá cyklus for. Kdyby ne, tak ti to tedy ukážu:
for i in range(1, 13):
print i
>>>
1
2
3
4
5
6
7
8
9
10
11
12
s = s + "%d x %d = %dn" % (i, n, i*n)
#tady to se děje v každém cyklu a i je vždy o jedno větší, takže by mělo být jasné co stane.
v druhém příkladu ten cyklus opakuješ taky 12 ale hodnota proměnné s se vždy nahradí novou, takže ti to vrátí pouze poslední násobek...
snad jsem to vysvětlil dostatečně, nejsem v tomhle dostatečně zběhlý :skunk2:
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
ten druh? p??klad ti ale mus? kon?it s chybou (pokud tam vr?t?? podle origin?lu to s=s+..., aby ti to fungovalo jak m?)! Vem si p??klad, kdy? m?? t?eba
>>> a=a+1
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'a' is not defined
Co mysl??, ?e m? Pyhon dosadit za to druh? "a", to, kter? je za z?vorkou? Nic, nev?, a proto tento p??klad skon?? s chybou.
Je nutn? v t?chto p??padech prom?nnou "inicializovat":
>>> a=0
>>> a=a+1
>>> a
1
No a s t?m ?et?zcem to je podobn
geon napsal:
ten druh? p??klad ti ale mus? kon?it s chybou (pokud tam vr?t?? podle origin?lu to s=s+..., aby ti to fungovalo jak m?)! Vem si p??klad, kdy? m?? t?eba
>>> a=a+1
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'a' is not defined
Co mysl??, ?e m? Pyhon dosadit za to druh? "a", to, kter? je za z?vorkou? Nic, nev?, a proto tento p??klad skon?? s chybou.
Je nutn? v t?chto p??padech prom?nnou "inicializovat":
>>> a=0
>>> a=a+1
>>> a
1
No a s t?m ?et?zcem to je podobn?.
No, zjusil jsem to bez incializace s t?m s + takhle
def tabulkaNasobku(n):
for i in range(1, 13):
s = s + "%d x %d = %dn" % (i, n, i*n)
return s
print tabulkaNasobku(7)
Chybu to nahl?silo, ale v?sledky to vypsalo.
nestor
mě to teda hodilo tuhle chybu:
Traceback (most recent call last):
File "C:Documents and SettingsBluPlochazkouska.pyw", line 6, in -toplevel-
print tabulkaNasobku(7)
File "C:Documents and SettingsBluPlochazkouska.pyw", line 3, in tabulkaNasobku
s = s + "%d x %d = %dn" % (i, n, i*n)
UnboundLocalError: local variable 's' referenced before assignment
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
No, zkusil jsem to bez incializace s tím s + takhle
def tabulkaNasobku(n):
for i in range(1, 13):
s = s + "%d x %d = %dn" % (i, n, i*n)
return s
print tabulkaNasobku(7)
Chybu to nahlásilo, ale výsledky to vypsalo.
nestor
Dělám volovinu. Beru zpět. Sorry.
No jo, tak to už jsem navštívil nedávno. Našel jsem to nějak skrz gůgl na zrcadle nějakého Schvarze tady http://www.svarz.cz/translate/.
Kdybych tušil, že je to ono, napsal to sem. Jsem to ale nedovtípálek :? .
Já jsem jen začátečník, ale asi bude zajímavé na jeho stránkách hned to o tom "Web FrameWork: Django", nebo ne??
[url=www.svarz.cz/translate/]www.svarz.cz/translate/[/url]
Tu stranku jsem si jeste ani nestacil poradne prohlidnout, protoze jen co jsem tam vesel, tak jsem hned zacal koukat na tu perfektni prednasku o Djangu :o) Fakt super! Diky moc za odkaz ;o)
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.
Nemáš za co. Jsem v tom nevinně :-)
Já jsem teprve ve čtyřce Phytonovského kurzu, takže důvod, proč tě tolik rozradostnilo, ještě nejsem schopen pochopit :O. Popravdě, já jsem si to ani nepouštěl, protože bych stejně asi nevěděl, která bije.
Rozradostnilo me to z toho duvodu, ze ackoliv uz delam asi pet let v PHP, rad bych zacal pouzivat pro tvorbu webu Python. A perfektni zpusob, jak to delat je s pomoci frameworku Django. Moc jsem Django zatim nestudoval, byl jsem linej a mam jine starosti, ale kdyz jsi mi tak naserviroval prednasku developera Djanga primo pod nos..... ;o)))
PHP je fajn, akorat 99% veci v nem naprogramovanych je naprostej bordel a dzungle. Jeho problem je v tom, ze se v nem lidi uci proste delat stranky. Nic jineho je nezajima (asi je to trochu vina i literatury) a tak prasi, prasi a prasi... mluvim z vlastni zkusenosti - pred peti lety jsem se PHP ucil za stejnym ucelem: proste delat stranky, bez nejakeho promysleni nad logickym oddelenim obsahu od kodu :o) Vetsina kodu v PHP proto pripomina totalni bastl... a Python + Django je podle me idealni reseni, jak se dostat ze zacarovaneho kruhu :o)
Dusledne oddeleni logiky kodu od obsahu, to je podle me to, co v ucebnicich PHP chybi.
Samozrejme ze se da v PHP programovat elegantne, prehledne a efektivne, s vyuzitim templatu... ale jelikoz mam rad Python a libi se mi vic nez PHP, tak mi prijde jednodusii zacit s Djangem nez se trvrde preucovat stare navyky s PHP :o)
No, to jen takove strusne vysvetleni ;o)
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.
Co jsem zatím četl o Pythonu, tak udělat v něm stránky snad jde. nevím jestli jednodušeji než v php. Vždyť php bylo uděláno právě pro vývoj webovek. Já php umím jen na úrovni tak asi maximálně po vytvoření blogu. Když jsem chtěl něco složitějšího chodil jsem pro rozumy k Rosalyndě, známé to pomocnici začínajících kodérů html a programátorů v php (ještě dříve k Juhůovi). Ale o Pythonu jsem vyserfoval většinou informace o tom, že stránky sice uděláš, ale nemáš je kde hostovat. Šel jsem do něj jako do jazyku, který mi dá základy o programování a připraví mne třeba na c++. Reference na něj z tohoto pohledu byly jasně nejpřesvědčivější a po 4 lekcích se mi zdá, že nelhaly. Mým cílem je umět tvořit jak webové aplikace v něčem jném než je php, tak i aplikace desktopové. To zvládne jistě Python také, myslel jsem ale, že clem a univerzálem se mi musí nutně stát c++ spolu s Pythonem. Desktopovky (asi se tomu říká GUI, že?) znám jen jako uživatel v práci. Je to většinou uděláno pod delfi+firebird. Než jsem šel do Pythonu, dost jsem četl diskuse na téma, "v čem začít", "v čem se stát programátorem", pro a proti, apod. To mi jen dokanale zamotalo hlavu. Spíše samé flamy. Nakonec mi z toho přehršle názorů vyšel Python a c++. Když děláš 5 let v php, třeba máš za sebou podobná dilema i zkušenosti, možná mi trochu vyčistíš brejle :-). Za každou myšlenku díky předem.
Nemohu než souhlasit s Farundelem. V php programuji sic nejčastěji, ale co bych za to dal, kdyby byl po ruce freehosting s Pythonem. Taky se občas dostanu do situace, kdy bych nejradšji použil elegantnější pythonérskou konstrukci.
Jinak co se týká šablonovacích systémů pro php. Můj názor je takový, že pro menší projekty představují kladivo na mouchy, ale pro střední a větší, kde se podílí minimálně webdesignér a programátor, mohou být neocenitelnou pomůckou.
ale co bych za to dal, kdyby byl po ruce freehosting s Pythonem
?http://www.free-webhosts.com/power-search.php?
?:ok:?Hledej a najdeš...
nějak se v tom nevyznám, můžeš sem dát link na určitě bezplatnej web?
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Sorry, chlapi, byl jsem ted nejakou dobu mimo, tak odpovidam az ted :o)
2nestor: Rozhodne sis jako programovaci jazyk na uceni vybral vyborne. Python je pro to primo idealni. Muj nazor je ten, ze Python je programovaci jazyk budoucnosti. Doufam ze za spoustu let, pokud ze me opravdu bude informatik (och, jak moc bych si pral byti PhD. in computer science ;o)))), tak budu v praci porad pouzivat Python :o)
Mas pravdu v tom, ze jej muzes pouzit jak na delani beznych aplikaci (at uz konzolovych, ci pomoci GTK, QT, Tkinteru), tak i tech webovych (ano, muze fungovat podobnym zpusobem jako PHP).
Ja mam podobny plan jako ty: naucit se dokonale Python a C (k C++ mam kvuli jeho obrovske rozsahlosti celkem respekt, ale rad bych ho jednou umel taky).
Nechtel jsem rict, ze PHP je spatny jazyk, neni, i kdyz vyhrady k nemu mam (z casti to bude ale tim, ze Python mam proste __rad__ :o)). To, co jsem kritizoval neni chyba jazyka, anobrz webmasteru alias takyprogramatoru (i kdyz to jsou i vlastnosti jazyka, ktere muzou lidi k nekterym nepeknym vecem svadet).
Urcite na internetu najdes fundovanejsi a konkretnejsi informace, nez tyhle moje reci ;o)))
...co bych za to dal, kdyby byl po ruce freehosting s Pythonem.
Proc freehosting? Ja sve budouci osobni stranky (ktere bych chtel vytvorit prave v Pythonu) budu mit [url=http://www.klenot.cz]tady[/url]. U hostingu za 300 Kc na rok sice Python uveden neni, ale s majitelem nebude problem se dohodnout... sam mi ho kdysi nabidnul, kdyz jsem si na abclinuxu.cz ztezoval na absenci Python hostingu... 300 korun to neni zadna cena, to je skoro zadarmo :o)
Jinak co se týká šablonovacích systémů pro php. Můj názor je takový, že pro menší projekty představují kladivo na mouchy, ...
Na tom taky neco bude, samozrejme... pro obycejnou knihu navstev je nejaka sablona zbytecna. Me se proste ale na PHP nelibi to osklivy michani HTML a PHP, ktery jsem se pred nekolika lety naucil a kteryho bych se ted rad zbavil :o)
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.
Nechci být malicherný, ale pro příště bych prosil kódy do příslušného tagu. Ať to tu máme pěkné :)) :P
A aby vám Fórum ten váš kód nezformátovalo (cykly for, kde se používá proměnná i), tak se vyvarujte velmi blízké kombinace znaku levé ostré závorky s písmenem i. Jinak byste to měli kurzývou. V tom horím případu kus kódu tatam.
Frosty napsal:
Nechci b?t malichern?, ale pro p???t? bych prosil k?dy do p??slu?n?ho tagu. A? to tu m?me p?kn? :)) :P
A aby v?m F?rum ten v?? k?d nezform?tovalo (cykly for, kde se pou??v? prom?nn? i), tak se vyvarujte velmi bl?zk? kombinace znaku lev? ostr? z?vorky s p?smenem i. Jinak byste to m?li kurz?vou. V tom hor??m p??pad? kus k?du tatam.
to je smutn?, velmi smutn?, proto se rad?i p??slu?n?ch tag? vyvarov?v?m :-(
Blujacker napsal:
nějak se v tom nevyznám, můžeš sem dát link na určitý bezplatnej web?
:och: to jako fakt?? Tak třeba http://110mb.com/
jojo napsal:
:och: to jako fakt?? Tak třeba http://110mb.com/
sem to zkusil, ale ftp přenos je šíleně pomalej, je to na nic, když to leží někde na druhé straně atlantiku... už asi půl hodiny přenáším pár souborů....
geon napsal:
mysl?m, ?e to bude v?e stejn? ... ty teda nem?? ??dnou kladnou zku?enost s n?kter?m z nich, ?e?
ee...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Vlastní funkce na TStringList sort (D7) — založil oxidián
Volání funkce z jiné třídy ukazatelem typu obecné funkce — založil pretis
šablonová funkce jako členská funkce třídy - jde to? — založil yaqwsx
C Funkce jako parametr funkce — založil František Brámek
Moderátoři diskuze