Пять возможностей Python, которые вы должны знать!

Пять возможностей Python, которые вы должны знать! Статьи

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

Введение

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

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

Использование F-strings

F-strings это пожалуй лучший способ форматирования строк. У него простой синтаксис и его легко отлаживать.

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

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

name = "Егор"
age = 30
city = "Санкт-Петербург"

message = f"Мое имя {name}, мне {age} лет и я проживаю в городе {city}"

print(message)

Вывод программы

Мое имя Егор, мне 30 лет и я проживаю в городе Санкт-Петербург

Распаковка итерируемых объектов

Если вы знаете Python, вы наверняка знаете, как мы можем распаковать содержимое итерабельной переменной в виде отдельных переменных:

a, b, c = ("Russian", "USA", "China")
print(a)
print(b)
print(c)

Вывод программы

Russian
USA
China

Наряду с этим мы можем воспользоваться звездочкой *, также известной как оператор распаковки/упаковки. Он упаковывает несколько значений в одну переменную и формирует итерабельную переменную, которую мы можем использовать по своему усмотрению. Например:

country = ("Russian", "USA", "China", "Korea", "Brazil", "Congo")
a, *b, c = country
print(a)
print(b)
print(c)

Вывод программы

Russian
['USA', 'China', 'Korea', 'Brazil']
Congo

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

Argparse — парсер аргументов запуска

Для разработчиков Python, которые пишут много сценариев, передача параметров из оболочки вместо input() экономит много времени и интуитивно понятна.

После импорта argparse мы определяем объект парсера, здесь также можно передать простое описание скрипта вместе с именем.

Затем мы добавляем к нему аргументы, имена аргументов предваряются одним или несколькими тире, и мы можем иметь альтернативные имена для одного аргумента, мы вызываем функцию parse_args(), которая возвращает объект пространства имен. Затем мы можем просто получить доступ к значениям, используя имена аргументов, как показано ниже:

import argparse

parser = argparse.ArgumentParser(description="Пример парсера аргументов")
parser.add_argument("--num", "-n", default=20)
args = parser.parse_args()
print(args.num)

Выполним код

python3 app.py                                          
20

python3 app.py -n 10                                     
10

python3 app.py --num 100
100

Интерактивный режим

Если вы хотя бы раз использовали Python, вы наверняка уже знакомы с тем, как можно запустить интерпретатор из оболочки, просто набрав python в вашей оболочке.

Python 3.9.6 (v3.9.6:db3ff76da1, Jun 28 2021, 11:49:53)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print("test")
test
>>>

В основном разработчики пишут код в редакторе и запускают его в shell, но что, если я скажу вам, что вы можете объединить лучшее из обоих методов?

Возьмем к примеру код выше

country = ("Russian", "USA", "China", "Korea", "Brazil", "Congo")
a, *b, c = country
print(a)
print(b)
print(c)

Теперь вместо запуска python app.py добавьте флаг -i перед именем, он запустит скрипт сначала один раз, но интерпретатор все еще будет активен, теперь вы можете вызывать функции этого скрипта, получать значения переменных и т.д. Это быстрый и полезный способ тестирования или отладки вашего кода.

python3 -i app.py

Russian
['USA', 'China', 'Korea', 'Brazil']
Congo

>>> country
('Russian', 'USA', 'China', 'Korea', 'Brazil', 'Congo')
>>> a
'Russian'
>>> b
['USA', 'China', 'Korea', 'Brazil']
>>> 

Enumerate

Традиционным способом для итерации по списку вы используете for index in range(0,len(example_list)): это хорошо, но enumerate делает это лучше.

Если мы обернем итерабельную переменную в enumerate() для каждой итерации, enumerate вернет кортеж, первый элемент которого — счетчик/индекс, а второй элемент — элемент этой итерабельности. Мы можем распаковать кортеж в цикле for и использовать по своему усмотрению.

Если нам не нравится, что счетчик начинается с 0, мы можем изменить и это.

country = ("Russian", "USA", "China", "Korea", "Brazil", "Congo")

for c in enumerate(country):
    print(c)

Вывод программы

(0, 'Russian')
(1, 'USA')
(2, 'China')
(3, 'Korea')
(4, 'Brazil')
(5, 'Congo')

Чтобы изменить начальный индекс используем аргумент start

country = ("Russian", "USA", "China", "Korea", "Brazil", "Congo")

for c in enumerate(country, start=-100):
    print(c)

Вывод программы

(-100, 'Russian')
(-99, 'USA')
(-98, 'China')
(-97, 'Korea')
(-96, 'Brazil')
(-95, 'Congo')

Заключение

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

Спасибо, что нашли время прочитать это! 😊️

close

Бесплатно

Моментальный доступ к новым статьям

Вы всегда сможете отписаться по ссылке в письме

Моя группа в ВКонтакте

Егор Егоров

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

Ссылка на мой github есть в шапке. Залетай.

Егоров Егор
Добавить комментарий

  1. Артём

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

    Ответить
    1. Егор Егоров автор

      Пожалуйста, Артем)

      Ответить
  2. Николай

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

    Ответить
    1. Егор Егоров автор

      век живи — век учись)

      Ответить
    2. Егор Егоров автор

      век живи — век учись!))

      Ответить