Python Skills 🐍
302 subscribers
1.02K photos
17 videos
302 links
Канал полезного и юмористического контента на тему программирования, в частности такого языка как Python.

По всем вопросам: @andrey_andrey01
Download Telegram
Сны программистов би лайк:
3 трюка с itertools

Начнем с функции combinations: она позволяет составлять комбинации элементов из итерируемых объектов без повторений. Первый аргумент это сам объект, а второй — длина комбинации.

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

Ну и в заключение, рассмотрим функцию compress, применяющую "маску" из второго аргумента функции к первому. То есть, если в маске на этом месте стоит единица, то в исходном массиве элемент остается нетронутым, и наоборот.

#itertools
Проверка типа переменной

Функция isinstance(), проверяет тип для переменной, первый аргумент переменная, второй тип данных для проверки. На основе этого реализуем функцию проверки переменной на числовой тип данных.
Что такое *args и kwargs? (ч.2)

Можно заменить *args на *vars, а kwargs на options или другое слово. Программа будет работать корректно, но другие разработчики могут вас не понять.

Конструкции *args и kwargs можно использовать как самостоятельно, так и в комбинации с любым количеством обычных аргументов. Например, в коде выше первый параметр farg обрабатывается отдельно, а все остальные собираются в коллекцию.
Собираем строку воедино

Этот прием полезен, когда у нас много информации из разных источников. Например, показания приборов или статистика. Компонуем в один массив, а затем делаем красивый вывод.
Что выведет код выше?
Anonymous Poll
16%
True
60%
False
14%
Вызовет ошибку
10%
Узнать ответ
Удаление знаков препинания

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

В Python3 string.punctuation — это предварительно инициализированная строка, используемая как строковая константа. В Python string.punctuation даст все наборы знаков препинания.
Генераторы

Функции-генераторы выглядят как и обычные, но вместо return содержат выражения с ключевым словом yield для последовательного генерирования значений.

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

Если генератору больше нечего возвращать, то будет вызвано исключение StopIteration. В целом, генератор — это особый, более изящный случай итератора.

#генераторы
Так кто-то реально делает? 🤔🌚
Python — интерпретатор английского
Пары словаря как переменные

Для работы со словарями, часто использующаяся операция — разбор словаря в пары переменных ключ - значение.

Это легко сделать с помощью цикла, имея при этом короткое и элегантное решение проблемы.

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