Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Начните разрабатывать игры уже сейчас
Думаете о карьере в геймдеве? Начните с игры в портфолио!
Skillbox открывает доступ к пятидневному мини-курсу по разработке игр! Во время интенсивного обучения вы попробуете себя в роли разработчика игр, геймдизайнера и 2D-художника, разберётесь в основах каждого направления.
А также поработаете в Photoshop — нарисуете персонажа, напишете игровой алгоритм на Unity, который нужен для управления этим персонажем, настройки физики игры и с нуля создадите свою первую игру в стиле Mario.
Участники получат приятные бонусы и подарки!
Зарегистрироваться
#реклама 16+
bootcamp.skillbox.ru
О рекламодателе
PurePath().is_relative()
В этом примере указанный путь /src является частью или принадлежит пути p, в то время как другой указанный путь — /data — вызывает значение False, поскольку он не имеет никакого отношения к пути p.
Подписывайтесь на канал 👉@pythonofff
Деструкторы
При уничтожении экземпляра класса в большинстве языков вызывается специальный метод, который называется деструктор.
В Python деструктор можно переопределять с помощью магического метода __del__, который вызовется автоматически при удалении объекта.
Вообще деструкторы крайне редко переопределяется в Python, но полезно знать, что именно эти методы отвечают за очистку при удалении объекта.
Подписывайтесь на канал 👉@pythonofff
ТОП-4 Курса по Системной аналитике
Tutortop — маркетплейс курсов №1 по количеству школ-партнеров, курсов и реальных отзывов студентов.
⚡Системный аналитик разрабатывает требования к программному обеспечению. Заказчик или владелец продукта определяет, что должна делать программа. После этого системный аналитик общается с заказчиком или владельцем продукта, добывает информацию из разных источников и изучает рынок.
✅Получите одну из самых востребованных профессий!
Выбрать
#реклама 16+
tutortop.ru
О рекламодателе
Как использовать функцию pow() в Python
Python также имеет встроенную функцию pow(), которая возводит число в указанную степень. Синтаксис данной функции выглядит следующим образом:
pow(base, exponent)
Приведенный выше код интерпретируется как baseexponent, то есть число base в степени exponent.
Функция pow() принимает два аргумента: число (известное как основание или base) и степень, в которую число должно быть возведено (показатель степени — exponent).
Подписывайтесь на канал 👉@pythonofff
Выводим вложенные словари и списки
При выводе вложенных словарей и списков с помощью обычного print() мы получаем всё в одну строчку и в неразборчивом виде.
Но в стандартной библиотеке есть модуль pprint, который поможет вывести подобное дело в красивом формате — достаточно в коде заменить print() на pprint.pprint().
Из интересных аргументов есть depth, отвечающий за глубину вложенности при выводе, а также width, который отвечает за ширину вывода в консоли.
Подписывайтесь на канал 👉@pythonofff
Флаги явного преобразования
Флаг явного преобразования (Explicit Conversion Flag) используется для преобразования значения поля format перед его непосредственным форматированием.
Это поле можно использовать для переопределения поведения format для какого либо конкретного типа и форматирования значения. В настоящее время распространены два явных флага преобразования:
!r — преобразует значение в строку, используя функцию repr().
!s — преобразует значение в строку, используя функцию str().
В примере, в случае с флагом !r строка 'Hello' будет напечатана с кавычками в поле шириной не менее 20 символов, а в случае с флагом !s — без кавычек (в более удобном для чтения виде).
Подписывайтесь на канал 👉@pythonofff
Разбиение строки на список
У строк есть метод split(), который разбивает их по указанному разделителю и возвращает список из отдельных строк.
В качестве аргументов можно передать два значения: сам разделитель (по умолчанию знак пробела) и максимальное количество разделений.
Например, с помощью этого метода можно запросто разделить текст на отдельные слова, передав знак пробела в качестве разделителя.
Подписывайтесь на канал 👉@pythonofff
Работаем с файловыми путями
В стандартной библиотеке есть максимально удобный пакет pathlib для простой работы с файловыми путями.
Для представления пути к файлу есть класс Path, с объектами которого уже можно производить операции. Например, методы exists() и is_dir() проверяют, существует ли файл и является ли он директорией.
Но самой классной фичей является замена os.path.join() на более удобный и элегантный вариант с использованием слэшей, как показано на картинке.
Итого, пакет pathlib может стать частичной заменой os в некоторых случаях при работе с файловыми путями.
Подписывайтесь на канал 👉@pythonofff
Отсутствующие ключи в словаре
При обращении по отсутствующему ключу в словаре мы получим исключение KeyError. Но мы можем переопределить это поведение.
Для этого создадим свой собственный класс словаря, унаследовавшись от dict. После чего нам просто необходимо переопределить метод __missing__, который вызывается в базовой реализации методом dict.__getitem__ при при адресации к отсутствующему ключу.
Мы можем, например, возвращать какое-то дефолтное значение, либо определить любую другую необходимую логику поведения.
Подписывайтесь на канал 👉@pythonofff
Конструктор класса
У классов практически во всех языках есть конструкторы — это такие специальные методы, которые вызываются автоматически и инициализируют экземпляр класса.
В Python конструкторы в классах имеют название __init__(), и их почти всегда переопределяют. Делается это для того, чтобы назначить свойства объекту и выполнить предварительные действия.
Первым аргументом конструктор всегда принимает объект класса, который обозначается как self.
Подписывайтесь на канал 👉@pythonofff
Получаем и задаем лимит рекурсии
В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает RecursionError во время создания рекурсивных алгоритмов.
Но с помощью модуля sys можно посмотреть и даже изменить максимальную глубину рекурсии. Хотя делать это слегка опасно, так как каждый новый вызов занимает много памяти.
И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.
Подписывайтесь на канал 👉@pythonofff
Делаем планировщик задач
К моему удивлению, далеко не все знают про пакет schedule, который позволяет планировать задачи и повторять их через промежуток времени.
Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще schedule не требует внешних зависимостей и сам в целом легковесный.
Здесь на самом деле даже объяснять особо нечего, логика методов в этом пакете понятна на примерах.
Подписывайтесь на канал 👉@pythonofff
Проверка отношения классов
Для того, чтобы проверить отношения двух классов или экземпляров (является ли класс классом наследником), есть две простые встроенные функции isinstance(object, classinfo) и issubclass(class, classinfo).
instance - возвращает True, если объект является экземпляром класса либо экземпляром подкласса данного класса.
issubclass — проверяет является ли класс наследником другого класса.
Данные функции зачастую применяются в ООП.
Подписывайтесь на канал 👉@pythonofff
Как заменить атрибут в именованном кортеже
Что делать, если значение одного атрибута необходимо изменить?
Вам нужно обновить его в данных. Для этого просто воспользуемся методом ._replace()
Подписывайтесь на канал 👉@pythonofff
Получаем атрибуты объекта
Функция vars() возвращает все атрибуты переданного параметра, в качестве которого может быть почти что угодно: модуль, класс, экземпляр и т. д.
Проще говоря, vars() возвращает словарь, который хранится в атрибуте __dict__ у переданного объекта.
А если ничего не передать в аргументы, то функция вернет словарь локальных переменных, как и locals()
Подписывайтесь на канал 👉@pythonofff
Высшее образование дистанционно
Московский технологический институт от 5300 ₽/мес.
Набор в августе!
— Высшее образование в московском вузе без выезда на сессии.
— Полностью дистанционный онлайн-формат.
— Обучайся дома, на работе, в путешествии.
— Диплом государственного образца.
— 57 направлений и программ обучения.
— Программа колледж + вуз без ЕГЭ.
Скидка 10% на обучение при оплате за год.
Перейти на сайт
#реклама 16+
tl.mti.edu.ru
О рекламодателе
Методы PurePath
PurePath().is_absolute() проверяет, является ли ваш путь абсолютным
Обратите внимание, что абсолютный путь состоит из корня и имени диска. В этом случае PurePath() не позволяет нам узнать имя диска.
Если вы используете PureWindowsPath(), вы можете представить абсолютный путь, содержащий имя диска, например PureWindowsPath('c:/Program Files').
Подписывайтесь на канал 👉@pythonofff
Превращаем текст в числа
Пакет Numerizer преобразует обычный текст в числа. То есть, например, из строки "forty two" можно получить число "42".
Кроме функции numerize особо выделить нечего, но можете посмотреть https://github.com/jaidevd/numerizer
Подписывайтесь на канал 👉@pythonofff
Обучаем Java-разработчиков оплата после выхода на работу
В Kata Academy можно выучиться на Java-разработчика бесплатно, а заплатить уже после трудоустройства по специальности из фактической зарплаты.
Если задуматься, то все в выигрыше:
— ты получаешь работу в Москве или Санкт-Петербурге с хорошей зарплатой, мы получаем процент за инвестиции в тебя;
— в наших интересах научить тебя так, чтобы твоя зарплата была как можно выше;
— мы прокачиваем твои навыки еще 2 года после курса: проводим выездные мероприятия и мастер-классы — и доходы наших выпускников растут;
— мы не зависим от банков и их рассрочек — кризис не повлиял на доступность курсов.
Чтобы попасть на курс, нужно выполнить небольшое тестовое задание. Переходи по ссылке и оставляй заявку!
Узнать больше
#реклама 16+
kata.academy
О рекламодателе
Что происходит, когда у нас есть избыточные ключи в ChainMap?
Возможно, что 2 словаря содержат один и тот же ключ.
Обратите внимание, что red не повторяется, он печатается только один раз.
Подписывайтесь на канал 👉@pythonofff
Что происходит, когда вы удаляете и повторно вставляете ключи в OrderedDict
При удалении ключа информация о его порядке также удаляется. Когда вы повторно вставляете ключ, он обрабатывается как новая запись и соответствующая информация сохраняется.
Подписывайтесь на канал 👉@pythonofff
Сортировка с помощью OrderedDict
Сортировка элементов, например, по возрастанию значений, может помочь в анализе данных. Давайте посмотрим, что мы можем сделать.
Сортировка элементов по ключу KEY (в порядке возрастания)
Подписывайтесь на канал 👉@pythonofff
ChainMap
ChainMap — это контейнерный тип данных, в котором хранится несколько словарей.
Если у вас несколько связанных или похожих словарей, зачастую их можно хранить вместе, в ChainMap.
Распечатать все элементы ChainMap можно при помощи .map
Подписывайтесь на канал 👉@pythonofff
OrderedDict
Словарь — это НЕупорядоченная коллекция пар ключ-значение. Однако OrderedDict поддерживает упорядочивание ключей.
Это в некотором роде подкласс словаря dict.
Давайте создадим обычный словарь и сделаем его OrderedDict, чтобы показать, в чем заключается разница.
Подписывайтесь на канал 👉@pythonofff
Counter
Объект counter предоставляется библиотекой collections. Давайте поподробнее разберем, что он собой представляет.
К примеру, у вас есть список каких-то случайных чисел. Что, если вы хотите узнать, сколько раз встречается каждое число?
Счетчик counter позволяет легко вычислить частоту. Он работает не только с числами, но и с любым итерируемыми объектами, такими как строки и списки.
Подписывайтесь на канал 👉@pythonofff
Sample Project
Sample Project — это пакет-шаблон с файлом setup.py для ручной установки пакета. Файл снабжен аннотациями, касающимися настройки скрипта и среды сборки пакета в целом.
Основан Sample project на пакете setuptools. setup.py — это скрипт сборки для пакетов, созданных с помощью setuptools.
Подписывайтесь на канал 👉@pythonofff
Что такое метод?
Метод — это такая функция, которую можно использовать для определенного типа данных. Существуют строковые методы, методы для работы с целыми числами, методы списков, словарей и т.д. Методы могут принимать или не принимать аргументы. В целом, это методы — это встроенные функции, которые делают вашу жизнь намного проще.
Иногда вы можете задаться вопросом, существует ли какой-то метод. В Python можно посмотреть весь список строковых методов, используя функцию dir() со строкой в качестве аргумента.
Подписывайтесь на канал 👉@pythonofff
Отвлекитесь от экрана — оторвитесь на ИТ-пикнике 17 августа
ИТ-специалисты, приходите с семьей и друзьями, чтобы побыть среди своих, пообщаться вживую и ярко провести летний выходной. У фестиваля больше 17-ти ИТ-партнеров. Вас ждут воркшопы, лекции от спикеров известных компаний, нетворкинг, выступления топовых музыкантов и даже детская зона. Хедлайнер вечера — Леонид Агутин, а еще будут TRITIA, Дайте танк (!), Драгни, Найк Борзов, Нееет, ты что. Вы же не пропустите такое событие?
Успейте зарегистрироваться
erid:2Vtzqw5Eta7
Реклама. АО "ТБанк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Пишем обратно совместимый код
С помощью пакета six можно писать код, который запустится и на Python 2, и на Python 3. То есть код получается обратно совместимым.
Для этого в пакете есть все типы, функции и некоторые модули стандартной библиотеки, которые под капотом работают по-разному в зависимости от версии языка.
Например, в пакете поддерживаются tkinter и urllib.
Подписывайтесь на канал 👉@pythonofff