Русский
Открыть в Telegram
PPython Academy

Python Academy

✅ Высокое доверие
@python_academy · канал · Технологии · в индексе с 28.05.2026
43 803подписчиков−61 за неделю
2 011средний охват поста
4.6%ER — охват к подписчикам
36постов за 30 дней
P
Python Academy
Фотография
Управление версионностью Python с помощью pyenv Инструмент pyenv предоставляет простой способ для переключения между различными версиями Python, придерживаясь принципов UNIX, согласно которым каждый инструмент должен эффективно выполнять свою задачу. Возможности pyenv включают: - Изменение глобальной версии Python для пользователя; - Управление версиями Python для индивидуальных проектов; - Переопределение версии Python через переменную среды; - Поиск и выполнение команд сразу из нескольких версий Python. #pyenv
👍7👎1
5 · 2.3K ·
P
Python Academy
Фотография
Ruff Ruff — Чрезвычайно быстрый линтер и форматер кода на Python, написанный на Rust. Основным преимуществом Ruff является его скорость. Ruff в 10-100 раз быстрее аналогов. В сравнении с flake8, автор заявляет о практически полном совпадении с набором правил инструмента и нативной реализацией популярных плагинов (flake8-bugbear и т.д.). Также Ruff совместим с Black «из коробки». Ruff может форматировать код. Например, он автоматически удаляет неиспользуемые импорты. Что касается сортировки и группировки строк импорта, то она практически идентична isort. #python #ruff
❤6👍3👎1
14 · 2.3K ·
P
Python Academy
Фотография
Как определить нажатия клавиш на клавиатуре с помощью Python Установим пакет keybord - pip3 install keyboard. Подробно с этим пакетом можно ознакомиться здесь.
👍7👎1
12 · 2K ·
P
Python Academy
Фотография
dict.get() dict.get() — это метод словаря, который используется для получения значения по заданному ключу. Однако, в отличие от обращения к элементу словаря с использованием квадратных скобок (dict[key]), метод get() предоставляет дополнительную возможность задать значение по умолчанию, которое будет возвращено, если ключ не найден в словаре. Синтаксис метода get() выглядит так: value = dict.get(key, default) key: Ключ, по которому производится поиск в словаре. default (необязательный): Значение, которое будет возвращено, если ключ не найден в словаре. Если default не указан, и ключ не найден, метод вернет None. #python
👍2👎1
3 · 1.9K ·
P
Python Academy
Фотография
Добавляем классу большую функциональность На прошлой неделе мы объясняли декоратор @classmethod, а сейчас рассмотрим @staticmethod. @staticmethod можно воспринимать как метод, который "не знает, к какому классу относится". Он просто получает переданные аргументы, без неявного первого аргумента, и его определение не изменяется через наследование. Еще раз: статические методы прикреплены к классу лишь для удобства — и не могут менять состояние ни класса, ни его экземпляра. Зачем использовать. Статические методы делают код более читабельным и повторно используемым. Его также удобнее использовать для импорта по сравнению с обычными функциями, поскольку функцию не нужно отдельно импортировать. В чем же разница? @classmethod используется в суперклассе для определения того, как метод должен вести себя, когда он вызывается разными дочерними классами. @staticmethod используется, когда мы хотим вернуть объект, независимо от вызываемого дочернего класса.
👎2❤1
5 · 1.7K ·
P
Python Academy
Фотография
Делаем планировщик задач  К моему удивлению, далеко не все знают про пакет schedule, который позволяет планировать задачи и повторять их через промежуток времени.  Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще schedule не требует внешних зависимостей и сам в целом легковесный.  Здесь на самом деле даже объяснять особо нечего, логика методов в этом пакете понятна на примерах.  #schedule
👍5❤2🔥2👎1
20 · 1.6K ·
Python Academy
Исследование структуры кода с помощью модуля ast При работе с кодом на Python, иногда возникает необходимость анализа его структуры. Для этого идеально подходит модуль ast (Abstract Syntax Trees), который предоставляет мощные инструменты для работы с абстрактными синтаксическими деревьями. Что такое ast? ast - это модуль Python, который позволяет разбирать и анализировать исходный код на Python, представляя его в виде абстрактного синтаксического дерева (AST). AST представляет собой структурированное представление кода, которое легко интерпретировать и анализировать. Пример использования модуля ast: import ast code = "print('Hello, ast!')" tree = ast.parse(code) print(ast.dump(tree)) В данном примере мы использовали функцию ast.parse для разбора строки кода с помощью модуля ast. Функция ast.dump выводит структуру AST в удобочитаемом формате. Анализ структуры кода: import ast code = """ def greet(name): print(f'Hello, {name}!') """ tree = ast.parse(code) for node in ast.walk(tree): if isinstance(node, ast.FunctionDef): print(f"Найдена функция: {node.name}") elif isinstance(node, ast.Print): print("Обнаружен оператор печати") В данном примере мы использовали модуль ast для анализа структуры кода. Функция ast.walk позволяет обойти все узлы AST, а затем мы проверяем их типы для выделения определенных элементов, таких как функции или операторы. Модуль ast также предоставляет возможности для более сложных операций, таких как изменение кода, создание новых выражений и многое другое. #python #ast #анализкода
👍2👎1
1 · 1.4K ·
Python уже умеет работать с квантовыми схемами. А зачем? Например, с помощью Qiskit — инструмента на Python, который позволяет создавать и запускать квантовые схемы, в том числе на симуляторах. Но интереснее то, где такие вычисления могут пригодиться. Одно из направлений — разработка новых лекарств. В 2026 году Всемирный экономический форум и Frontiers включили квантовое моделирование молекул в десятку перспективных технологий. Идея в том, чтобы точнее изучать взаимодействия на атомном уровне и быстрее находить перспективные соединения. Правда, до готовых лекарств ещё далеко: лабораторные исследования и клинические испытания никто не отменял. Создать и запустить квантовую схему уже можно, а вот применять такие вычисления для решения реальных задач пока гораздо сложнее. За развитием подобных технологий следят в «Горизонтах и векторах технологий». Здесь разбирают перспективные разработки, их ограничения и возможное применение на практике. Хороший способ узнать, какие технологии уже близки к реальному использованию, а каким ещё предстоит долгий путь.
🔥3👍2👎1❤1
3 · 1.2K ·
P
Фотография
Определение литеральных типов Когда нам может понадобится определить из полученной строки литеральный тип (строки, числа, списки, кортежи, словари, логические значения и None), мы можем воспользоваться функцией literal_eval() из модуля ast. Данная функция поможет безопасно определить литеральный тип, а в случае если был передан не литерал, то выбросит исключение. Это можно использовать для оценки выражений из внешних источников при парсинге файлов, либо пользовательского ввода. #ast #literal_eval
❤4👍2👎1
3 · 1.5K ·
P
Python Academy
Фотография
Красивый вывод таблиц Недавно нам понадобилось логировать часть базы данных. И тут мы вспомнили про прекрасный модуль prettytable, который позволяет красиво выводить таблицы. Итак, имена столбцов задается с помощью атрибута table.field_names. А добавлять строки с данными в таблицу можно методом table.add_row([]), передавая туда список элементов. Но даже если вы не фанат командной строки, то иногда нужно сохранить отчет о работе вашей программы в текстовый файл. В таком случае можно сохранить саму таблицу, вызвав метод table.get_string(). #трюки #prettytable
❤2👎1👍1
6 · 1.4K ·
P
Python Academy
Фотография
ООП: композиция Композиция — это отношение, при котором объекты одного класса связаны с объектами другого. Такой способ организации взаимодействия между классами также называется ассоциацией. Как правило, в этом случае объект одного из классов (в примере выше это Salary) является полем другого (Employee). Сложного здесь, как вы видите, ничего нет. Ассоциированные объекты зачастую могут циклически ссылаться друг на друга, что ломает стандартный механизм сборки мусора. В таком случае необходимо использовать слабые ссылки из модуля weakref, о котором поговорим позже. #классы #ооп
❤7👎1
5 · 1.2K ·
P
Python Academy
Фотография
Дескрипторы Дескриптор – это атрибут объекта со “связанным поведением”, то есть такой атрибут, при доступе к которому его поведение переопределяется методом протокола дескриптора. Если хотя бы один из этих методов определен в объекте, то можно сказать, что этот метод – дескриптор. Для того, чтобы определить свой собственный дескриптор, обычно определяют три специальных метода класса __get__, __set__ или __delete__. После этого можно создать новый класс и в атрибут этого класса записать объект типа дескриптор. У данного объекта будет переопределено поведение при доступе к атрибуту (__get__), при присваивании значений (__set__) или при удалении (__delete__). #классы #дескрипторы
👎2🔥2
6 · 1.4K ·
P
Python Academy
Фотография
Заглушка в коде В ходе исполнения оператора pass ничего не происходит, поэтому он может использоваться в качестве некой заглушки в тех местах, где это синтаксически необходимо. Например, вам надо сделать несколько функций, вы написали def'ы и названия, но сам код еще не успели, однако программу надо запустить и проверить что-то другое. Вот тут и понадобится pass. Или в конструкции try-except, чтобы просто проигнорировать и никак не обрабатывать ошибку в программе. #pass
❤3👎2
2 · 1.2K ·
P
Python Academy
Фотография
Not a Number В модуле math есть особый объект, который называется NaN (Not a Number). Эти объекты NaN не уникальны, и даже не равны самим себе, так что вы можете иметь несколько подобных объектов, взятых из нескольких разных источников. Например можно создать подобный объект, просто передав строку 'nan' во float. Кстати говоря, это значит что вы можете использовать NaN в качестве ключа в словаре (хотя мы и не советуем это делать). #nan #tips
❤4👎1
2 · 575 ·
P
Python Academy
Фотография
Метод join у строк У строк есть полезный метод str.join(), который принимает на вход итерируемый объект, элементами которого также должны быть строки. Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод. Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке. #строки
❤6🔥2👎1
1 · 254 ·
P
Python Academy
Фотография
Дзен Python Тим Петерс ещё в далёком 1999 году предложил PEP 20, который должен был содержать в себе 20 правил по написанию кода. Но в итоге их оказалось всего 19. Последний пункт он предложил написать Гвидо Ван Россуму, однако он не написал ничего. В коммьюнити Python пришли к выводу, что разработчик языка хотел этим сказать, что никакие правила не являются абсолютными и везде есть исключения. Посмотреть Дзен, или же философию Python, можно с помощью импорта модуля this, а вариант перевода Дзена на русском языке здесь. #python #дзен
❤5👎1👍1
1 · 291 ·
P
Python Academy
Фотография
Используйте dict.get() вместо dict[] Есть несколько способов получения значений из словарей, и даже по такой теме разработчики часто спорят. Многие получают значения по ключам через квадратные скобки, но если такого ключа нет, то будет вызвано исключение. Поэтому мы считаем, что лучше использовать метод get у словарей. Его основной плюс заключается в том, что он принимает опциональный аргумент, отвечающий за значение по умолчанию. Таким образом, если значение по ключу не найдено, то вернется дефолтное значение. В итоге, мы убираем возможные ошибки в случае, если нужных ключей в словаре нет. #python #dict
👎3👍2
2 · 395 ·
Python Academy
Фотография
Слайсы Слайс (или срез, англ. slice) — это способ выбрать часть последовательности (например, строки, списка, кортежа) путем указания начального и конечного индексов, а также шага. Слайсы используются для извлечения подстрок, подсписков или подкортежей из исходной последовательности. Слайсы полезны для работы с большими последовательностями данных и предоставляют удобный способ извлечения нужных элементов из них. #python #slice
👎1👍1
2 · 551 ·
P
Фотография
Форматируем строку для URL-адреса Для начала стоит вспомнить, что слаг (slug) — это уникальная строка-идентификатор, понятная человеку и содержащая только "безопасные" символы: латинские символы в нижнем регистре, цифры и дефис. Чаще всего такое понятие можно встретить в контексте URL-адресов. Например, можно формировать слаг из названия какой-нибудь статьи и вставлять его в ссылку, чтобы людям было понятно, куда они переходят. Выше в коде мы написали простую функцию, где использовали методы lower() для приведения в нижний регистр и strip() для удаления пробелов слева и справа. Также для удаления некоторых символов и замены на знак дефиса были использованы регулярные выражения и встроенный пакет re для работы с ними. #python #re
👍3👎1❤1
2 · 305 ·
Python Academy
Фотография
Асинхронные запросы с aiohttp Модуль aiohttp представляет из себя асинхронный HTTP клиент/сервер для asyncio и Python. Он позволяет выполнять асинхронные HTTP запросы, что делает его идеальным инструментом для современных приложений, где требуется высокая производительность и параллелизм. Установка aiohttp производится через pip. Чтобы начать делать асинхронные запросы, вам потребуется взаимодействовать с ним с помощью синтаксиса async/await. Запросы, такие как GET, POST, PUT и DELETE, оформляются чисто и ясно. Объекты ответов содержат все необходимые атрибуты для обработки ответов от сервера. Модуль aiohttp подходит не только для работы с асинхронными веб-сервисами, но и для асинхронного скрапинга веб-страниц. #модули
❤2👎1👍1
1 · 171 ·
Фотография
Системный дизайн высоконагруженных проектов — курс для разработчиков На курсе разберут: — балансировку, масштабирование, шардинг, консистентность, CAP/PACELC, саги и другие подходы к проектированию; — реальные задачи из маркетплейсов, такси, соцсетей, мессенджеров, CDN и онлайн-кинотеатров; — планирование нагрузки и подготовку к секциям по системному дизайну на собеседованиях. Обучение проходит онлайн. Автор курса — Алексей Рыбак, ex-CTO Badoo с 20-летним опытом работы с высоконагруженными проектами. Старт: 23 ноября. Программа и запись по ссылке. Реклама. ИП Рыбак А.А. ИНН 771407709607. Erid: 4SykqkNT4Kv
👍1👎1
1 · 450 ·
Фотография
Not a Number В модуле math есть особый объект, который называется NaN (Not a Number). Эти объекты NaN не уникальны, и даже не равны самим себе, так что вы можете иметь несколько подобных объектов, взятых из нескольких разных источников. Например можно создать подобный объект, просто передав строку 'nan' во float. Кстати говоря, это значит что вы можете использовать NaN в качестве ключа в словаре (хотя мы и не советуем это делать). #nan #tips
👎1👍1❤1
1 · 186 ·
P
Фотография
Работа с форматированием текста textwrap — это стандартная библиотека, которая спользуется для форматирования текста в тех случаях, когда нам нужна красивая печать. Он предлагает функциональность аналогичную текстовым редакторам и текстовым процессорам. Немного о возможностях: textwrap.fill() — принимает текст и возвращает отформатированный текст, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац. textwrap.dedent() — используется для удаления общего префикса пробела из всех строк в тексте. textwrap.indent() — используется для добавления текст префикса ко всем строкам в параграфе #python #textwrap
❤2👎1
2 · 159 ·
P
Python Academy
Локализация в Python с помощью модуля gettext В процессе разработки программ иногда необходимо предоставить поддержку разных языков. Модуль gettext в Python предоставляет удобный механизм локализации, который позволяет адаптировать ваше приложение для различных языковых сообществ. Что такое gettext? gettext - это модуль Python, предназначенный для обеспечения поддержки интернационализации и локализации. Он позволяет создавать переводы строк на различные языки, обеспечивая легкость адаптации приложения под разные культурные контексты. Пример использования gettext: import gettext from pathlib import Path translations = gettext.translation('your_app', localedir=Path('locales'), languages=['ru']) translations.install() print(_("Hello, gettext!")) В данном примере мы используем модуль gettext для загрузки файлов перевода из директории 'locales' для русского языка. Функция _() используется для обозначения строк, подлежащих локализации. Создание файлов перевода: Для создания файлов перевода можно воспользоваться утилитой pybabel: pybabel extract -F babel.cfg -o messages.pot your_app pybabel init -i messages.pot -d locales -l ru gettext также предоставляет множество возможностей для более сложных сценариев локализации, таких как форматирование чисел, дат и поддержка множественных форм. #python #gettext #i18n
👍2
220 ·
P
Python Academy
Фотография
​​Сортировка пузырьком Для сортировки списков в Python уже есть встроенные функция sorted() и метод .sorted(), но достаточно важно самому знать хотя бы несколько реализаций. Суть алгоритма в том, что совершается несколько проходов по массиву. При проходе последовательно сравниваются пары элементов в массиве и в случае несоответствия выбранному порядку меняются местами. Если пары элементов находятся в верном порядке, то ничего не происходит. В результате первого прохода максимальный элемент окажется в конце, то есть всплывет словно пузырек. Затем все повторяется до того момента пока весь массив не будет отсортирован. Последний проход будет по отсортированному массиву. #списки #сортировка
3 · 98 ·

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем