Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Обучаем 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
Получите диплом от НИТУ МИСИС в веб-разработке
Яндекс Практикум и НИТУ МИСИС приглашают на онлайн-программу «Веб-разработчик»
Полноценная учёба в онлайн-формате
Зачёты, сессии, лекции и семинары с гибким графиком.
На платформе Практикума
Гибкая теория, автоматическая проверка заданий и встроенная YandexGPT.
Преподаватели НИТУ МИСИС и наставники Яндекс Практикума
Они будут проводить занятия и учить вас применять теорию на практике.
Студенческий, льготы и диплом гособразца
У вас будут все преимущества студента-очника. Доступ к инфраструктуре вуза — кампусам, библиотекам и мероприятиям.
Оплатить учёбу можно разными способами: всю сумму сразу, по семестрам или с помощью госкредита — тогда ежемесячный платёж составит от 500 ₽, а государство погасит часть кредита за вас.
Подать заявку
#реклама 16+
practicum.yandex.ru
О рекламодателе
OrderedDict
Словарь — это НЕупорядоченная коллекция пар ключ-значение. Однако OrderedDict поддерживает упорядочивание ключей.
Это в некотором роде подкласс словаря dict.
Давайте создадим обычный словарь и сделаем его OrderedDict, чтобы показать, в чем заключается разница.
Подписывайтесь на канал 👉@pythonofff
Аннотация типов
Тайп хинтинг был добавлен в python еще в версии 3.5 вместе с библиотекой typing, в которой содержались структуры нужные для создания дженериков для аннотирования переменных. Тогда синтаксис аннотирования работал при инициализации переменных. В последствии в версии 3.6 эта возможность была расширена и стало возможно объявлять типы переменных вообще в любом месте кода.
В python 3.9 была добавлена возможность использовать в качестве дженериков для аннотирования встроенные коллекции, вместо структур typing'а (List, Dict, Tuple...).
И наконец в 3.10 на замену перечисления возможных принимаемых типов через typing.Union пришел опреатор | (or). Также в 3.10 был изменен синтаксис создания тайпалиасов, чтобы разграничить с присваиванием переменной, теперь лучше это делать непосредственно через TypeAlias.
Подписывайтесь на канал 👉@pythonofff
Jobski - твой помощник при поиске работы в IT
Сервис индивидуально подбирает вакансии, учитывая ваш опыт, навыки и стек технологий.
Узнать больше
#реклама
jobski.ru
О рекламодателе
Выводим вложенные словари и списки
При выводе вложенных словарей и списков с помощью обычного 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
Как создать namedtuple из словаря в Python
Вы заметили, как мы преобразовали словарь в именованный кортеж с помощью оператора **?
Все, что вам нужно сделать для этого — определить структуру namedtuple и передать словарь (**dict) этому именованному кортежу в качестве аргумента. Единственное требование заключается в том, что ключи словаря должны совпадать с именами полей namedtuple.
Подписывайтесь на канал 👉@pythonofff
Операции с zip архивами
Для работы с zip файлами можно использовать встроенный модуль zipfile. Если кто не помнит, то zip файл — это архив, содержащий сжатые файлы.
Просмотреть содержимое архива можно с помощью функции printdir, а извлечь все файлы можно вызвав extractfile.
Также этот модуль позволяет создавать свои zip архивы, но мы решили не усложнять пример, поэтому просто прикладываем ссылку на документацию.
Подписывайтесь на канал 👉@pythonofff
Высшее образование дистанционно
Московский технологический институт от 5300 ₽/мес.
Набор в июле!
— Высшее образование в московском вузе без выезда на сессии.
— Полностью дистанционный онлайн-формат.
— Обучайся дома, на работе, в путешествии.
— Диплом государственного образца.
— 57 направлений и программ обучения.
— Программа колледж + вуз без ЕГЭ.
Скидка 10% на обучение при оплате за год.
Перейти на сайт
#реклама 16+
tl.mti.edu.ru
О рекламодателе
Метод join у строк
У строк есть полезный метод str.join(), который принимает на вход итерируемый объект, элементами которого также должны быть строки.
Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
Подписывайтесь на канал 👉@pythonofff
Чем defaultdict отличается от простого словаря?
Если вы попытаетесь получить доступ к ключу, которого нет в словаре, он выдаст ошибку KeyError. В то время как при использовании defaultdict такой ошибки не будет.
Если вы попробуете обратиться к отсутствующему ключу, defaultdict просто вернет значение по умолчанию.
Синтаксис будет следующим: defaultdict(default_factory).
При обращении к отсутствующему ключу функция default_factory вернет значение по умолчанию.
Подписывайтесь на канал 👉@pythonofff