Реальный Python
3.64K subscribers
838 photos
10 videos
7 files
889 links
Все о пайтон, новости, подборки на русском и английском. По всем вопросам @evgenycarter
Download Telegram
Метод format в Python для строк — мощный инструмент, поддерживающий множество возможностей, о которых вы, возможно, даже не знали. Каждый заменяемый плейсхолдер ({...}) может содержать три части: имя поля, преобразование и спецификацию формата.

Имя поля используется для указания, какой именно аргумент должен быть подставлен:


>>> '{}'.format(42)
'42'
>>> '{1}'.format(1, 2)
'2'
>>> '{y}'.format(x=1, y=2)
'2'


Преобразование позволяет указать, что вместо str() следует использовать repr() (или ascii()) при преобразовании объектов в строки:


>>> '{!r}'.format(datetime.now())
'datetime.datetime(2018, 5, 3, 23, 48, 49, 157037)'
>>> '{}'.format(datetime.now())
'2018-05-03 23:49:01.060852'


Спецификация формата задаёт, как значения будут представлены:


>>> '{:+,}'.format(1234567)
'+1,234,567'
>>> '{:>19}'.format(1234567)
' 1234567'


Эта спецификация может быть применена и к отдельному объекту с помощью функции format (не метода str):


>>> format(5000000, '+,')
'+5,000,000'


Функция format вызывает метод __format__ объекта, поэтому вы можете изменить его поведение для своих типов.

#python

👉 @python_real
❤1👍1
🐍 Интерфейсы в Python: когда ABC уже недостаточно?

В Python нет привычных интерфейсов, как в Java или C#, но это не значит, что их нельзя использовать. На практике разработчики применяют несколько подходов — от обычного duck typing до абстрактных базовых классов (abc) и современных Protocol из модуля typing.

Что важно знать:

🔹 Duck typing — классический подход Python. Если объект реализует нужные методы, значит, он подходит, независимо от наследования.

🔹 ABC (Abstract Base Classes) — позволяют явно определить набор обязательных методов. Если наследник не реализует их, создать экземпляр класса не получится.

🔹 Protocol — современный способ описывать интерфейсы без наследования. Особенно полезен при использовании статической проверки типов (mypy, Pyright и др.). Код становится гибче, а зависимости между классами — слабее.

💡 Когда что использовать?

* Небольшие проекты — достаточно duck typing.
* Средние и крупные проекты — ABC помогает избежать ошибок реализации.
* Современные кодовые базы с type hints — чаще всего лучший выбор Protocol, который не требует наследования и отлично сочетается с IDE и статическими анализаторами.

Если вы до сих пор считаете, что интерфейсов в Python нет, возможно, вы просто ещё не познакомились с Protocol.

https://realpython.com/python-interface/

#python

👉 @python_real
👍1
🔴 Завтра тестовое собеседование на Middle Python с разработчиком из Авито

Уже завтра вечером в 19:00 по мск
приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.

Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot

Реклама.
О рекламодателе.
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)

Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак

Английский с нуля 🇬🇧
https://max.ru/UchuEnglish

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Rust📌
https://max.ru/channel_rust_lib

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных

Городские📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
https://max.ru/channel_krasnodar_novosty Краснодар Новости
https://max.ru/channel_novosibirsk_novosti Новосибирск
https://max.ru/channel_samara_novosti Новости Самары
https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга
https://max.ru/channel_kazan_novosti Новости Казани
https://max.ru/channel_omsk_novosti Новости Омска
https://max.ru/channel_moskva_24 Москва 24
👎2
🐍 Как использовать Claude Code для разработки и отладки проектов на Python

Real Python опубликовал подробное руководство по работе с Claude Code — консольным ИИ-инструментом, который запускается непосредственно в каталоге проекта.

В отличие от браузерных чат-ботов, Claude Code может:

🔹 изучать структуру проекта и содержимое файлов;
🔹 создавать и редактировать код;
🔹 показывать изменения в формате diff;
🔹 запускать команды и тесты;
🔹 искать и исправлять ошибки;
🔹 работать с Git и создавать коммиты.

В руководстве предлагается с нуля разработать на Python консольный менеджер контактов. Сначала Claude Code составляет план и структуру приложения, затем генерирует код, проверяет его работу и пишет тесты. После этого инструмент используют для анализа уже существующего проекта и исправления найденных проблем.

Отдельное внимание уделено безопасному рабочему процессу:

✅ запускать Claude Code только внутри каталога проекта;
✅ начинать сложные задачи в режиме Plan;
✅ хранить требования к проекту в файле CLAUDE.md;
✅ проверять каждый diff перед применением;
✅ запускать тесты после изменений;
✅ регулярно создавать коммиты, чтобы иметь возможность отката.

