Змеиные яйца
Когда создатель языка Гвидо ван Россум начал внедрять Python, он также читал опубликованные сценарии из «Летающего цирка Монти Пайтона», комедийного сериала BBC 1970-х годов. Ван Россум подумал, что ему нужно короткое, уникальное и немного загадочное имя, поэтому он решил назвать язык Python. Как указано в официальной документации, вовсе не обязательно любить это шоу, чтобы пользоваться всеми преимуществами Python.
N.B. Все последующие пасхалки вы можете проверить самостоятельно в интерпретаторе просто запустив команду:
Летающий змий
Одна из самых забавных пасхалок в Python запускается командой:
Команда открывает в браузере комикс XKCD, в котором упоминается Python.
Учтите, что вы можете надолго «зависнуть в воздухе» листая комикс!)
Модуль антигравитации, ссылающийся на комикс XKCD, в котором упоминается Python, был добавлен в Python 3 Скипом Монтанаро.
Geohash
Любопытно, что в этой пасхалке есть еще одна пасхалка. Изучение реализации модуля antigravity.py обнаруживает скрытую функцию под названием «geohash», которая является ссылкой на другой комикс XKCD о геохешировании.
Функция использует алгоритм Рэндалла Манро, который генерирует случайные координаты GPS каждый день на основе промышленного индекса Доу-Джонса и текущей даты.
Некоторые считают, что функцию можно использовать для назначения встреч в офлайне )
Змеиный Дзен
Zen of Python представляет набор из 19 руководящих принципов для написания компьютерных программ, которые влияют на дизайн языка. Инженер-программист Тим Петерс написал этот набор и разместил его в списке рассылки Python в 1999 году. В списке Петерса оставался открытым 20-й принцип, «который должен заполнить Гвидо».
Дзен Питерса был включен под номером 20 в официальные предложения языка Python Enhancement Proposals. Он также включен в интерпретатор Python, как единственное официальное пасхальное яйцо, которое указано как в Руководстве разработчика Python.
В мае 2020 года Барри Варшава переложил афоризмы на музыку.
Список можно увидеть в консоли, если ввести следующую команду:
Умышленная ирония, стоящая за Zen of Python, заключается в том, что сам this.py модуль нарушает почти все афоризмы. Модуль реализован в виде шифра ROT13.
Змеиная любовь
Как бы продолжая афоризмы из Дзена, Python иногда предлагает порассуждать на любовную тему:
Что касается заявления love is not True or False; love is love, оно иронично, но не требует пояснений.
Нет шансов для фигурных скобок
Предпочитаете фигурные скобки в стиле C вместо отступов? Увы их никогда не будет:
types.CodeType – не для слабонервных
Если вы начнете копаться во внутренностях Python, можно наткнуться на предупреждение help для types.CodeType, которое буквально гласит что это не для слабонервных: «Not for the faint of heart».
PEP 401 и FLUFL
Первоапрельская шутка (4/01), PEP 401 заявляет, что Гвидо ван Россум уходит в отставку. Новый титул, данный ему, будет произноситься как «BDEVIL» (Benevolent Dictator Emeritus Vacationing Indefinitely from the Language – Доброжелательный диктатор, почетно отдыхающий от языка на неопределенный срок), а преемником Гвидо станет Барри Варшава, или, как его ласково называют, дядя Барри. Официальный титул дяди Барри – «FLUFL» (Friendly Language Uncle For Life – Дядя на всю жизнь):
Гвидо написал оригинальную реализацию Python в 1989 году и после почти 20 лет руководства сообществом решил уйти в сторону как Доброжелательный диктатор на всю жизнь. Гвидо оставляет Python в надежных руках его нового лидера и его яркого сообщества, чтобы подготовиться к своей мечте всей жизни о восхождении на Эверест. После единодушного голосования Руководящего союза Python (не путать с Python Secret Underground, которого категорически не существует) на конференции PyCon 2009, был выбран преемник Гвидо: Барри Варшава, или как он с любовью известен, дядя Барри.
Дядя Барри принимает следующие решения, чтобы продемонстрировать свое намерение вести сообщество так же ответственно и открыто, как и его предшественник, имя которого ускользает от него:
- Выбор Hg в качестве предпочтительной системы DVCS явился явным доказательством безумия BDEVIL, и отмена этого решения перейти на Bzr вместо этого – единственный верный выбор.
- Оператор неравенства != В Python 3.0 был ужасной ошибкой, вызывающей боль в пальцах, FLUFL восстанавливает оператор <> в качестве единственного написания. Это изменение достаточно важно, чтобы быть реализованным и выпущенным в Python 3.1. Чтобы облегчить переход к этой функции, был добавлен новый оператор future из __future__ import barry_as_FLUFL.
- Функция печати в Python 3.0 была ужасной, вызывающей боль ошибкой, FLUFL восстанавливает оператор печати. Это изменение достаточно важно для реализации и выпуска в Python 3.0.2.
- Неутешительная кривая принятия Python 3.0 свидетельствует о его полном отказе, вся работа над Python 3.1 и последующими версиями Python 3.x настоящим прекращается. Все функции Python 3.0 будут перенесены обратно на Python 2.7, который станет официальным и единственным следующим выпуском. Типы строк и байтов Python 3.0 будут обратно перенесены в Python 2.6.2 для удобства разработчиков.
- Признание того, что C – это язык 20-го века, который почти повсеместно отвергается программистами в возрасте до 30 лет, реализация CPython будет прекращена с выпуском Python 2.6.2 и 3.0.2. После этого эталонная реализация Python будет нацелена на виртуальную машину Parrot. Альтернативные реализации Python (например, Jython, IronPython и PyPy) официально не приветствуются, но допускаются.
- Признается, что Python Software Foundation, превосходно выполнив свою миссию, распускается. Управляющий союз Python (не путать с Python Secret Underground, которого категорически не существует) теперь является единственным распорядителем всей интеллектуальной собственности Python. Все средства PSF настоящим переводятся в PSU (не в этот PSU, а в другой PSU).
Отголосок этой шутки можно по прежнему лицезреть в интерпретаторе:
Хеш бесконечности
Хеш – это фиксированное целое число, идентифицирующее конкретную величину. Хеш бесконечности в Python равен 10⁵ x π. Интересно, что float('-inf') в Python3 хэш равен «-10⁵ x π», а в Python 2 – «-10-x e».
Еще раз Монти Пайтон
Учитывая, что создатель языка любит это шоу неудивительно, что в официальной документации явно сказано: «Ссылки на скетчи Monty Python в документации не только разрешены, но и приветствуются!». Метасинтаксические переменные в Python принимают имена spam и egg, а не более традиционно используемые foo и bar.
Вот еще пример использования str.format(), явно отсылающий к фильму «Монти Пайтон и Священный Грааль»:
Математический модуль
Хотя это не совсем пасхалка, но некоторые из самых популярных математических функций определены в математическом модуле. К ним относятся тригонометрические функции, функции представления, логарифмические функции, функции преобразования углов и т. д. Кроме того, в этом модуле определены две математические константы.
Еще одна хорошо известная математическая константа, определенная в математическом модуле, – это e. Оно называется числом Эйлера и является основанием натурального логарифма. Его значение – 2,718281828459045.
HelloWorld
«Hello, World!» часто используется для иллюстрации основного синтаксиса языка программирования. Это также часто первая программа для многих новичков. Сложно сделать это еще проще чем в Python:
Разработчики Python скрыли модуль, который мог выполнять Hello World, просто импортировав этот модуль! Повторный импорт библиотеки не приводит к повторному появлению сообщения.
Заключение
Подводя итог можно сказать, что Python – это не только мощный и функциональный язык. Разработчики и сообщество вложили в него специфическое чувство юмора и много интересных изюминок. Если вы решили освоить его с нуля, вам поможет «Самоучитель для начинающих». В библиотеке программиста вы также найдете множество полезных материалов по Python для разного уровня и задач.
На Python создают прикладные приложения, пишут тесты и бэкенд веб-приложений, автоматизируют задачи в системном администрировании, его используют в нейронных сетях и анализе больших данных. Язык можно изучить самостоятельно, но на это придется потратить немало времени. Если вы хотите быстро понять основы программирования на Python, обратите внимание на онлайн-курс «Библиотеки программиста». За 30 уроков (15 теоретических и 15 практических занятий) под руководством практикующих экспертов вы не только изучите основы синтаксиса, но и освоите две интегрированные среды разработки (PyCharm и Jupyter Notebook), работу со словарями, парсинг веб-страниц, создание ботов для Telegram и Instagram, тестирование кода и даже анализ данных. Чтобы процесс обучения стал более интересным и комфортным, студенты получат от нас обратную связь. Кураторы и преподаватели курса ответят на все вопросы по теме лекций и практических занятий.
Комментарии