Python School
82.6K subscribers
2.39K photos
7 videos
567 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official

РКН: clck.ru/3G6pBb
加入频道
Оператор match для проверки типа

Теперь освоение новых библиотек у вас точно ускорится.

Порой, трудно понять, какой тип данных возвращает функция или метод. В таких случаях помогают match и встроенные функции приведения к тому или иному типу данных.
Проверка существования переменной с помощью «моржового» оператора

Если мы объявили две переменные, но не задали любой из них значение, то с помощью оператора := (Walrus Operator) можно спасти программу от падения и добавить обрабатывающую логику. В первом случае, в переменные name1, name2 мы ничего не записали, значит, программа зайдет в блок else.

Во втором случае заполнена только одна из переменных, но программа отработает без ошибки.
Автоматическое добавление ключа словарю

Если создать словарь средствами collections.defaultdict, добавить хотя бы один элемент, а затем обратиться к несуществующему ключу.
Проверка наличия элемента в множестве

Мы можем проверить, находится ли тот или иной элемент в списке с помощью оператора in.

То же применимо и для множеств (set).
Перегонка кортежа в словарь

Допустим, у нас есть кортеж, где каждое значение – строка из двух символов.

Если «навесить» функцию dict(), то в результате мы получим словарь с разделенными на ключ – значение парами.
Поиск отличий в списках

Допустим, у нас есть две длинные строки, и мы хотим найти отличия. seq1 и seq2 в сниппете ниже – это последовательности генов.

Можно использовать комбинацию zip() и enumerate(). Первая сопоставит символы с одинаковыми индексами, а вторая – присвоит каждой паре символов порядковый номер (всего 24). Чтобы найти отличающиеся символы, достаточно сравнить символы попарно в цикле for.
Подсчёт числа элементов в списке

Помимо способности collections.Counter() понимать, что именно в строке нужно подсчитать.

В случае со списком слов модуль автоматически рассчитывает, как часто встречается то или иное слово.
Фильтрация списка без цикла

Здесь неожиданно выделился модуль itertools. Если у нас есть два списка с именами и идентификаторами.

То вы можете выбрать из списка leaders только те, где значения selector равны единице.
Splat-оператор

Splat (одна звездочка) расширяет коллекцию до позиционных аргументов, а splatty-splat (две звездочки) — словарь до именованных аргументов.
Резервирование символов

С помощью операторов > / < / ^ вы можете добавлять выходному значению символы, к примеру, облегчающие поиск среди других выходных значений.

Как видно в сниппете, < добавит символы после, > – до, а ^ – окружит с двух сторон.
Выборка простых чисел в списке любого размера

Выбирать простые числа приходилось мне на практике разве что во время учёбы, так что найти этому коду реальное применение непросто. Однако его легко переиначить для поиска любых других типов чисел – чётных / нечётных / делимых на определенное число.
Словарное включение (ч.1)

Многим из нас знакомо списковое включение (List Comprehension), которое позволяет за одну строку кода сгенерировать список.
Словарное включение (ч.2)

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

Выбирать простые числа приходилось мне на практике разве что во время учёбы, так что найти этому коду реальное применение непросто. Однако его легко переиначить для поиска любых других типов чисел – чётных / нечётных / делимых на определенное число.
Частичное совпадение пользовательского ввода

Эта замечательная фича позволяет справляться с ситуациями, когда пользователь вводит не все, что от него ожидается. Фишка работает в версиях Python не ниже 3.10.
Форматирование многострочного вывода

Если вы хотите, чтобы вывод напоминал табличку с одинаковым отступом, то при использовании F-строк добавьте интерполируемой переменной двоеточие и число, одинаковое для всех print(), например, 10. Это «резервирует» пространство из 10 символов
Файлы (ч.1)

Если речь идет о временном файле, который вы изучите сразу после исполнения и удалите, достаточно назвать его как объект.

Гуглите и используйте аббревиатуры. К примеру, датафрейм о пациентах, прошедший Предварительную обработку данных (Exploratory Data Analysis) и выгруженный в файл, можно назвать ‘patients_eda.csv’.
Файлы (ч.2)

Пишите в README пояснения к скриптам. Документация репозитория выручит, если придумать хорошее название не удастся.
Столбцы таблиц и столбцов (ч.1)

По умолчанию именуйте столбцы по-английски. Большая часть библиотек сегодня поддерживает обращение через квадратные скобки (для случаев, когда в названии не латиница). Но если название станет аргументом, передаваемым через командную строку, то придётся запоминать, как именно передавать кириллицу.
Столбцы таблиц и столбцов (ч.2)

Если решили именовать столбец по-русски, старайтесь использовать небольшое название (до 20 символов): такое при многократном обращении к столбцу не потребуется долго набирать.
Функции

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