Python академия
Open in Telegram
Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter
Show more7 290
Subscribers
No data24 hours
-177 days
-4630 days
Posts Archive
7 290
Деструкторы
При уничтожении экземпляра класса в большинстве языков вызывается специальный метод, который называется деструктор.
В Python деструктор можно переопределять с помощью магического метода __del__, который вызовется автоматически при удалении объекта.
Вообще деструкторы крайне редко переопределяется в Python, но полезно знать, что именно эти методы отвечают за очистку при удалении объекта.
Подписывайтесь на канал 👉@pythonofff
7 290
Методы PurePath
PurePath().is_absolute() проверяет, является ли ваш путь абсолютным
Обратите внимание, что абсолютный путь состоит из корня и имени диска. В этом случае PurePath() не позволяет нам узнать имя диска.
Если вы используете PureWindowsPath(), вы можете представить абсолютный путь, содержащий имя диска, например PureWindowsPath('c:/Program Files').
Подписывайтесь на канал 👉@pythonofff
7 290
ТОП-4 Курса по Системной аналитике
Tutortop — маркетплейс курсов №1 по количеству школ-партнеров, курсов и реальных отзывов студентов.
⚡Системный аналитик разрабатывает требования к программному обеспечению. Заказчик или владелец продукта определяет, что должна делать программа. После этого системный аналитик общается с заказчиком или владельцем продукта, добывает информацию из разных источников и изучает рынок.
✅Получите одну из самых востребованных профессий!
Выбрать
#реклама 16+
tutortop.ru
О рекламодателе
7 290
Превращаем текст в числа
Пакет Numerizer преобразует обычный текст в числа. То есть, например, из строки "forty two" можно получить число "42".
Кроме функции numerize особо выделить нечего, но можете посмотреть https://github.com/jaidevd/numerizer
Подписывайтесь на канал 👉@pythonofff
7 290
Как использовать функцию pow() в Python
Python также имеет встроенную функцию pow(), которая возводит число в указанную степень. Синтаксис данной функции выглядит следующим образом:
pow(base, exponent)
Приведенный выше код интерпретируется как baseexponent, то есть число base в степени exponent.
Функция pow() принимает два аргумента: число (известное как основание или base) и степень, в которую число должно быть возведено (показатель степени — exponent).
Подписывайтесь на канал 👉@pythonofff
7 290
Обучаем Java-разработчиков оплата после выхода на работу
В Kata Academy можно выучиться на Java-разработчика бесплатно, а заплатить уже после трудоустройства по специальности из фактической зарплаты.
Если задуматься, то все в выигрыше:
— ты получаешь работу в Москве или Санкт-Петербурге с хорошей зарплатой, мы получаем процент за инвестиции в тебя;
— в наших интересах научить тебя так, чтобы твоя зарплата была как можно выше;
— мы прокачиваем твои навыки еще 2 года после курса: проводим выездные мероприятия и мастер-классы — и доходы наших выпускников растут;
— мы не зависим от банков и их рассрочек — кризис не повлиял на доступность курсов.
Чтобы попасть на курс, нужно выполнить небольшое тестовое задание. Переходи по ссылке и оставляй заявку!
Узнать больше
#реклама 16+
kata.academy
О рекламодателе
7 290
Выводим вложенные словари и списки
При выводе вложенных словарей и списков с помощью обычного print() мы получаем всё в одну строчку и в неразборчивом виде.
Но в стандартной библиотеке есть модуль pprint, который поможет вывести подобное дело в красивом формате — достаточно в коде заменить print() на pprint.pprint().
Из интересных аргументов есть depth, отвечающий за глубину вложенности при выводе, а также width, который отвечает за ширину вывода в консоли.
Подписывайтесь на канал 👉@pythonofff
7 290
Что происходит, когда у нас есть избыточные ключи в ChainMap?
Возможно, что 2 словаря содержат один и тот же ключ.
Обратите внимание, что red не повторяется, он печатается только один раз.
Подписывайтесь на канал 👉@pythonofff
7 290
Флаги явного преобразования
Флаг явного преобразования (Explicit Conversion Flag) используется для преобразования значения поля format перед его непосредственным форматированием.
Это поле можно использовать для переопределения поведения format для какого либо конкретного типа и форматирования значения. В настоящее время распространены два явных флага преобразования:
!r — преобразует значение в строку, используя функцию repr().
!s — преобразует значение в строку, используя функцию str().
В примере, в случае с флагом !r строка 'Hello' будет напечатана с кавычками в поле шириной не менее 20 символов, а в случае с флагом !s — без кавычек (в более удобном для чтения виде).
Подписывайтесь на канал 👉@pythonofff
7 290
Что происходит, когда вы удаляете и повторно вставляете ключи в OrderedDict
При удалении ключа информация о его порядке также удаляется. Когда вы повторно вставляете ключ, он обрабатывается как новая запись и соответствующая информация сохраняется.
Подписывайтесь на канал 👉@pythonofff
7 290
Разбиение строки на список
У строк есть метод split(), который разбивает их по указанному разделителю и возвращает список из отдельных строк.
В качестве аргументов можно передать два значения: сам разделитель (по умолчанию знак пробела) и максимальное количество разделений.
Например, с помощью этого метода можно запросто разделить текст на отдельные слова, передав знак пробела в качестве разделителя.
Подписывайтесь на канал 👉@pythonofff
7 290
Сортировка с помощью OrderedDict
Сортировка элементов, например, по возрастанию значений, может помочь в анализе данных. Давайте посмотрим, что мы можем сделать.
Сортировка элементов по ключу KEY (в порядке возрастания)
Подписывайтесь на канал 👉@pythonofff
7 290
Работаем с файловыми путями
В стандартной библиотеке есть максимально удобный пакет pathlib для простой работы с файловыми путями.
Для представления пути к файлу есть класс Path, с объектами которого уже можно производить операции. Например, методы exists() и is_dir() проверяют, существует ли файл и является ли он директорией.
Но самой классной фичей является замена os.path.join() на более удобный и элегантный вариант с использованием слэшей, как показано на картинке.
Итого, пакет pathlib может стать частичной заменой os в некоторых случаях при работе с файловыми путями.
Подписывайтесь на канал 👉@pythonofff
7 290
ChainMap
ChainMap — это контейнерный тип данных, в котором хранится несколько словарей.
Если у вас несколько связанных или похожих словарей, зачастую их можно хранить вместе, в ChainMap.
Распечатать все элементы ChainMap можно при помощи .map
Подписывайтесь на канал 👉@pythonofff
7 290
Отсутствующие ключи в словаре
При обращении по отсутствующему ключу в словаре мы получим исключение KeyError. Но мы можем переопределить это поведение.
Для этого создадим свой собственный класс словаря, унаследовавшись от dict. После чего нам просто необходимо переопределить метод __missing__, который вызывается в базовой реализации методом dict.__getitem__ при при адресации к отсутствующему ключу.
Мы можем, например, возвращать какое-то дефолтное значение, либо определить любую другую необходимую логику поведения.
Подписывайтесь на канал 👉@pythonofff
7 290
OrderedDict
Словарь — это НЕупорядоченная коллекция пар ключ-значение. Однако OrderedDict поддерживает упорядочивание ключей.
Это в некотором роде подкласс словаря dict.
Давайте создадим обычный словарь и сделаем его OrderedDict, чтобы показать, в чем заключается разница.
Подписывайтесь на канал 👉@pythonofff
7 290
Конструктор класса
У классов практически во всех языках есть конструкторы — это такие специальные методы, которые вызываются автоматически и инициализируют экземпляр класса.
В Python конструкторы в классах имеют название __init__(), и их почти всегда переопределяют. Делается это для того, чтобы назначить свойства объекту и выполнить предварительные действия.
Первым аргументом конструктор всегда принимает объект класса, который обозначается как self.
Подписывайтесь на канал 👉@pythonofff
7 290
Counter
Объект counter предоставляется библиотекой collections. Давайте поподробнее разберем, что он собой представляет.
К примеру, у вас есть список каких-то случайных чисел. Что, если вы хотите узнать, сколько раз встречается каждое число?
Счетчик counter позволяет легко вычислить частоту. Он работает не только с числами, но и с любым итерируемыми объектами, такими как строки и списки.
Подписывайтесь на канал 👉@pythonofff
7 290
Получаем и задаем лимит рекурсии
В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает RecursionError во время создания рекурсивных алгоритмов.
Но с помощью модуля sys можно посмотреть и даже изменить максимальную глубину рекурсии. Хотя делать это слегка опасно, так как каждый новый вызов занимает много памяти.
И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.
Подписывайтесь на канал 👉@pythonofff
7 290
Sample Project
Sample Project — это пакет-шаблон с файлом setup.py для ручной установки пакета. Файл снабжен аннотациями, касающимися настройки скрипта и среды сборки пакета в целом.
Основан Sample project на пакете setuptools. setup.py — это скрипт сборки для пакетов, созданных с помощью setuptools.
Подписывайтесь на канал 👉@pythonofff
Available now! Telegram Research 2025 — the year's key insights 
