💭 Холивар: f-строки vs .format() vs %
Python предлагает сразу три способа форматирования строк — и у каждого есть свои фанаты.
Разбираемся по фактам:
🔎  f-строки (Python 3.6+):
✅  читаемо, лаконично
✅  быстрее при выполнении
🙅♂️  не работает в Python < 3.6
🙅♂️  неудобно при кавычках внутри строк
🔎  .format():
✅  кросс-версионно (Python 2.7+ и 3.x)
✅  хорош для шаблонов и повторов
🙅♂️  длиннее, особенно с ключами
🙅♂️  легко запутаться с порядком аргументов
🔎  Cтарый стиль %:
✅  кратко для простых случаев
✅  работает даже в старом Python
🙅♂️  типобезопасность на минималках
🙅♂️  легко сломать, особенно при refactoring’е
Выбор зависит от контекста:
🔘  f-строки — выбор для современного Python-кода
🔘  
🔘  
А вы что используете чаще всего?
❤️ f-строки — будущее уже здесь
👍
P.S. Инструкция, как оставить коммент
Библиотека питониста #междусобойчик
Python предлагает сразу три способа форматирования строк — и у каждого есть свои фанаты.
Разбираемся по фактам:
name = "Alice"
age = 30
print(f"{name} is {age} years old.")
name = "Alice"
age = 30
print("{} is {} years old.".format(name, age))
name = "Alice"
age = 30
print("%s is %d years old." % (name, age))
Выбор зависит от контекста:
.format() — для совместимости и шаблонов% — для ностальгирующих и логовА вы что используете чаще всего?
❤️ f-строки — будущее уже здесь
👍
.format() / % — стабильность и привычкаP.S. Инструкция, как оставить коммент
Библиотека питониста #междусобойчик
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤96👍13❤🔥1⚡1👾1
  This media is not supported in your browser
    VIEW IN TELEGRAM
  ♻️ Garbage Collector в Python — как он реально работает
Python сам управляет памятью, но делает это не одним, а двумя способами одновременно:
1⃣   Подсчёт ссылок (Reference Counting)
Каждый объект в Python хранит число ссылок на себя:
📝  Когда ссылок становится 0 — объект немедленно удаляется, и память освобождается.
✅  Быстро и просто.
❗️ Проблема: не справляется с циклическими ссылками:
2⃣   Поколенческий сборщик мусора (Generational GC)
Чтобы находить такие циклы, Python использует модуль
📝  Поколение 0 — новые объекты
📝  Поколение 1 — выжили после первой сборки
📝  Поколение 2 — считаются «старожилами»
Чем старше объект, тем реже его проверяют, чтобы не тратить ресурсы:
✅  Почему это важно:
📝  GC работает фоном и почти незаметно, но может вызвать лаги, если не оптимизировать.
📝  Вы можете влиять на GC: отключать, настраивать пороги, анализировать поведение.
📝  В больших проектах с долгоживущими объектами важно знать, в каком поколении что живёт.
Библиотека питониста #буст
Python сам управляет памятью, но делает это не одним, а двумя способами одновременно:
Каждый объект в Python хранит число ссылок на себя:
import sys
a = []
print(sys.getrefcount(a)) # покажет количество ссылок на объект
❗️ Проблема: не справляется с циклическими ссылками:
a = []
a.append(a) # теперь объект содержит ссылку на себя
Чтобы находить такие циклы, Python использует модуль
gc. Все объекты отслеживаются по «возрасту»:Чем старше объект, тем реже его проверяют, чтобы не тратить ресурсы:
import gc
gc.collect() # вручную запустить сборку мусора
gc.get_count() # сколько объектов в каждом поколении
gc.get_threshold() # когда запускать сборку
Библиотека питониста #буст
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤7👍4🔥2
  Если вы работаете с машинным обучением в реальных продуктах, то знаете:
🔹 обучить модель — это только начало
🔹 внедрить её в стабильный продакшен — совсем другая задача
В статье разбираем:
📖 Читайте статью:
«Бэкенд под ML-проекты: особенности архитектуры и типичные узкие места»
→ https://proglib.io/sh/xCfXt2pH4j
Библиотека питониста #буст
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤5👍1
  ⏰ Последние 2 дня скидки на курс «AI-агенты для DS-специалистов»
Пока большинство дата-сайентистов строят модели и делают аналитику, рынок уже требует специалистов, которые создают автономные системы на базе ИИ-агентов.
Для этого мы подготовили специальный курс и собрали кучу дополнительного контента, который поможет погрузиться в тему еще глубже. Но чтобы получить все плюшки, успевайте до 1 июня.
🎁 Что вы получите при оплате курса до 1 июня:
— Промокод PROGLIBAIна 10 000 ₽ на курс, чтобы изучать AI-агентов еще выгоднее
— Эксклюзивный лонгрид по API и ML от Proglib
💡Что разберем на курсе «AI-агенты для DS-специалистов»:
— Реализацию памяти в цепочках langchain
— Полный пайплайн RAG-системы с оценкой качества
— Основы мультиагентных систем (MAS)
— Протокол MCP и фреймворк FastMCP
Промокод также действует на курсы «Математика для Data Science» и «Алгоритмы и структуры данных».
👉 Успейте до 1 июня: https://clc.to/Cttu7A
  Пока большинство дата-сайентистов строят модели и делают аналитику, рынок уже требует специалистов, которые создают автономные системы на базе ИИ-агентов.
