Защита от SQL-инъекций
Безопасники скажут вам, что: внутрь текста (например, в поле анкеты) можно внедрить SQL-запрос и даже дропнуть базу данных. Но не дай бог нам с вами увидеть такое на проде.
Начиная с Python 3.11 мы можем использовать LiteralString во избежание таких уязвимостей.
🔗 Python tricks
Безопасники скажут вам, что: внутрь текста (например, в поле анкеты) можно внедрить SQL-запрос и даже дропнуть базу данных. Но не дай бог нам с вами увидеть такое на проде.
Начиная с Python 3.11 мы можем использовать LiteralString во избежание таких уязвимостей.
🔗 Python tricks
Импорт
В версии Python 3.12 наконец стало возможным импортировать модули в адекватном для английского языка порядке слов!
🔗 Python tricks
В версии Python 3.12 наконец стало возможным импортировать модули в адекватном для английского языка порядке слов!
🔗 Python tricks
TypeVarTuple
Допустим, мы создаём функцию
TypeVarTuple представляет собой произвольный кортеж потенциально разных типов. Полезно, если функция имеет дело только с первым элементом кортежа, и нам «разрешит» любые оставшиеся типы.
🔗 Python tricks
Допустим, мы создаём функцию
convert_first_int()
, которая возвращает кортеж практически неизменным, только первый элемент приводит к целочисленному типу.TypeVarTuple представляет собой произвольный кортеж потенциально разных типов. Полезно, если функция имеет дело только с первым элементом кортежа, и нам «разрешит» любые оставшиеся типы.
🔗 Python tricks
Pretty Print словаря
Выводить многоуровневые словари с
Но встроенная утилита
🔗 Python tricks
Выводить многоуровневые словари с
print()
— боль: разрывы строк исчезнут, файл станет нечитаемым.Но встроенная утилита
pprint
, выдаст в командной строке «причёсанный» словарь.🔗 Python tricks
set.isdisjoint
Метод isdisjoint() возвращает значение True, если два множества не имеют между собой общих элементов. В противном случае возвращается False. Ты также можешь передавать итерации, такие как список, кортеж, словарь или строку. В этом случае isdisjoint() сначала преобразует итерации в множества. Затем происходит проверка, не являются ли они непересекающимися.
🔗 Python tricks
Метод isdisjoint() возвращает значение True, если два множества не имеют между собой общих элементов. В противном случае возвращается False. Ты также можешь передавать итерации, такие как список, кортеж, словарь или строку. В этом случае isdisjoint() сначала преобразует итерации в множества. Затем происходит проверка, не являются ли они непересекающимися.
🔗 Python tricks
Включение генераторов, сетов
Раньше был эффективный способ генерировать списки — «списковое включение» (List Comprehension).
Оказывается, этому поддаются и другие составные типы — генераторы и сеты.
🔗 Python tricks
Раньше был эффективный способ генерировать списки — «списковое включение» (List Comprehension).
Оказывается, этому поддаются и другие составные типы — генераторы и сеты.
🔗 Python tricks
Оператор match для проверки типа
Теперь освоение новых библиотек у вас точно ускорится.
Порой, трудно понять, какой тип данных возвращает функция или метод. В таких случаях помогают match и встроенные функции приведения к тому или иному типу данных.
🔗 Python tricks
Теперь освоение новых библиотек у вас точно ускорится.
Порой, трудно понять, какой тип данных возвращает функция или метод. В таких случаях помогают match и встроенные функции приведения к тому или иному типу данных.
🔗 Python tricks
MySQL: LEFT JOIN
LEFT JOIN возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если нет соответствующих строк в правой таблице, то будут возвращены NULL значения. В этом примере мы объединяем таблицы
🔗 Python tricks
LEFT JOIN возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если нет соответствующих строк в правой таблице, то будут возвращены NULL значения. В этом примере мы объединяем таблицы
customers
и orders
по столбцу id
из customers
и customer id
из orders
, используя LEFT JOIN.🔗 Python tricks
try / except + else + finally
Мастхэв для начинающих питонистов — пара
Более того, добавив
🔗 Python tricks
Мастхэв для начинающих питонистов — пара
try / except
, обработчик исключений. Шикарным дополнением к такому блоку является, на мой взгляд, else: он опишет поведение программы на случай других ошибок, которых может быть немало!Более того, добавив
finally
, вы выполните завершающие работы, например, скомандуете выслать уведомление🔗 Python tricks
Автоматическое добавление ключа словарю
Если создать словарь средствами
🔗 Python tricks
Если создать словарь средствами
collections.defaultdict
, добавить хотя бы один элемент, а затем обратиться к несуществующему ключу.🔗 Python tricks
Проверка существования переменной с помощью «моржового» оператора
Если мы объявили две переменные, но не задали любой из них значение, то с помощью оператора
Во втором случае заполнена только одна из переменных, но программа отработает без ошибки.
🔗 Python tricks
Если мы объявили две переменные, но не задали любой из них значение, то с помощью оператора
:=
(Walrus Operator) можно спасти программу от падения и добавить обрабатывающую логику. В первом случае, в переменные name1, name2 мы ничего не записали, значит, программа зайдет в блок else.Во втором случае заполнена только одна из переменных, но программа отработает без ошибки.
🔗 Python tricks
Проверка наличия элемента в множестве
Мы можем проверить, находится ли тот или иной элемент в списке с помощью оператора in.
То же применимо и для множеств (set).
🔗 Python tricks
Мы можем проверить, находится ли тот или иной элемент в списке с помощью оператора in.
То же применимо и для множеств (set).
🔗 Python tricks
Перегонка кортежа в словарь
Допустим, у нас есть кортеж, где каждое значение – строка из двух символов.
Если «навесить» функцию
🔗 Python tricks
Допустим, у нас есть кортеж, где каждое значение – строка из двух символов.
Если «навесить» функцию
dict()
, то в результате мы получим словарь с разделенными на ключ – значение парами.🔗 Python tricks
chr
chr() используется для преобразования целого числа (Unicode кода символа) в соответствующий символ. Например, chr(65) вернет символ 'A', так как код символа 'A' равен 65. Выдается ошибка ValueError, если целое число выходит за пределы диапазона. TypeError — для нецелого аргумента.
🔗 Python tricks
chr() используется для преобразования целого числа (Unicode кода символа) в соответствующий символ. Например, chr(65) вернет символ 'A', так как код символа 'A' равен 65. Выдается ошибка ValueError, если целое число выходит за пределы диапазона. TypeError — для нецелого аргумента.
🔗 Python tricks
Поиск отличий в списках
Допустим, у нас есть две длинные строки, и мы хотим найти отличия.
Можно использовать комбинацию
🔗 Python tricks
Допустим, у нас есть две длинные строки, и мы хотим найти отличия.
seq1
и seq2
в сниппете ниже – это последовательности генов.Можно использовать комбинацию
zip()
и enumerate()
. Первая сопоставит символы с одинаковыми индексами, а вторая – присвоит каждой паре символов порядковый номер (всего 24). Чтобы найти отличающиеся символы, достаточно сравнить символы попарно в цикле for.
🔗 Python tricks
Подсчёт числа элементов в списке
Помимо способности
В случае со списком слов модуль автоматически рассчитывает, как часто встречается то или иное слово.
🔗 Python tricks
Помимо способности
collections.Counter()
понимать, что именно в строке нужно подсчитать.В случае со списком слов модуль автоматически рассчитывает, как часто встречается то или иное слово.
🔗 Python tricks
Фильтрация списка без цикла
Здесь неожиданно выделился модуль itertools. Если у нас есть два списка с именами и идентификаторами.
То вы можете выбрать из списка leaders только те, где значения selector равны единице.
🔗 Python tricks
Здесь неожиданно выделился модуль itertools. Если у нас есть два списка с именами и идентификаторами.
То вы можете выбрать из списка leaders только те, где значения selector равны единице.
🔗 Python tricks
Splat-оператор
Splat (одна звездочка) расширяет коллекцию до позиционных аргументов, а splatty-splat (две звездочки) — словарь до именованных аргументов.
🔗 Python tricks
Splat (одна звездочка) расширяет коллекцию до позиционных аргументов, а splatty-splat (две звездочки) — словарь до именованных аргументов.
🔗 Python tricks
Резервирование символов
С помощью операторов
Как видно в сниппете,
🔗 Python tricks
С помощью операторов
> / < / ^
вы можете добавлять выходному значению символы, к примеру, облегчающие поиск среди других выходных значений.Как видно в сниппете,
<
добавит символы после, >
– до, а ^ – окружит с двух сторон.🔗 Python tricks
eval
Функция eval() используется для выполнения выражения, переданного в виде строки. Она принимает строку в качестве аргумента и выполняет её как код Python. Например, если у тебя есть строка "2 + 3", то eval("2 + 3") вернет результат сложения, то есть 5.
🔗 Python tricks
Функция eval() используется для выполнения выражения, переданного в виде строки. Она принимает строку в качестве аргумента и выполняет её как код Python. Например, если у тебя есть строка "2 + 3", то eval("2 + 3") вернет результат сложения, то есть 5.
🔗 Python tricks