Рубріки: Теория

12 магических советов для написания лучшего Python-кода

Игорь Грегорченко

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

  1. F-строки

F-строки обеспечивают лаконичный и удобный способ встраивания выражений Python внутрь строковых литералов для форматирования.

Сначала определим две переменные name и age, которые нужно включить в оператор печати.

name = "Pavel"
age = 23

Чтобы не заниматься конкатенацией строк или использованием запятых внутри оператора печати, вы можете использовать улучшенный синтаксис форматирования строк Python «f-Strings», который был выпущен в Python 3.6.

Просто поставьте строчную или заглавную букву «f» перед строкой с переменными или выражениями внутри фигурных скобок.

F-строки — это отличный новый способ форматирования строк, более удобный для чтения, быстрый, лаконичный и менее подверженный ошибкам, чем другие способы форматирования!

  1. Функция справки

Функция справки Python используется для поиска документации по модулям, функциям, классам, ключевым словам и т.д.

Просто передайте объект в функцию help, чтобы получить документацию по этому объекту:

 

  1. Определение размера любого объекта

Модуль sys по умолчанию содержит функцию getsizeof, которая принимает объект и возвращает его размер в байтах. Объект может быть любого типа.

Например:

Учитывается только расход памяти, непосредственно приписываемый объекту, а не расход памяти объектов, на которые он ссылается.

Другой пример:

 

  1. Цепочка операторов сравнения

Обычно, чтобы проверить более двух условий, необходимо использовать логические операторы, такие как and/or

if a < b и b < c:

В Python есть лучший способ написать это с помощью цепочки операторов сравнения.

Цепочка операторов может быть записана следующим образом:

if a < b < c:

Например:

 

  1. Списковое включение (List comprehension)

List comprehension — это еще один зачастую более элегантный способ создания списков.

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

new_list = [expression for item in iterable (if conditional)]

Например:

Другой пример (с условием):

  1. Умножение строк

В Python можно умножать не только числа, но и строки.

Например:

 

  1. Назначение нескольких переменных в одной строке

Вы можете присвоить несколько значений нескольким переменным, разделяя переменные и значения запятыми:

Это также работает при разрушении/распаковке последовательностей, таких как списки или кортежи, и является более элегантным способом присвоения элементов последовательности отдельным переменным, поскольку нет необходимости использовать цикл или отдельно индексировать каждый элемент последовательности.

  1. Замена переменных на месте

Во многих других языках программирования поменять местами значения двух или более переменных можно было только путем определения дополнительной временной переменной (temp).

Допустим, вы хотите поменять местами x и y:

temp = x
x = y
y = temp

В Python существует простая однострочная конструкция для обмена переменными, аналогичная концепции присвоения значений нескольким переменным в одной строке.

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

 

  1. Создание перечисления

Enum — это класс в Python для создания перечислений, которые представляют собой набор символических имен, прикрепленных к уникальным, постоянным значениям.

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

Все, что осталось сделать, это перечислить переменные и установить их равными нужным значениям:

Чтобы получить доступ к перечислению memberPaulas, вы можете просто сделать Person.Paul, что вернет 0.

В Python приведенный выше пример можно сократить, перечислив переменные рядом друг с другом и установив их равными функции range:

 

  1. Перечислить

Часто при циклическом просмотре списка вы хотите получить доступ не только к индексу с позицией в списке, но и к самому элементу.

Давайте определим список символов:

x = ['a', 'b', 'c']

Вместо того, чтобы перебирать его стандартным способом, нужно получить доступ к элементу и индексу:

Использование enumerate

Enumerate — это встроенная функция Python, которая позволяет нам перебирать итерации и иметь автоматический счетчик. По сути, она сопоставляет каждый элемент в нашем списке с соответствующим индексом. Большинство новичков и даже некоторые опытные программисты не знают об этом.

Вы можете изменить имена переменных i и v на те, которые вам больше нравятся. Например, для index, count в enumerate(x).

  1. Функция Dir

dir() — это мощная встроенная функция в Python3, которая возвращает список атрибутов и методов любого объекта, т.е. функций, модулей, строк, списков, словарей и т.д.

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

Например:

dir() часто используется в целях отладки. Способность dir() перечислять все атрибуты переданного параметра очень полезна при работе с большим количеством классов и функций по отдельности.

  1. Распаковка аргументов

Иногда называемый оператором Splat или Scatter * работает, когда аргументы в списке/кортеже должны быть распакованы для вызова функции, требующей отдельных позиционных аргументов.

Например, встроенная функция range() ожидает отдельных аргументов start и stop. Вы можете использовать оператор * для распаковки аргументов из списка или кортежа при написании вызова функции:

Определим простой список x = [1,2,3,4,5].

Обычным примером использования оператора распаковки будет использование print:

print(*x) // Результат: 1 2 3 4 5

Это просто выводит каждый элемент списка рядом друг с другом, разделенные пробелом, поскольку оператор распаковки берет все элементы списка и передает их в качестве параметра, поэтому перевод приведенного выше кода будет print(1,2,3,4,5).

Этот трюк в Python довольно часто используется в функциях, чтобы «упаковать» все аргументы, которые получает вызов метода, в одну единственную переменную.

Например:

Функция func выше может принимать неограниченное количество аргументов (args[0] и args[1] будут передавать первый и второй аргументы соответственно).

Аналогичным образом словари могут передавать аргументы ключевых слов с помощью оператора **.

Давайте определим словарь Python под названием person:

person = {"name": "Paul", "age": 23, "location": "London"}

Вы можете использовать оператор ** для передачи словаря в функцию.

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

Например:

Почему Python (вместо заключения)?

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

Язык поставляется с большой стандартной библиотекой, которая охватывает такие области, как обработка строк (регулярные выражения, Unicode, вычисление различий между файлами), интернет-протоколы (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, программирование CGI), разработка стандартного программного обеспечения (модульное тестирование, протоколирование, профилирование, разбор кода Python) и интерфейсы операционной системы (системные вызовы, файловые системы, сокеты TCP/IP).

Python является одним из самых популярных и простых в изучении языков программирования и используется практически везде, включая веб-разработку. Для Python существует множество самых популярных фреймворков. Многие из них оптимизируют разработку и предоставляют инструменты, позволяющие развернуть готовый продукт всего за пару дней.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023