Senior Python Developer
40.8K subscribers
2.24K photos
6 videos
1 file
560 links
№ 4931117861
Публикуем интересные/полезные фичи/библиотеки языка.

По вопросам сотрудничества: @adv_and_pr

Канал на бирже:
https://telega.in/c/seniorpy
Download Telegram
Walrus Operator :=

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

Данная функция из встроенного модуля random, созданного для работы со случайностями, позволяет перемешивать последовательности. В примере она работает с двумя списками. Обратите внимание, что она именно меняет списки, а не создаёт новые изменённые, сама по себе ничего не возвращая.
Делаем скриншот с помощью кода

Модуль pyscreenshot позволяет делать скриншоты как всего экрана, так и его части. Не забудьте также установить модуль pillow для его работы.

К примеру, пригодится для логов скриптов, использующих Selenium, чтобы видеть, что происходило в браузере. Документация: https://github.com/ponty/pyscreenshot/tree/3.0
Параметры *args и **kwargs

*args используется, когда неизвестно, сколько именно аргументов будет принимать функция. В коде в переменную args записывается кортеж всех переданных значений. *kwargs поступает почти так же с именованными аргументами — они записываются в соответствующий словарь.
Что выведет код?
Anonymous Quiz
5%
[1, 2, 3]
45%
2 None
9%
2None
17%
1
17%
Error
7%
Другое
Фильтрация False-значений

Данный код можно использовать для исключения всех "ложных" значений из списка, к примеру false, 0, None, " ".
Особая переменная __name__

Когда интерпретатор Python работает с программой, в начале он устанавливает некоторые специальные переменные. Одна из них — __name__.

Если скрипт запущен напрямую, то в переменную присваивается значение __main__, в случае импорта — название модуля.

__name__ по умолчанию также есть у всех классов и функций. Популярный вид работы с переменной — установка точки входа в программу.
Тернарный оператор

Тернарный оператор — это сокращённая форма записи условного выражения if-else. Вот пример использования.
Встроенная функция help()

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

Для указанного в подзаголовке случая в Python есть оператор * – расширенная операция распаковывания последовательности. Переменной со звездочкой присваивается часть списка, содержащая все неприсвоенные элементы, соответствующие этой позиции.
Метод re.sub()

re.sub(pattern, repl, string)

Ищет шаблон в строке и заменяет его на указанную подстроку. Если шаблон не найден, строка остается неизменной.
Выполнение функций по заданному расписанию

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

Она позволяет описать в декораторе конфигурацию расписания, согласно которому метод будет запускаться. В примере выше функция hi будет выполняться каждые 30 минут. С помощью этого конфигуратора можно составить свою строку-расписание: https://crontab.guru/
🐍 Что такое yield в Python? Самый популярный вопрос на Стаковерфлоу по Питону

Самый популярный Python-вопрос на Stackoverflow связан с ключевым словом yield. Разберемся с его назначением и особенностями использования.

https://proglib.io/p/chto-takoe-yield-v-python-samyy-populyarnyy-vopros-na-stakoverflou-po-pitonu-2022-03-21
Поиск соответствий в строках

В стандартной библиотеке есть модуль difflib с методом get_close_matches, позволяющий в одно применение найти похожие строки.

Первый аргумент — искомая строка, второй — список, где выполняется поиск. Ещё можно передать необязательный аргумент n, задающий максимальное число возвращаемых совпадений.