11 забавных пасхалок в Python

11 забавных пасхалок в Python

Когда создатель языка Гвидо ван Россум начал внедрять Python, он также читал опубликованные сценарии из « Летающего цирка Монти Пайтона », комедийного сериала BBC 1970-х годов. Ван Россум подумал, что ему нужно короткое, уникальное и немного загадочное имя, поэтому он решил назвать язык Python. Как указано в официальной документации , вовсе не обязательно любить это шоу, чтобы пользоваться всеми преимуществами Python.

N.B. Все последующие пасхалки вы можете проверить самостоятельно в интерпретаторе просто запустив команду:

Летающий змий

Одна из самых забавных пасхалок в Python запускается командой:

Команда открывает в браузере комикс XKCD , в котором упоминается Python.

11 забавных пасхалок в Python

Учтите, что вы можете надолго «зависнуть в воздухе» листая комикс!)

Модуль антигравитации, ссылающийся на комикс XKCD, в котором упоминается Python, был добавлен в Python 3 Скипом Монтанаро .

Geohash

11 забавных пасхалок в Python

Любопытно, что в этой пасхалке есть еще одна пасхалка. Изучение реализации модуля antigravity.py обнаруживает скрытую функцию под названием «geohash», которая является ссылкой на другой комикс XKCD о геохешировании .

Функция использует алгоритм Рэндалла Манро , который генерирует случайные координаты GPS каждый день на основе промышленного индекса Доу-Джонса и текущей даты.

Некоторые считают, что функцию можно использовать для назначения встреч в офлайне )

Змеиный Дзен

Zen of Python представляет набор из 19 руководящих принципов для написания компьютерных программ, которые влияют на дизайн языка. Инженер-программист Тим Петерс написал этот набор и разместил его в списке рассылки Python в 1999 году. В списке Петерса оставался открытым 20-й принцип, «который должен заполнить Гвидо».

Дзен Питерса был включен под номером 20 в официальные предложения языка Python Enhancement Proposals. Он также включен в интерпретатор Python, как единственное официальное пасхальное яйцо, которое указано как в Руководстве разработчика Python .

В мае 2020 года Барри Варшава переложил афоризмы на музыку.

Список можно увидеть в консоли, если ввести следующую команду:

11 забавных пасхалок в Python

Умышленная ирония, стоящая за 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 – Дядя на всю жизнь):

Дядя Барри принимает следующие решения, чтобы продемонстрировать свое намерение вести сообщество так же ответственно и открыто, как и его предшественник, имя которого ускользает от него:

  1. Выбор Hg в качестве предпочтительной системы DVCS явился явным доказательством безумия BDEVIL, и отмена этого решения перейти на Bzr вместо этого – единственный верный выбор.
  2. Оператор неравенства != В Python 3.0 был ужасной ошибкой, вызывающей боль в пальцах, FLUFL восстанавливает оператор <> в качестве единственного написания. Это изменение достаточно важно, чтобы быть реализованным и выпущенным в Python 3.1. Чтобы облегчить переход к этой функции, был добавлен новый оператор future из __future__ import barry_as_FLUFL.
  3. Функция печати в Python 3.0 была ужасной, вызывающей боль ошибкой, FLUFL восстанавливает оператор печати. Это изменение достаточно важно для реализации и выпуска в Python 3.0.2.
  4. Неутешительная кривая принятия Python 3.0 свидетельствует о его полном отказе, вся работа над Python 3.1 и последующими версиями Python 3.x настоящим прекращается. Все функции Python 3.0 будут перенесены обратно на Python 2.7, который станет официальным и единственным следующим выпуском. Типы строк и байтов Python 3.0 будут обратно перенесены в Python 2.6.2 для удобства разработчиков.
  5. Признание того, что C – это язык 20-го века, который почти повсеместно отвергается программистами в возрасте до 30 лет, реализация CPython будет прекращена с выпуском Python 2.6.2 и 3.0.2. После этого эталонная реализация Python будет нацелена на виртуальную машину Parrot. Альтернативные реализации Python (например, Jython, IronPython и PyPy) официально не приветствуются, но допускаются.
  6. Признается, что 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, тестирование кода и даже анализ данных. Чтобы процесс обучения стал более интересным и комфортным, студенты получат от нас обратную связь. Кураторы и преподаватели курса ответят на все вопросы по теме лекций и практических занятий.