Пример кода на питоне

Пример кода на питоне

Примеры готовых программ и кода на python 3.

Решение задачи C4 из диагностической работы ЕГЭ 2015

Для большинства учеников самой сложной и нерешаемой задачей в ЕГЭ по информатике является задача C4.

Поэтому я разберу одну из них, и покажу, как такие задачи можно решать на языке Python.

Интерпретатор hq9+

Сегодня мы напишем интерпретатор ещё одного эзотерического языка программирования, под названием hq9+.

Задача про словарь

Сегодня я разберу одну из олимпиадных задач, довольно простую.

Суть задачи в том, чтобы из англо-латинского словаря сделать латино-английский.

Пишем блэкджек

Ну, точнее, не блэкджек, а его мини-вариант под названием очко.

Интерпретатор brainfuck

Сегодня я решил что-нибудь написать на python. Что-нибудь простенькое, но не очень. Решил остановиться на интерпретаторе brainfuck.

Многие люди начинают переезжать с версии 2 на 3 из-за Python EOL (Поддержка Python 2.7 прекратиться с 2020 года). К сожалению, часто Python 3 выглядит как Python 2 со скобками. В статье я покажу несколько примеров существующих функций, которыми вы можете пользоваться только в Python 3, с надеждой на то, что это поможет решать ваши текущие и будущие задачи.

Все примеры написаны в Python 3.7 и каждая функция содержит минимальную версию Python для этой функции.

F-строки (Python 3.6+)

Сложно делать что-либо без строк в Python и чтобы сохранить адекватность, вам нужно иметь структурированный способ работы со строками. Большая часть людей, работающих с Python, предпочитают метод format python.

Наряду с format , Python 3 предоставляет гибкий способ выполнения интерполяции строк через f-строки. Тот же код, что и показанный выше, с использованием f-strings выглядит так:

Pathlib (Python 3.4+)

F-строки — это отличное решение, но некоторые строки, такие как пути файлов, имеют свои собственные библиотеки, которые заметно упрощают работу. Python 3 предоставляет pathlib в качестве удобной абстракции для работы с путями файлов.

Читайте также:  Что такое kvi в торговле

Подсказки типов | Ожидание типа | Type hinting (Python 3.5+)

Спор о том, какое типизирование python лучше — статическое или динамическое — не умолкают и по сей день и у каждого есть свое мнение на этот счет. Это личное дело читателя — когда ему нужно вписывать типы, но мне кажется что вы как минимум должны знать о том, что Python 3 поддерживает подсказки типов.

Перечисления enum (Python 3.4+)

Python 3 поддерживает простой способ написания перечислений через класс Enum. Этот класс можно назвать удобным способом инкапсуляции списка констант, чтобы они не были разбросаны по всему коду без структуры.

Перечисление — это набор символических имен (членов), связанных уникальным, постоянным значением. С перечислением, члены можно сравнить по идентичности, а само перечисление может повторяться.

Встроенный LRU кэш (Python 3.2+)

Кэш содержится практически в любом горизонтальном отрезке программного обеспечения, которым мы пользуемся сегодня. Python 3 делает их использование очень простым, предоставляя кэш LRU (Least Recently Used) в качестве декоратора под названием lru_cache .

Внизу показана простая функция Фибоначчи, которая, как мы знаем, выиграет от кэширования, так как выполняет одну и ту же работу несколько раз через рекурсию.

Теперь мы можем использовать lru_cache для оптимизации (эта техника оптимизации называется меморизация). Время выполнения варьирует от секунд до наносекунд.

Повторяемая расширенная распаковка (Python 3.0+)

Здесь код будет говорить сам за себя (документация):

Классы данных (Python 3.7+)

Python 3 представляет классы данных, которые не имеют большого количества ограничений и могут быть использованы для сокращения стандартного кода, так как декоратор автоматически генерирует специальные методы, такие как __init__() и __repr()__ . Из официального заявления, они описываются как “изменяемые названные кортежи со значениями по умолчанию”.

Читайте также:  Как обновить ключ продукта windows 10 читать

Та же реализация класса Armor при помощи классов данных.

Пространства имен (Python 3.3+)

Один из способов структуризации кода Python заключается в пакетах (папки с файлом __init__.py ). Пример ниже предоставлен официальной документацией Python.

В Python 2, каждая папка выше должна иметь файл __init__.py , который делает папку пакетом Python. В Python 3, с появлением неявных пакетов пространств имен, эти файлы больше не нужны.

Впрочем, как многие пользователи заметили, это может быть не так просто, как я указал в этом разделе. Согласно спецификации 420 в PEP — файл __init__.py все еще может понадобиться для обычных пакетов, удаление его из структуры папки превратит его в пакет пространства имен, который включает в себя дополнительные ограничения, официальная документация нативных пакетов пространств имен показывают хорошие примеры тому, а также в них озвучиваются названия всех ограничений.

Подведем итоги

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

Обращаюсь к рядам питонистов – покажите кто может куски или пакеты, код в которых вы считаете идеальным, правильным, красивым, может быть даже Гениальным 🙂

И еще буду благодарен за ссылки на книжки с примерами крутого кода на питоне.
Спасибо!

Ссылка на основную публикацию
Почему яндекс картинки маленькие
В этом лайфхаке мы расскажем, почему не открываются картинки в браузере Яндекс и как включить их в настройках. Для начала...
Почему мутное изображение на мониторе
Приветствую! При работе с теми или иными программами вы могли обнаружить, что у одних программ интерфейс чёткий, а у других...
Почему на пс3 нет звука в играх
Звуковой ряд уже давно стал неотъемлемой частью игр. Более того, во многих проектах солидную долю бюджета при разработке составляет именно...
Практическая работа по теме программное обеспечение компьютера
Содержание 12 урока "Системное программное обеспечение" Содержание 13 урока "Системы программирования и прикладное программное обеспечение" Практическая работа №4. "Программное обеспечение...
Adblock detector