Just Python
10.2K subscribers
4.39K photos
11 videos
4.38K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
TypeVarTuple

Допустим, мы создаём функцию convert_first_int(), которая возвращает кортеж практически неизменным, только первый элемент приводит к целочисленному типу.
TypeVarTuple представляет собой произвольный кортеж потенциально разных типов. Полезно, если функция имеет дело только с первым элементом кортежа, и нам «разрешит» любые оставшиеся типы.

#theory // Just Python | ChatGPT
Pretty Print словаря

Выводить многоуровневые словари с print() — боль: разрывы строк исчезнут, файл станет нечитаемым.
Но встроенная утилита pprint, выдаст в командной строке «причёсанный» словарь.

#theory // Just Python | ChatGPT
Автоматическое добавление ключа словарю

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

#theory // Just Python | ChatGPT
try / except + else + finally

Мастхэв для начинающих питонистов — пара try / except, обработчик исключений. Шикарным дополнением к такому блоку является, на мой взгляд, else: он опишет поведение программы на случай других ошибок, которых может быть немало!
Более того, добавив finally, вы выполните завершающие работы, например, скомандуете выслать уведомление.

#theory // Just Python | ChatGPT
Проверка существования переменной с помощью «моржового» оператора

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

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

#theory // Just Python | ChatGPT
Проверка наличия элемента в множестве

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

То же применимо и для множеств (set).

#theory // Just Python | ChatGPT
Оператор match для проверки типа

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

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

#theory // Just Python | ChatGPT
Поиск отличий в списках

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

#theory // Just Python | ChatGPT
repr

Эта функция необходима для представления объекта в читабельном виде.
Для многих объектов функции str и repr работают одинаково.

Но есть объекты, для которых их применение различается.

Строковое представление, которое вы видите в Python Shell, использует repr, тогда как функция print использует str.

#theory // Just Python | ChatGPT
getattr

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

#theory // Just Python | ChatGPT
vars

Эта функция является своего рода смесью двух похожих инструментов: locals() и dict.

Когда vars вызывается без аргументов, это эквивалентно вызову locals(), которая показывает словарь всех локальных переменных и их значений.

Когда вызов происходит с аргументом, vars получает доступ к атрибуту dict, который представляет собой словарь всех атрибутов экземпляра.

#theory // Just Python | ChatGPT
issubclass и isinstance

Функция issubclass проверяет, является ли класс подклассом одного или нескольких других классов.

Функция isinstance проверяет, является ли объект экземпляром одного или нескольких классов.

#theory // Just Python | ChatGPT
classmethod

Если у вас есть метод, который должен вызываться в экземпляре или в классе, вам нужен декоратор classmethod. Фабричные методы (альтернативные конструкторы) являются распространённым случаем для этого.

#theory // Just Python | ChatGPT
property

Эта функция является декоратором и дескриптором.

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

Здесь вы можете увидеть доступ к атрибуту diameter объекта Circle.

Если вы занимаетесь объектно-ориентированным программированием на Python, вам, вероятно, захочется узнать о property больше в какой-то момент. В отличие от других объектно-ориентированных языков, в Python property используется вместо методов getter и setter.

#theory // Just Python | ChatGPT
shutil

Что делает shutil? На самом деле, это интерфейс высокого уровня для языка программирования Python, в отношении файловой системы вашей ОС. Эти вызовы часто выполняются с использованием модуля os, об shutil не стоит забывать. Вероятно, вам приходилось перемещать файл из каталога в каталог при помощи скрипта, проделав для этого массу утомительной работы, верно?

Shutil решает эти классические проблемы с файлами и таблицами размещения (allocation tables) при помощи высокоуровневого решения. Это — ключ для экономии времени и ускорению операций с файлами. Вот несколько примеров высокоуровневых вызовов, которые предоставляет shutil.

#theory // Just Python | ChatGPT