2010-02-17 3 views
46

Я опытный разработчик Perl с некоторым опытом и/или знакомством с другими языками (опыт работы с C/C++, опыт работы в школе с Java и Scheme, а также знакомство со многими другими).Python для программиста на Perl

Возможно, мне понадобится выполнить некоторые веб-работы в Python (наиболее немедленно, связанные с Google App Engine). Таким образом, я хотел бы спросить SO overmind о хороших ссылках о том, как лучше всего изучать Python для тех, кто приходит с фона Perl (например, акцент будет сделан на различиях между ними и как перевести perl-идиоматику в идиоматику Python, в противоположность к родовым ссылкам на Python). Еще лучше то, что сосредоточено на веб-разработке. Я возьму что-нибудь - статьи, учебники, книги, примеры приложений?

Спасибо!

+0

Схема, Java действительно пригодится. –

+1

http://www.python.org/doc/2.5.4/tut/tut.html –

ответ

59

Мне недавно пришлось сделать аналогичный переход по причинам работы, и это было довольно болезненно. К лучшему или худшему, у Python есть совсем другая философия и способ работы, чем Perl, и привыкание к этому может расстраивать. То, что я нашел наиболее полезным, было

  • Проведите несколько часов, пройдя все основы. Я нашел official tutorial неплохо, если немного сухо.
  • Хорошая справочная книга для поиска основных вещей («как я могу получить длину строки снова?»). Наиболее полезные из них - Python Pocket Reference и Python Essential Reference.
  • Посмотрите на это удобно Perl<->Python phrasebook (общие задачи, бок о бок, на обоих языках).
  • Ссылка на подход Python к «общим задачам». Я использую Python Cookbook.
  • ipython терминал открыт во все времена, чтобы проверить синтаксис, методы объектно-ориентированных объектов и т. Д.
  • Получить pip и easy-install (чтобы легко установить модули Python).
  • Узнайте о модульных тестах быстро. Это связано с тем, что без use strict вы почувствуете себя калекой, и вы совершите много элементарных ошибок, которые появятся как ошибки времени выполнения. Я рекомендую nose вместо рамки unittest, которая поставляется с базовой установкой. unittest очень многословный, если вы привыкли к Test::More.
  • Ознакомьтесь с вопросами Python о переполнении стека. В частности, стоит отметить Python - Things one MUST avoid и Python 2.x gotcha’s and landmines.

Лично я нашел Dive Into Python, раздражающий и покровительствовавший, но он свободно доступен в Интернете, поэтому вы можете составить собственное мнение по этому поводу.

+4

Большое спасибо. Я в одной лодке. – FMc

+3

Отлично! Охватывает каждую пулю, о которой я когда-либо спрашивал! Благодаря!!! – DVK

+1

Можете ли вы объяснить «различную философию и способ работы»? – JoelFan

2

Загрузить книгу from here. Прочтите, вздохните и съешьте это. :)

Это хорошо для всех.

И updated for Python3.

+2

Я второй погружаюсь в Python. Это похоже на библию стартовых книг Python. – jellyfishtree

+1

Должен ли стандартный учебник быть первым? Btw, Google App движок подразумевает Python 2.5, правильно? –

+0

Кажется, что у него есть некоторые ссылки на Perl, хотя большинство сравнений, по-видимому, относятся к Visual Basic ... – DVK

-3

Я бы не пытался слишком сильно сравнивать Perl и Python, чтобы изучить Python, тем более, что у вас есть знание других языков. Если вы не знакомы с аспектами ООП/функционального программирования и просто пытаетесь работать процедурно, как в Perl, начните изучать конструкции/синтаксис языка Python, а затем сделайте пару примеров. если вы переходите к парадигмам OO или функционального стиля, сначала я буду читать основы OO, а затем начинаю синтаксис и примеры Python ... так что у вас есть своего рода мысленный план того, как вещи могут быть созданы до того, как вы начнете работать с фактическими материалами. это только мое скромное мнение, однако ..

+14

Псст. Современные разработчики Perl используют OO так же, как и все остальные. И, как обычно, TMTOWTDI. ;) –

+13

@ jellyfishtree - я постараюсь не обидеться, но на самом деле это предположение было немного неуместным. Я пишу полностью OO-код в Perl (а также C++) - я действительно говорил, что я опытный разработчик Perl, а не обезьяна-скрипт - кроме того, я могу выполнять функциональное программирование, но с гораздо меньшим опытом/качеством :) – DVK

+4

Perl и Python OO системы очень похожи - Perl ' s был скопирован с Python. –

4

Проверьте official tutorial, что на самом деле довольно хорошо. Если вас интересует веб-разработка, вы должны быть готовы в этот момент, чтобы перейти прямо к документации веб-структуры, с которой вы будете работать; У Python есть много вариантов, с zope, cherrypy, pylons и werkzeug, все из которых имеют хорошую репутацию.

Я бы не стал искать вещи, специально предназначенные для того, чтобы помочь вам переходить с Perl, которые не должны быть столь же высокого качества, как ссылки, которые могут быть полезны для большего количества людей.

3

This - это сайт, на котором вы действительно должны пойти. Есть раздел под названием Начало работы, которое вы должны посмотреть. Есть также рекомендации по книгам. Кроме того, вы также можете быть заинтересованы в this на «идиомы»

7

Будучи хардкор Perl программист, все, что я могу сказать, НЕ ПОКУПАЙТЕ издательства O'Reilly «Learning Python». Он нигде НИКОГДА не так хорош, как «Learning Perl», и нет никакого эквивалента, который я знаю о «Программировании Perl» Ларри Уолла, что просто непобедимо.

У меня был самый успешный успех в программах Perl и перевод их на Python, пытаясь использовать как можно больше новых технологий.

Смежные вопросы