•Cosmin
|
|
« : Noiembrie 08, 2008, 10:28:18 » |
|
|
|
|
Memorat
|
|
|
|
•Cosmin
|
|
« Răspunde #1 : Noiembrie 08, 2008, 13:13:39 » |
|
Ai dreptate, am corectat.
|
|
|
Memorat
|
|
|
|
•svalentin
|
|
« Răspunde #2 : Noiembrie 08, 2008, 13:56:29 » |
|
Eu tot nu prea vad avantajele lui python fata de php. Da, sunt foarte diferite ca gandire, insa toate lucurile pe care le-ai enumerat aici le are si php Si ce are php in plus si nu are python este o documentatie buna! Nu sunt fan php, insa mi se pare ca lumea lauda prea mult python
|
|
|
Memorat
|
|
|
|
•Cosmin
|
|
« Răspunde #3 : Noiembrie 09, 2008, 04:33:52 » |
|
@Ovy Despre map, filter si lambda, Guido zice in articolul asta http://www.artima.com/weblogs/viewpost.jsp?thread=98196 ca pana la urma le va pastra desi vroia initial sa scape de toate (map, filter, reduce, lambda) si acum va sterge numai reduce. Exemplul meu la reduce e putin prost, practic sum e un reduce. Putea fi cu produsul elementelor si nu era asa simplu de rejectat. Daca vrei sa mai zici de generators mai mult, ar fi interesant. Nici de programare obiectuala nu am zis. Sa traiesti , daca ai chef poate vrei sa scrii un blog post care sustine limbajul mai bine . E tare cand apar pe blog si alte puncte de vedere, si altfel apare un articol despre python scris de cineva cu experienta in limbaj fata de unul scris de un incepator.
|
|
|
Memorat
|
|
|
|
•alexthero
|
|
« Răspunde #4 : Noiembrie 09, 2008, 14:00:36 » |
|
Am un curs la universitate despre aplicatii web si baze de date. Ca parte a acestui curs, trebuie facut un proiect in python. Chiar daca la inceput imi placea python, in scurt timp mi-am dat seama de cateva probleme pe care le are acest limbaj, in programarea web.
Faptul ca indentarea face parte din cod nu e un lucru bun in PSP, deoarece trebuie avuta multa grija cu blocurile de cod HTML. Instructiunile gen if/else/for continua si cu codul HTML, iar pentru a iesi din blocul curent am fost nevoit sa adaug comentarii aiurea. Mi se pare mult mai ok folosirea {} pentru blocurile de cod.
Erorile sunt slab documentate pentru web. De exemplu, python returneaza un None-type pentru un entry care nu exista in baza de date, insa nu-ti spune exact unde a aparut aceasta eroare. Se pierde o gramada de timp in felul acesta.
Python pentru web e slab documentat. Sunt putine articole/tutoriale referitoare la acest subiect, iar siteul python.org nu ofera foarte mult ajutor prin structura. Searchul - implementat cu google search - nu mi se pare deloc cea mai buna solutie pentru acest site. Majoritatea cautarilor facute de mine au dat rezultate irelevante.
Python e pe drumul cel bun, dar va mai dura pana va ajunge un limbaj folositor pentru web. Momentan, eu raman la PHP.
|
|
|
Memorat
|
Tine minte ca mintea conduce pumnu, nu invers
|
|
|
•alexthero
|
|
« Răspunde #5 : Noiembrie 09, 2008, 23:34:19 » |
|
Am folosit python server pages ca modul de apache. Nu putem folosi nici un framework pentru python la proiect pentru a "intelege profunzimea limbajului", insa o sa ma uit peste Django si poate-mi schimba parerea despre Python.
|
|
|
Memorat
|
Tine minte ca mintea conduce pumnu, nu invers
|
|
|
•DITzoneC
|
|
« Răspunde #6 : Noiembrie 09, 2008, 23:59:30 » |
|
Amuzant site-ul asta de care ziceai: ProjectEuler. Pare numai bun pentru a incepe sa inveti un limbaj nou. Cel putin pe mine m-a tinut vreo doua zile in priza sa tot fac probleme
|
|
|
Memorat
|
|
|
|
•domino
|
|
« Răspunde #7 : Noiembrie 10, 2008, 00:03:27 » |
|
@svalentin Ai folosit Python, ai scris cod in el? Python nu reprezinta doar sintaxa limbajului ci si filozofia din spatele lui care incurajeaza productivitatea si calitatea codului ("there should be one—and preferably only one—obvious way to do it"). In PHP trebuie sa te chinui sa impui niste reguli de coding si de structura care in Python vin de la sine, intr-un mod natural. Si eu am fost sceptic in privinta limbajului, dar odata ce am invatat sa-l folosesc cum trebuie, mi s-a parut superb! Cred ca comic-ul asta exprima foarte bine cat de misto e Python: Din punctul meu de vedere, Python e ca iPhone-ul sau ca Obama (cool, simple, slick) si recomand oricui sa-l incerce @alexthero Cred ca problemele pe care tu le-ai intalnit nu au legatura cu limbajul in sine ci cu librariile/tool-urile pe care le folosesti. Cum a zis si Ovy, nu e o idee buna sa amesteci codul cu HTML-ul. Daca vrei sa faci programare web pe bune cu Python cel mai usor este sa folosesti un framework cum e Django, care e pythonic.
|
|
|
Memorat
|
|
|
|
|
•bogdan2412
|
|
« Răspunde #9 : Noiembrie 10, 2008, 09:41:31 » |
|
Din punctul meu de vedere, Python e ca iPhone-ul sau ca Obama (cool, simple, slick) si recomand oricui sa-l incerce De altfel tot timpul e bine sa-ti alegi presedintele pentru ca e cool si slick
|
|
|
Memorat
|
|
|
|
•domino
|
|
« Răspunde #10 : Noiembrie 11, 2008, 00:39:53 » |
|
Din punctul meu de vedere, Python e ca iPhone-ul sau ca Obama (cool, simple, slick) si recomand oricui sa-l incerce De altfel tot timpul e bine sa-ti alegi presedintele pentru ca e cool si slick N-am insinuat asta Nu iti place Obama sau Python?
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #11 : Noiembrie 11, 2008, 15:54:39 » |
|
Din punctul meu de vedere, Python e ca iPhone-ul sau ca Obama (cool, simple, slick) si recomand oricui sa-l incerce De altfel tot timpul e bine sa-ti alegi presedintele pentru ca e cool si slick N-am insinuat asta Nu iti place Obama sau Python? Python rules
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•svalentin
|
|
« Răspunde #12 : Noiembrie 11, 2008, 20:28:19 » |
|
@svalentin Ai folosit Python, ai scris cod in el? Python nu reprezinta doar sintaxa limbajului ci si filozofia din spatele lui care incurajeaza productivitatea si calitatea codului ("there should be one—and preferably only one—obvious way to do it"). In PHP trebuie sa te chinui sa impui niste reguli de coding si de structura care in Python vin de la sine, intr-un mod natural. Da, am folosit Python, folosesc in continuare Python si ii exploatez din ce in ce mai mult posibilitatiile. Stiu ca python iti impune practic o anumita filozofie, te forteaza sa scrii cod intr-un anumit fel, etc. Dar faptul ca iti impune un lucru nu inseamna ca celalalt limbaj este mai slab. La fel de "ordonat" scriam cod si inainte sa incerc python. Da, sunt de acord, are exceptiile tratate foarte frumos, are unele librarii construite peste care sunt foarte misto (BeautifulSoup de exemplu), dar se creeaza un efect de halou in jurul lui. In afara de lucrul cu liste, tot ce a scris Cosmin despre python se regaseste si in php. (again, am folosit php doar ca exemplu argumentativ, nu sunt neaparat fan) Si ca sa continui pe analogia ta: iPhone e super, are tot ce poti sa iti doresti, dar nu l-as cumpara nicidata pentru ca il tine mult prea putin bateria. (deseori nici macar o zi) Uite un exemplu de lucru care m-a enervat in python: vreau sa printez ceva pe ecran fara separator dupa. Stiu ca se poate, dar nu in aceiasi formula simpla cu print.. (si deci se duce avantajul simplitatii pe cazul acesta particular)
|
|
|
Memorat
|
|
|
|
•domino
|
|
« Răspunde #13 : Noiembrie 11, 2008, 23:58:08 » |
|
List comprehension, sau lucrul cu listele cum ziceai tu, e un concept foarte puternic dupa parerea mea. Ca dovada, C# 3.0 are LINQ, care iti ofera aceasta functionalitate ( exemple). Bateria la iPhone 3G nu este un punct forte, dar nici nu se consuma foarte repede. Eu aveam inainte un Nokia E70, a carui baterie tinea tot cam atat, deci nu mi se pare iesit din comun. N-am inteles exemplul cu separatorul, poti sa dai mai multe detalii?
|
|
|
Memorat
|
|
|
|
•svalentin
|
|
« Răspunde #14 : Noiembrie 12, 2008, 13:24:15 » |
|
>>> print 'test' afiseaza 'test' si "\n"
>>> print 'test', afiseaza 'test' si spatiu dupa
>>> import sys >>> sys.stdout.write('test') afiseaza doar 'test'
|
|
|
Memorat
|
|
|
|
•wickedman
|
|
« Răspunde #15 : Noiembrie 12, 2008, 18:01:04 » |
|
In afara de lucrul cu liste, tot ce a scris Cosmin despre python se regaseste si in php. (again, am folosit php doar ca exemplu argumentativ, nu sunt neaparat fan) Un lucru care mie imi place mult si pe care Cosmin nu l-a mentionat este ca Python are closures. Cred ca asta e o diferenta semnificativa fata de PHP. In Python este foarte usor sa impachetezi niste cod intr-o functie (folosind def sau lambda) si sa-l pasezi mai departe. PHP are create_function insa nu suporta closures. Exemplu: def logger(storage, tag="ERROR"): def log(msg): storage.append("%8s: %s" % (tag, msg)) return log ... loglines = [] elog = logger(loglines) wlog = logger(loglines, "WARNING") ... elog("Am ramas fara spatiu.") wlog("Treaba merge greu.") ... print loglines afiseaza [' ERROR: Am ramas fara spatiu.', ' WARNING: Treaba merge greu.']
|
|
|
Memorat
|
|
|
|
•svalentin
|
|
« Răspunde #16 : Noiembrie 12, 2008, 18:06:48 » |
|
Now this is cool! Pentru asta trebuie laudat python!
|
|
|
Memorat
|
|
|
|
•StTwister
Client obisnuit
Karma: 11
Deconectat
Mesaje: 86
|
|
« Răspunde #17 : Noiembrie 14, 2008, 13:14:30 » |
|
Foarte interesant http://www.pythonchallenge.com/. Isi mai bate si altcineva capu? Momentan sunt la nivelul 15 si pana acum mi s-a parut foarte educativ, nu numai fun. Chiar te invata lucruri despre limbaj de care dai mai greu prin alte modalitati de invatare. Plus ca you learn by actually doing it!
|
|
|
Memorat
|
|
|
|
•rgrig
|
|
« Răspunde #18 : Noiembrie 18, 2008, 13:33:48 » |
|
Cum ar trebui inițializată cu 0 o matrice mxn în Python? Eu scriu [[0 for _ in range(n)] for _ in range(m)] dar parca trebuie sa fie si o metoda mai buna.
|
|
|
Memorat
|
|
|
|
•domino
|
|
« Răspunde #19 : Noiembrie 18, 2008, 14:48:40 » |
|
|
|
|
Memorat
|
|
|
|
•Cosmin
|
|
« Răspunde #20 : Noiembrie 19, 2008, 05:36:21 » |
|
|
|
|
Memorat
|
|
|
|
•sima_cotizo
|
|
« Răspunde #21 : Noiembrie 22, 2008, 21:36:48 » |
|
Am si eu o nelamurire. Am doua fisiere (nu stiu daca le pot zice module ): ColorWrite.py: class ColorWrite: FWHT="\033[37m " # foreground white def __init__(self): print "Using ColorWrite\n"+self.FWHT,
FolderScanner.py: import os import ColorWrite as cw
class IFolderScanner: w = cw.ColorWrite() def scan(self, path): pass
class fs1( IFolderScanner ): def __init__(self): w.write("Using basic file scanner (1)", "info") def scan(self, path): r = os.listdir(path) print r
Daca din interpreter dau import FolderScanner, imi va instantia una dintre cele doua clase din acel fisier, pt ca imi afiseaza mesajul din ColorWrite. Am importat initial si ColorWrite sa vad daca de acolo i se trage: Python 2.5.2 (r252:60911, Apr 21 2008, 11:12:42) [GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import ColorWrite >>> import FolderScanner Using ColorWrite
Aveti idee de ce face asa?
|
|
|
Memorat
|
|
|
|
•bogdan2412
|
|
« Răspunde #22 : Noiembrie 22, 2008, 22:07:24 » |
|
class IFolderScanner: w = cw.ColorWrite()
Astea ar trebui sa fie in __init__ daca vrei sa fie creat obiectul w doar cand se creaza o instanta a clasei IFolderScanner. Cauta pe google diferenta intre class attributes si instance attributes. "Class atributes" sunt parsate cand e declarata clasa si o sa apara in toate instantele create dup-aia.
|
|
« Ultima modificare: Noiembrie 22, 2008, 22:18:45 de către Bogdan Tataroiu »
|
Memorat
|
|
|
|
•sima_cotizo
|
|
« Răspunde #23 : Noiembrie 22, 2008, 23:13:28 » |
|
Multumesc, am cautat si pe net si am inteles. Interesant ca e o singura variabila pentru toate instantele (sper ca nu gresesc)
|
|
|
Memorat
|
|
|
|
•rgrig
|
|
« Răspunde #24 : Ianuarie 27, 2009, 13:06:21 » |
|
@domino: Dacă faci [[0]*3]*4 lista de 3 zerouri e shared, asa ca asta nu initalizeaza o matrice de 4x3.
|
|
|
Memorat
|
|
|
|
|