Python dla programisty Perla

Jestem doświadczonym programistą Perla z pewnym doświadczeniem i / lub znajomością innych języków (doświadczenie w pracy z C/C++, doświadczenie w szkole z Javą i Scheme oraz znajomość wielu innych).

Być może będę musiał wykonać jakąś pracę internetową w Pythonie (najbardziej natychmiast, związaną z Google App Engine). W związku z tym chciałbym zapytać tak overmind o dobre referencje, jak najlepiej nauczyć się Pythona dla kogoś, kto pochodzi z Perla (np. nacisk byłby o różnicach między nimi i jak przetłumaczyć idiomatykę Perla na idiomatykę Pythona, w przeciwieństwie do ogólnych odniesień do Pythona). Coś również koncentruje się na tworzeniu stron internetowych jest jeszcze lepsze. Wezmę wszystko-artykuły, tutoriale, książki, przykładowe aplikacje?

Dzięki!

 48
Author: nicael, 2010-02-17

8 answers

[1]} ostatnio musiałem dokonać podobnej zmiany z powodów zawodowych, i to było dość bolesne. Na dobre i na złe, Python ma zupełnie inną filozofię i sposób działania niż Perl, a przyzwyczajenie się do tego może być frustrujące. Rzeczy, które znalazłem najbardziej przydatne były

    Poświęć kilka godzin na zapoznanie się z podstawami. Znalazłem oficjalny tutorial całkiem dobry, jeśli trochę suchy. [[4]}dobra książka do wyszukiwania podstawowych rzeczy ("jak uzyskać długość znowu sznurek?"). Te, które znalazłem najbardziej przydatne są Python Pocket Reference i Python Essential Reference .
  • spójrz na ten poręczny PerlPython phrasebook (wspólne zadania, obok siebie, w obu językach).
  • odniesienie do podejścia Pythona do "wspólnych zadań". Używam Python Cookbook .
  • An ipython terminal otwarty przez cały czas do testowania składni, introspekcji metod obiektów itp.
  • Get pip and easy-install (aby łatwo zainstalować moduły Pythona).
  • Dowiedz się szybko o testach jednostkowych. Dzieje się tak dlatego, że bez use strict poczujesz się kaleką i popełnisz wiele elementarnych błędów, które pojawią się jako błędy uruchomieniowe. Polecam nose zamiast unittest framework, który jest dostarczany z instalacją core. unittest jest bardzo gadatliwy, jeśli jesteś przyzwyczajony do Test:: More .
  • Sprawdź pytania Pythona dotyczące przepełnienia stosu. W szczególności Python - Rzeczy, których należy unikać i Python 2.x gotcha i miny lądowe są warte przeczytania.

Osobiście znalazłem nurkowanie w Pythonie irytujące i protekcjonalne, ale jest on dostępny za darmo online, więc możesz sformułować swój własny osąd na ten temat.

 61
Author: ire_and_curses,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:22
 13
Author: Philip Durbin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-18 18:12:42

Będąc hardkorowym programistą Perla, mogę tylko powiedzieć, że NIE KUPUJ {[2] }O 'Reilly' s "Learning Python". Nie jest tak dobry jak" nauka Perla "i nie ma odpowiednika, który znam z" programowania Perla "Larry' ego Walla, który jest po prostu nie do pobicia.

Odniosłem największy sukces biorąc poprzednie programy Perla i tłumacząc je na Python, starając się wykorzystać jak najwięcej nowych technik.

 7
Author: larley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-18 06:16:46

Zobacz Oficjalny samouczek , który jest całkiem niezły. Jeśli jesteś zainteresowany tworzeniem stron internetowych, powinieneś być w tym momencie gotowy, aby przejść od razu do dokumentacji frameworka internetowego, z którym będziesz pracował; Python ma wiele do wyboru, Zope, cherrypy, pylons i werkzeug wszystkie mają dobrą reputację.

Nie próbowałbym szukać rzeczy, które mają pomóc w przejściu z Perla, które nie mają być tak wysokiej jakości, jak referencje, które mogą być przydatne dla większej liczby osób.

 4
Author: Mike Graham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-17 18:02:29
 3
Author: ghostdog74,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-18 01:17:19

Jeśli to, na co patrzysz, jest zwięzłym, zwięzłym odniesieniem do Pythona, to książka Python Essential Reference może być pomocne.

 2
Author: sateesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-17 18:08:59

Pobierz książkę stąd . Czytaj, oddychaj i jedz.. :)

To dobre dla każdego.

I zaktualizowane dla Python3 .

 2
Author: Srinivas Reddy Thatiparthy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-24 11:06:50

Nie próbowałbym zbytnio porównywać Perla i Pythona, aby nauczyć się Pythona, zwłaszcza, że masz praktyczną znajomość innych języków. Jeśli nie jesteś zaznajomiony z OOP / funkcyjnymi aspektami programowania i szukasz pracy proceduralnej jak w Perlu, zacznij uczyć się konstrukcji / składni języka Python, a następnie zrób kilka przykładów. jeśli robisz przejście na OO lub paradygmaty stylu funkcjonalnego, najpierw poczytałbym oo podstawy, a następnie zaczął na składni Pythona i examples...so masz rodzaj mentalnego planu, jak rzeczy mogą być skonstruowane, zanim zaczniesz pracować z prawdziwymi materiałami. jest to jednak tylko moje skromne zdanie..

 -3
Author: jellyfishtree,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-17 17:51:48