ch
Feedback
Python академия

Python академия

前往频道在 Telegram

Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter

显示更多
7 291
订阅者
+224 小时
-137
-4230
帖子存档
Функция enumerate для получения пар индекс-значение Функция enumerate() применяется в случаях, когда необходим счётчик количе
Функция enumerate для получения пар индекс-значение Функция enumerate() применяется в случаях, когда необходим счётчик количества элементов в последовательности. Позволяет избавиться от необходимости инициировать и обновлять отдельную переменную-счётчик. Подписывайтесь на канал 👉@pythonofff

Создаем пакеты Пакет в Python — это, грубо говоря, папка с другими папками и модулями. Помимо разделения частей проекта, паке
Создаем пакеты Пакет в Python — это, грубо говоря, папка с другими папками и модулями. Помимо разделения частей проекта, пакеты нужны для формирования пространства имен, чтобы можно работать с пакетами и модулями через точку, как в примере выше. При импорте вида from package import * будет подключены либо все модули и объекты модуля __init__.py, либо то, что находится в переменной __all__ в том же модуле __init__.py — подробнее про эту переменную было в посте ранее. Также примечателен файл init.py, который раньше был обязателен для создания пакетов. С версии Python 3.3 его необходимость пропала. Однако его функциональность на этом не заканчиваются. Подписывайтесь на канал 👉@pythonofff

Объединение списка строк в одну строку Метод join() объединяет список строк, заданный как аргумент, в одну строку. В нашем сл
Объединение списка строк в одну строку Метод join() объединяет список строк, заданный как аргумент, в одну строку. В нашем случае мы объединили их, используя в качестве разделителя запятую. Подписывайтесь на канал 👉@pythonofff

Заменяем часть строки Со строками в Python работать очень удобно, так как встроенных методов для них предостаточно. Одним из
Заменяем часть строки Со строками в Python работать очень удобно, так как встроенных методов для них предостаточно. Одним из методов является str.replace(), который позволяет заменять части строк. Первым аргументом передается подстрока, которая будет изменяться в исходной строке. Вторым аргументом — то, на что будет заменяться. Также есть третий, опциональный, аргумент, который отвечает за то, сколько раз вы хотите заменить старую подстроку на новую. По умолчанию, все вхождения заменяются. Подписывайтесь на канал 👉@pythonofff

Проверка строки на палиндром Этот метод прост в использовании, а также хорош, и вы можете использовать его на соревнованиях,
Проверка строки на палиндром Этот метод прост в использовании, а также хорош, и вы можете использовать его на соревнованиях, но люди обычно не предпочитают использовать его в интервью. Таким образом палиндромы становятся простейшей программой в Python. Подписывайтесь на канал 👉@pythonofff

Аннотации типов: Union и Optional Ранее на канале был пост про базовые аннотации типов. Но важно знать и про такие аннотации,
Аннотации типов: Union и Optional Ранее на канале был пост про базовые аннотации типов. Но важно знать и про такие аннотации, как Union и Optional. При необходимости допустить использование не любых типов, а только некоторых, можно использовать аннотацию Union[T, ...] с указанием списка типов в квадратных скобках. Для объявления опциональных переменных используется Optional[T]. Такая аннотация нужна для переменных, которые либо имеют значение определенного типа, либо равны None. Кстати, аннотация Optional[T] эквивалентна Union[T, None]. Подписывайтесь на канал 👉@pythonofff

У Тинькофф открылась стипендиальная программа для студентов на 2024 год! В отборе могут участвовать студенты бакалавриата, сп
У Тинькофф открылась стипендиальная программа для студентов на 2024 год! В отборе могут участвовать студенты бакалавриата, специалитета и магистратуры (кроме выпускного курса) из всех городов и ВУЗов. Стипендия выдаётся на один учебный год и составляет 25 000 ₽ в месяц. Кроме этого: — доступ к лекциям; — общение с менторами; — отложенный оффер на стажировку или работу в Тинькофф. Более подробная информация и форма подачи заявки 👉 по ссылке Переходите и подавайте заявку на одну из крупнейших в стране частных стипендий для студентов! erid:2Vtzqvdv9St Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673

geopy Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает: $ pip install geopy Он р
geopy Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает: $ pip install geopy Он работает путём абстрагирования API разных сервисов геокодирования. Этот модуль даёт возможность узнать полный адрес места, его долготу и широту и даже высоту. Также в нём есть полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения. Подписывайтесь на канал 👉@pythonofff

Подсчет частотности элементов в списке Отличный способ посчитать частотность элемента в списке — это использование класса Cou
Подсчет частотности элементов в списке Отличный способ посчитать частотность элемента в списке — это использование класса Counter. Счетчик Python отслеживает частотность каждого элемента в контейнере. Counter() возвращает словарь с элементами в качестве ключей и частотностью в качестве значений. Мы также используем функцию mostcommon() , чтобы получить mostfrequent element в списке. Подписывайтесь на канал 👉@pythonofff

Сохраняем бинарные данные Модуль pickle, который мы затронули в прошлом посте, реализует двоичные протоколы для сериализации
Сохраняем бинарные данные Модуль pickle, который мы затронули в прошлом посте, реализует двоичные протоколы для сериализации и десериализации объектов. Вы можете сохранить любой объект, если возможно перевести каждый его атрибут в двоичный вид. Но классы, функции и методы сохранить не получится. Здесь также важно понимать, что при сохранении объекта сохраняется строка, указывающая, к какому классу относится этот объект. Однако будьте осторожнее, pickle не защищен от ошибочных или вредоносных данных. Никогда не извлекайте данные, полученные из ненадежных или не прошедших проверку подлинности источников. Подписывайтесь на канал 👉@pythonofff