Для этого мы подготовили специальный курс и собрали кучу дополнительного контента, который поможет погрузиться в тему еще глубже. Но чтобы получить все плюшки, успевайте до 1 июня.
🎁 Что вы получите при оплате курса до 1 июня:
— Промокод PROGLIBAIна 10 000 ₽ на курс, чтобы изучать AI-агентов еще выгоднее
— Эксклюзивный лонгрид по API и ML от Proglib
💡Что разберем на курсе «AI-агенты для DS-специалистов»:
— Реализацию памяти в цепочках langchain
— Полный пайплайн RAG-системы с оценкой качества
— Основы мультиагентных систем (MAS)
— Протокол MCP и фреймворк FastMCP
Промокод также действует на курсы «Математика для Data Science» и «Алгоритмы и структуры данных».
👉 Успейте до 1 июня: https://clc.to/Cttu7A
Самые догадливые, пишите ответ в комментах 👇
Небольшая подсказка — это термин относится к Python.
Прячем ответы под спойлер, чтобы не спалить остальным.
Библиотека питониста #междусобойчик
Небольшая подсказка — это термин относится к Python.
Прячем ответы под спойлер, чтобы не спалить остальным.
Библиотека питониста #междусобойчик
❤2🤔1
  📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
❤11👍1
  🐍 Python 3.14.0 beta 2 уже доступен
Вышла вторая бета-версия Python 3.14. Это превью-версия, предназначенная для тестирования новых фич, подготовки экосистемы и сбора обратной связи.
Основные нововведения в 3.14:
✔️  PEP 649 — отложенное выполнение type hints
✔️  PEP 750 — t-строки (template strings) — как f-строки, но для кастомной обработки
✔️  PEP 784 — модуль 
✔️  PEP 768 — интерфейс внешней отладки без накладных расходов
✔️  PEP 765 — запрет на 
✔️  PEP 758 — 
✔️  Цветной вывод в 
✔️  Поддержка UUID v6–v8
✔️  Встроенный 
✔️  Новый тип интерпретатора с более высокой производительностью (пока эксперимент)
✔️  Новый CLI-инструмент для анализа работающих Python-процессов
✔️  
⚠️ Важно: это тестовая версия, не рекомендуется для продакшена. Но если вы — мейнтейнер библиотеки или инфраструктуры, сейчас отличное время, чтобы попробовать 3.14 и сообщить об ошибках до релиз-кандидатов.
📅 Следующий релиз — 3.14.0b3, запланирован на 17 июня 2025.
Библиотека питониста #свежак
Вышла вторая бета-версия Python 3.14. Это превью-версия, предназначенная для тестирования новых фич, подготовки экосистемы и сбора обратной связи.
Основные нововведения в 3.14:
compression.zstd с поддержкой алгоритма Zstandardreturn/break/continue из finallyexcept и except* можно писать без скобокunittest, argparse, json, calendar, PyREPLHMAC с проверенной реализациейpdb теперь поддерживает подключение к удалённым процессам⚠️ Важно: это тестовая версия, не рекомендуется для продакшена. Но если вы — мейнтейнер библиотеки или инфраструктуры, сейчас отличное время, чтобы попробовать 3.14 и сообщить об ошибках до релиз-кандидатов.
📅 Следующий релиз — 3.14.0b3, запланирован на 17 июня 2025.
Библиотека питониста #свежак
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤8👍2⚡1
  🚨 Что на самом деле происходит с увольнениями в ИТ
Каждый день в чатах разработчиков появляются сообщения «ищу работу», «команду сократили», «проект закрыли». Но никто не говорит о причинах и масштабах катастрофы. Мы запустили большое исследование, чтобы раскрыть правду!
🎯 Что мы выясним:
→ Реальные причины увольнений
→ Сколько времени нужно на поиск работы
→ Самые безумные истории смены работы
Понимая реальную ситуацию, мы сможем принимать взвешенные решения о карьере и не попасться на удочку HR-сказок.
👉 Пройдите опрос за 3 минуты и помогите всему сообществу: https://clc.to/yJ5krg
Каждый день в чатах разработчиков появляются сообщения «ищу работу», «команду сократили», «проект закрыли». Но никто не говорит о причинах и масштабах катастрофы. Мы запустили большое исследование, чтобы раскрыть правду!
🎯 Что мы выясним:
→ Реальные причины увольнений
→ Сколько времени нужно на поиск работы
→ Самые безумные истории смены работы
Понимая реальную ситуацию, мы сможем принимать взвешенные решения о карьере и не попасться на удочку HR-сказок.
👉 Пройдите опрос за 3 минуты и помогите всему сообществу: https://clc.to/yJ5krg
❤2😁1
  🐍 Python новости
