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

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

Подпишись на мой канал в Telegram

Я перечислил пять возможностей 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

Бесплатная подписка

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

Вступи в мою группу ВКонтакте

Егор Егоров

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

Если не сложно, напиши комментарий, как тебе статья.

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

  1. Николай

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

    Ответить