Для работы потребуется платная подписка Claude либо учётная запись Anthropic Console с подключённой оплатой API.

https://realpython.com/how-to-use-claude-code/

#python

👉 @python_real
👍2
🐍 Асинхронное программирование в Python: от генераторов до asyncio

Почему обычная программа простаивает во время сетевых запросов, обращения к базе данных или чтения файлов? И как заставить её выполнять другие задачи, пока она ждёт ответа?

В новом подробном руководстве Real Python асинхронность разбирают постепенно — от синхронного кода и генераторов с yield до полноценной работы с asyncio.

Из материала вы узнаете:

🔹 чем синхронное выполнение отличается от асинхронного;
🔹 что такое блокирующие и неблокирующие операции;
🔹 как устроен цикл событий;
🔹 как работают async, await и корутины;
🔹 как запускать несколько задач через asyncio.TaskGroup;
🔹 почему асинхронность особенно полезна для HTTP-запросов, баз данных и другого I/O;
🔹 как отслеживать состояние выполняющихся задач.

Авторы не просто показывают готовый код, а последовательно создают собственную модель кооперативной многозадачности на генераторах. Благодаря этому становится понятнее, что именно скрывается за работой asyncio.

Примеры рассчитаны на Python 3.11 и новее. К статье прилагаются исходники и интерактивный тест.

https://realpython.com/python-async-features/

#python

👉 @python_real
👍1🔥1
🔍Тестовое собеседование на Middle Python с разработчиком из Авито завтра вечером

Уже завтра вечером в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.

Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🐍 В Python 3.15 появится frozendict - словарь, который нельзя изменить

Это встроенный тип для случаев, когда данные должны оставаться неизменными после создания: например, для настроек или результатов вычислений.


settings = frozendict(theme="dark", language="ru")
print(settings["theme"]) # dark

settings["theme"] = "light" # TypeError


Если ключи и значения поддерживают хеширование, frozendict можно использовать как ключ другого словаря или элемент множества. Но есть нюанс: неизменяемость не распространяется на вложенные объекты. Если внутри лежит список, его содержимое всё ещё можно менять.

Функция уже описана в PEP 814 https://peps.python.org/pep-0814/) и включена в предварительные версии Python 3.15.

Подробнее в статье https://realpython.com/python315-frozendict/

#python

👉 @python_real
👍2
📊 Статистика в Python: с чего начать анализ данных

Среднее значение может скрыть важную деталь. Возьмём числа 1, 2, 3, 4, 100: среднее равно 22, а медиана — 3. Одно большое значение сильно изменило картину.

В подробном руководстве Real Python разбирают, как описывать данные с помощью Python:

• находить среднее, медиану и моду;
• измерять разброс значений и изучать корреляцию;
• работать с выбросами и пропущенными значениями;
• строить гистограммы, диаграммы и другие графики.

Для небольших задач хватит встроенного модуля statistics. Для массивов, таблиц и визуализации пригодятся NumPy, pandas, SciPy и Matplotlib.

Пример для быстрого старта:


from statistics import mean, median

data = [1, 2, 3, 4, 100]

print(mean(data)) # 22
print(median(data)) # 3


https://realpython.com/python-statistics/

#python

👉 @python_real
👍1
🔴 Тестовый собес на Middle Python с разработчиком из Яндекса завтра вечером! 
[+ разбор 50 сложных вопросов в подарок ]

23 сентября (уже завтра) в 19:00 по мск
приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Python-разработчика!

Собеседование проведёт Хачатур Саркисян - ведущий разработчик из Яндекса.

Как это будет:

📂 Хачатур задаст разработчику вопросы и задачи, которые могут спросить на реальном собесе;

📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью;

📂 В конце сможешь задать любой вопрос Хачатуру и получить на него развёрнутый ответ.

Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

И ты можешь посмотреть его бесплатно 🔥
Только завтра, в прямом эфире!

🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Python-собеседований 🔥

Переходи в бот, чтобы попасть на эфир и забрать подарок
👉 @shortcut_py_bot

Реклама.
О рекламодателе.
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)

Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак

Английский с нуля 🇬🇧
https://max.ru/UchuEnglish

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8

Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Rust📌
https://max.ru/channel_rust_lib

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных

Городские📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
https://max.ru/channel_krasnodar_novosty Краснодар Новости
https://max.ru/channel_novosibirsk_novosti Новосибирск
https://max.ru/channel_samara_novosti Новости Самары
https://max.ru/channel_ekaterinburg_novosti Новости Екатеринбурга
https://max.ru/channel_kazan_novosti Новости Казани
https://max.ru/channel_omsk_novosti Новости Омска
https://max.ru/channel_moskva_24 Москва 24