Еще 10 фишек Python, которые помогут новичку выделиться
Собрали еще тележку фишек из нескольких версий Python, чтобы вы могли выделиться на стажировке.
68К открытий73К показов
Midjourney так хорошо справляется с рисунками девушек и питонов… Сразу вспоминается правило 34: “В интернете существует порно на любую тему. Без исключений”.
В Python никогда не бывает излишка полезных приемов. Чем больше таких вы изучите, тем выше вероятность, что сможете оперативно справиться с какой-либо трудностью на практике. Или покажете себя с лучшей стороны на техническом собеседовании. В этой статье я расскажу о хитростях, которые могут помочь новичкам (и не только) в развитии навыка. Я собрала тележку фишек и все еще нахожу новые – и порционно делюсь ими с вами.
Предыдущие статьи цикла:
Проверка наличия элемента в множестве
Мы можем проверить, находится ли тот или иной элемент в списке с помощью оператора in:
То же применимо и для множеств (set):
Автоматическое добавление ключа словарю
Если создать словарь средствами collections.defaultdict
, добавить хотя бы один элемент, а затем обратиться к несуществующему ключу:
то интерпретатор самостоятельно добавит новый элемент:
try / except + else + finally
Мастхэв для начинающих питонистов — пара try / except
, обработчик исключений. Шикарным дополнением к такому блоку является, на мой взгляд, else: он опишет поведение программы на случай других ошибок, которых может быть немало!
Более того, добавив finally
, вы выполните завершающие работы, например, скомандуете выслать уведомление:
Проверка существования переменной с помощью «моржового» оператора
Если мы объявили две переменные, но не задали любой из них значение, то с помощью оператора :=
(Walrus Operator) можно спасти программу от падения и добавить обрабатывающую логику. В первом случае, в переменные name1, name2 мы ничего не записали, значит, программа зайдет в блок else:
Во втором случае заполнена только одна из переменных, но программа отработает без ошибки:
Оператор match для проверки типа
Теперь освоение новых библиотек у вас точно ускорится.
Порой, трудно понять, какой тип данных возвращает функция или метод. В таких случаях помогают match и встроенные функции приведения к тому или иному типу данных:
Встроенные функции попытаются привести к своему значению переменную. Но если положить в var единицу, как примере выше, то мы минуем float().
Чтобы программа не упала, стоит заложить дальнейшую обработку var только в подходящие функции-наследнице кейсы.
Включение генераторов, сетов
В предыдущей статье с фишками я рассказывала, что есть эффективный способ генерировать списки — «списковое включение» (List Comprehension):
Оказывается, этому поддаются и другие составные типы — генераторы и сеты.
Pretty Print словаря
Выводить многоуровневые словари с print()
— боль: разрывы строк исчезнут, файл станет нечитаемым:
Но встроенная утилита pprint
, выдаст в командной строке «причёсанный» словарь:
TypeVarTuple
Допустим, мы создаём функцию convert_first_int()
, которая возвращает кортеж практически неизменным, только первый элемент приводит к целочисленному типу:
TypeVarTuple представляет собой произвольный кортеж потенциально разных типов. Полезно, если функция имеет дело только с первым элементом кортежа, и нам «разрешит» любые оставшиеся типы.
Импорт
В крайней версии Python 3.12 наконец стало возможным импортировать модули в адекватном для английского языка порядке слов!
Защита от SQL-инъекций
Безопасники скажут вам, что: внутрь текста (например, в поле анкеты) можно внедрить SQL-запрос и даже дропнуть базу данных. Но не дай бог нам с вами увидеть такое на проде.
Начиная с Python 3.11 мы можем использовать LiteralString во избежание таких уязвимостей:
Как видно из первой половины сниппета, arbitrary_string — это привычная строковая переменная. А вот query_string и table_name — уже «буквально строки», без возможных F-строк с подстановками.
Заключение
Некоторые приемы могут показаться непонятными в хайлайтах документации ЯП, и ясными становятся только после запуска примера. Поэтому не злитесь на себя, если такой код забывается. Просто сохраните статью в закладки, чтобы вернуться к описанным трюкам в один прекрасный день.
68К открытий73К показов