Python
Материал из Lurkmore
« |
Прикинь блин, сижу вчера на питон скрипт делаю, Мама подходит и говорит, харошь в крестики нолики играть к экзамену готовься)) | » |
— Баш |
« |
Сижу, разглядываю листинг на Питоне. Отец, глянув издалека на монитор, спрашивает: Маяковского читаешь? 406082 | » |
— Анонимус |
Содержание |
[править] class Python(PL):
Python ([ˈpaɪθən], рус. Питон) — скриптовой язык программирования, созданный неким Гвидо ван Россумом (ныне сотрудник Google). Назван так, по словам самого Гвидо, в честь шоу Monty Python. Наиболее знаменитая отличительная черта языка — использование отступов для выделения блоков кода и управляющих структур.
Чтобы его изучить, достаточно ознакомится с туториалом на сайте [1] и полистать код пары-тройки опенсорсных программ. Язык крайне простой и скромный на выразительные средства сравнительно Ruby или Perl (один из элементов идеологии — надо программы писать, а не самовыражаться затейливо). Но на самом деле предоставляемые возможности достаточно широки, чтобы надолго увлечься данным языком. При достаточном желании и отсутствии перманентного отрицания (в духе «всё хуйня кроме пчел») есть вероятность научиться писать годный, сопровождабельный и продаваемый код.
Основной причиной вышеупомянутого отрицания обычно бывает «магия отступов»: в отличие от многих языков, в которых можно, но не обязательно индентить код, в питоне отступы прямо влияют на вложенность выражений. Сторонники считают, что это удобнее, чем фигурные скобки, а заодно положительно влияет на читаемость кода и дисциплинирует программистов.
Язык также вызывает ненависть многих ЯП-нердов, ибо лишь ограниченно поддерживает некоторые продвинутые технологии программирования:
- reduce() (аналог foldl из Haskell) убран в закрома стандартной библиотеки и не рекомендуется к применению из-за «плохой читаемости кода»;
- анонимные функции (лямбды) могут состоять только из одного выражения;
- отсутствует Pattern Matching
- Ван Россум считает ненужной поддержку tail call: [2];
- невозможно потоками параллелить программу по нескольким процессорам/ядрам (благодая системе GIL, огораживающей программиста от типичных связанных с многопоточностью проблем), рекомендуется для этого вместо потоков использовать модуль multiprocessing
[править] class Python3(LessFail, Python):
Python 3 = принципиально новая версия того же языка от того же автора. Исправляет некоторые недочеты предыдущей версии, например:
- все строки стали юникодными как в Java;
- появилась возможность указывать хинты для типов аргументов функций PEP-3107 Function Annotations;
- улучшена библиотека коллекций
- строковые шаблоны используют модный синтаксис в стиле C# вместо старого printf-подобного синтаксиса
- добавлен новый слой I/O, позволяющий без изъебств реализовывать потоки данных.
[править] Литература = [
- На русском языке
- Марк Лутц. Программирование на Python, 4-е издание, II том — Перевод с английского. — СПб.: Символ-Плюс, 2011. — ISBN 978-5-93286-211-7
- Марк Лутц. Программирование на Python, 4-е издание, I том — Перевод с английского. — СПб.: Символ-Плюс, 2011. — 992 с — ISBN 978-5-93286-210-0
- Марк Лутц. Изучаем Python, 4-е издание. — Перевод с английского. — СПб.: Символ-Плюс, 2010. — 1280 с — ISBN 978-5-93286-159-2
- Дэвид М. Бизли. Python. Подробный справочник, 4-е издание. — Перевод с английского. — СПб.: Символ-Плюс, 2010. — 864 с — ISBN 978-5-93286-157-8
- Уэсли Чан, Пол Биссекс, Джеффри Форсье. Django.Разработка веб-приложений на Python. — Перевод с английского. — СПб.: Символ-Плюс, 2009. — 456 с — ISBN 978-5-93286-167-7
- Марк Саммерфилд. Программирование на Python 3. Подробное руководство. — Перевод с английского. — СПб.: Символ-Плюс, 2009. — 608 с — ISBN 978-5-93286-161-5
- Ноа Гифт, Джереми М. Джонс. Python в системном администрировании UNIX и Linux. — Перевод с английского. — СПб.: Символ-Плюс, 2009. — 512 с — ISBN 978-5-93286-149-3
- Марк Лутц. Программирование на Python: Перевод с английского (+CD). — СПб.: Символ-Плюс, 2002. — 1136 с — ISBN 5-93286-036-7, ISBN 0-596-00085-5
[править] другие_фичи = [
- Любовь питонистов к подчеркиваниям вылилась в использование последних в названиях многих переменных: _приватных, __классоспецифичных, __магических__ и просто_плохо_названных_.
- PEP-0008: документ, описывающий стилистические особенности кода на питоне, которые должен соблюдать любой программист чтобы не быть анально покаранным. Для проверки кода на соответствие есть специальная утилита.
- Dive into Python: универсальная книга, позволяющая любому выучить питон и получать такую зарплату, что все бабы будут течь.
- Будучи скриптовым языком, Питон медлителен. Для борьбы с этим используются: специальный транслятор для написания шустрых модулей к питону Cython и экспериментальный JIT-компилятор PyPy.
- Питон-фаги любят описывать свой стиль написания программ как Pythonic и говорить, что они следуют Python Way. Некоторые кодеры реагируют на это мемом «Python way? No way!».
- Python, наряду с C++, Java и Go — один из языков, принятых к использованию в Google.
]
[править] def __cult__(self, self, self, self, self, self, self, cls):
Существует культ Питона, называемый «Дзэном Питона» (The Zen of Python). Основные ее постулаты:
Красивое лучше, чем уродливое. Явное лучше, чем неявное. Простое лучше, чем сложное. Сложное лучше, чем запутанное. Плоское лучше, чем вложенное. Разреженное лучше, чем плотное. Читаемость имеет значение. Особые случаи не настолько особые, чтобы нарушать правила. При этом практичность важнее безупречности. Ошибки никогда не должны замалчиваться. Если не замалчиваются явно. Встретив двусмысленность, отбрось искушение угадать. Должен существовать один — и, желательно, только один — очевидный способ сделать это. Хотя он поначалу может быть и не очевиден, если вы не голландец. Сейчас лучше, чем никогда. Хотя никогда зачастую лучше, чем прямо сейчас. Если реализацию сложно объяснить — идея плоха. Если реализацию легко объяснить — идея, возможно, хороша. Пространства имён — отличная штука! Будем делать их побольше. |
[править] def __см__также__(self):
[ + ] Любой программист без словаря поймёт, что такое Python
|
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|