🚀 Новые возможности и релизы:
— Mojo из Python — теперь можно вызывать Mojo-код прямо из Python
— Python 3.14.0 beta 2 — готовимся к новому релизу: стабильнее, удобнее, мощнее
🛠 Практика и продакшн:
— Telegram-бот своими руками — от первой строки до запуска
— Метаклассы в Python — объяснение, зачем и как
— Форматирование строк 2.0 — новый удобный способ
— Тестовые идентификаторы — где и как правильно вставлять, чтобы не страдать
— Django ORM: filter vs exclude — нюансы, которые стоит знать
Библиотека питониста #свежак
🚀 Новые возможности и релизы:
— Mojo из Python — теперь можно вызывать Mojo-код прямо из Python
— Python 3.14.0 beta 2 — готовимся к новому релизу: стабильнее, удобнее, мощнее
🛠 Практика и продакшн:
— Telegram-бот своими руками — от первой строки до запуска
— Метаклассы в Python — объяснение, зачем и как
— Форматирование строк 2.0 — новый удобный способ
— Тестовые идентификаторы — где и как правильно вставлять, чтобы не страдать
— Django ORM: filter vs exclude — нюансы, которые стоит знать
Библиотека питониста #свежак
❤5👍1
  Forwarded from Библиотека задач по Python | тесты, код, задания
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👾125🥰20❤3
  Ведущий инженер по эксплуатации баз данных (DBA), гибрид (Москва)
Team Lead (Python) команды разработки — от 350 000 до 450 000 ₽, удалёнка
ML/CV backend разработчик (python) — от 300 000 до 380 000 ₽, удалёнка
AI / Prompt Engineer — до 200 000 ₽, удалёнка
Python-разработчик — до 570 000 ₽, удалёнка
Библиотека питониста
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤7
  Если вы пишете код на C и Python, рано или поздно возникнет задача: как вызывать Python из C? Особенно если вы работаете с AI-исследованиями, Tensorflow, или хотите встроить скрипты в уже существующий C-проект.
Вот краткое руководство:
python3-config --includes
В
Cmain.c:#include <Python.h>
gcc Cmain.c -I/usr/include/python3.8 -lpython3.8 -o Cmain.o
setenv("PYTHONPATH", "./", 1);
Py_Initialize();
// ...
Py_Finalize();PyObject *module = PyImport_ImportModule("PythonFunctions");
PyObject *func = PyObject_GetAttrString(module, "PrintList");
PyObject_CallObject(func, args);Создаём через
PyList_New, PyLong_FromLong, PyTuple_Pack.Не забываем про
Py_XDECREF(...)Библиотека питониста #буст
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍7❤3🔥2❤🔥1
  🎸 Причины выбрать Django вместо FastAPI
FastAPI звучит современно, асинхронно и быстро. Но стоит ли менять проверенное временем решение на модный инструмент?
Один опытный разработчик рассказал, почему Django до сих пор остаётся лучшим выбором для многих проектов. Мы выбрали 5 ключевых аргументов — смотрите в карточках 👇
📖 А все 10 — уже в статье по ссылке: https://proglib.io/sh/LoivXFW2cr
Библиотека питониста #буст
FastAPI звучит современно, асинхронно и быстро. Но стоит ли менять проверенное временем решение на модный инструмент?
Один опытный разработчик рассказал, почему Django до сих пор остаётся лучшим выбором для многих проектов. Мы выбрали 5 ключевых аргументов — смотрите в карточках 👇
📖 А все 10 — уже в статье по ссылке: https://proglib.io/sh/LoivXFW2cr
Библиотека питониста #буст
😁12🌚7❤6🤔3🥱1👾1
  🔍 Профилирование — это способ найти узкие места в производительности кода.
Вы можете точно узнать, какие функции тормозят выполнение, где тратится больше всего времени, и какие вызовы стоит оптимизировать.
Python поставляется с двумя встроенными профайлерами:
cProfile — написан на C, работает быстрее и точнее,profile — на Python, обычно медленнее.cProfile для измерения производительности.Как профилировать скрипт
python -m cProfile -o profile my_script.py
pstats:python -m pstats profile <<< $'sort cumtime\nstats 1000' | less
sort cumtime — сортируем функции по кумулятивному времени (время выполнения функции плюс все вызовы внутри неё)stats 1000 — показываем первые 1000 строк статистикиless — удобный просмотр с прокруткой (нажмите q для выхода)Полезные опции
-m:python -m cProfile -o profile -m module_name [args]
python -m cProfile -o before.profile script.py
python -m cProfile -o after.profile script.py
Можно менять сортировку по другим метрикам:
time — время выполнения только самой функцииcalls — количество вызовов функции (может помочь найти «горячие» участки)Библиотека питониста #буст
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍4❤3🤩2