Анаграммы Интересное применение класса Counter — это поиск анаграмм. Анаграмма — это слово или фраза, сформированные перестан
Анаграммы Интересное применение класса Counter — это поиск анаграмм. Анаграмма — это слово или фраза, сформированные перестановкой букв другого слова или фразы. Если объекты Counter двух строк эквивалентны, значит, они являются анаграммами. Подписывайтесь на канал 👉@pythonofff

База данных на минималках Встроенный модуль shelve позволяет сохранять и читать произвольные данные. Таким образом, можно сох
База данных на минималках Встроенный модуль shelve позволяет сохранять и читать произвольные данные. Таким образом, можно сохранять любые Python объекты для дальнейшего использования. Доступ к данным осуществляется с помощью ключей, как и в случае со словарями. А метод shelve.open поддерживает протокол контекстного менеджера, то есть можно не вызывать метод close. В документации заявляют, что такая база данных является "надежной". Но учитывая, что shelve написан на pickle, его стоит использовать только в совсем маленьких проектах. Подписывайтесь на канал 👉@pythonofff

sh: команды терминала прямо из кода Порой применение стандартных библиотек os и subprocess превращается в головную боль для р
sh: команды терминала прямо из кода Порой применение стандартных библиотек os и subprocess превращается в головную боль для разработчика. Но есть удобная альтернатива – библиотека sh. Она дает возможность вызвать программу, как если бы это была просто функция языка. Таким образом, можно автоматизировать процессы и задачи непосредственно из кода Python. Подписывайтесь на канал 👉@pythonofff

Список импортов по умолчанию Для ограничения импорта переменных, функций и классов по умолчанию можно использовать список __a
Список импортов по умолчанию Для ограничения импорта переменных, функций и классов по умолчанию можно использовать список __all__, в который записываются названия объектов, которые будут подключены. Таким образом, при импорте вида from module import * из модуля c подобной записью подключатся только объекты с названиями из списка __all__. Тем не менее, в примере выше импортировать функцию foo из такого модуля всё ещё можно, например, с помощью записи from module import foo. Подписывайтесь на канал 👉@pythonofff

Анонимные функции Иногда именованию функции не стоит уделять особого внимания. Например, если вы уверены, что она будет испол
Анонимные функции Иногда именованию функции не стоит уделять особого внимания. Например, если вы уверены, что она будет использована только раз. Для таких случаев Python предлагает применять анонимные функции, также называемые лямбда-функциями. Подписывайтесь на канал 👉@pythonofff

Перегрузка операторов сравнения В случае, если вам в коде необходимо сравнивать объекты какого-либо класса, требуется реализо
Перегрузка операторов сравнения В случае, если вам в коде необходимо сравнивать объекты какого-либо класса, требуется реализовать магические методы, которые вызываются при сравнении. Например, под капотом записи a < b вызывается a.__lt__(b). Для каждого оператора сравнения существует свой магический метод. Подробнее про то, какой метод за какой оператор отвечает, выше в коде. Писать все шесть методов получается слегка громоздко, поэтому зачастую используют декоратор total_ordering из functools. Подписывайтесь на канал 👉@pythonofff

Очистка списка С помощью функции filter() подчищаем список удаляя значения False, None, 0, "". Такой метод очень хорошо себя показывает в объёмных программах при работе с массивами. Подписывайтесь на канал 👉@pythonofff

Упрощение создания операторов сравнения Для создания объектов с поддержкой операторов сравнения в классе обычно требуется реа
Упрощение создания операторов сравнения Для создания объектов с поддержкой операторов сравнения в классе обычно требуется реализовать большое количество магических методов, а именно – __lt__, __le__, __eq__, __ne__, __gt__, __ge__. Про то, что делает каждый из них расскажем отдельным постом, но сейчас покажем, как можно сильно упростить реализацию подобного класса. Для этого можно использовать декоратор total_ordering из пакета functools. В таком случае достаточно реализовать в классе только __lt__ и __eq__. Эти два метода являются минимумом, который нужен декоратору для конструирования остальных методов. Подписывайтесь на канал 👉@pythonofff

howdoi: StackOverflow прямо в терминале Застряли во время разработки и никак не можете поймать за хвост решение, которое уже
howdoi: StackOverflow прямо в терминале Застряли во время разработки и никак не можете поймать за хвост решение, которое уже точно где-то видели? Надо идти на StackOverflow, но не хочется выходить из консоли? Тогда вам нужен это суперполезный CLI-инструмент. Подписывайтесь на канал 👉@pythonofff

Именованные кортежи Кортежи tuple, по своей сути, являются неизменяемыми списками. Структура данных удобная, но мы можем полу
Именованные кортежи Кортежи tuple, по своей сути, являются неизменяемыми списками. Структура данных удобная, но мы можем получать данные, используя только числовые индексы. Нет возможности дать имена отдельным элементам, сохранённым в кортеже. Это может повлиять на читаемость кода. И в таком случае используют именованные кортежи namedtuple из collections. Каждый объект в именованном кортеже может быть доступен через уникальный, удобный для чтения человеком, идентификатор. При этом вся функциональность от обычных кортежей сохраняется. Подписывайтесь на канал 👉@pythonofff