pyproglib | Unsorted

Telegram-канал pyproglib - Библиотека питониста | Python, Django, Flask

41234

Все самое полезное для питониста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Учиться у нас: https://proglib.io/w/d7f1e6ed Обратная связь: @proglibrary_feedback_bot По рекламе: @proglib_adv Прайс: @proglib_advertising

Subscribe to a channel

Библиотека питониста | Python, Django, Flask

🆕 Появился ty — молниеносный type checker для Python на Rust

Разработчики представили ty — новый инструмент для проверки типов и language server для Python, написанный на Rust. Обещают высокую скорость и удобство интеграции с редакторами.

⚠️ Пока что это pre-release:
— баги,
— отсутствующие фичи,
— возможны критические ошибки.

ty ещё не готов к продакшну, но активно развивается. Инструмент уже вызывает интерес у сообщества — особенно за счёт скорости и амбиций.

👀 Следим за развитием: https://clc.to/1jvRfg

Библиотека питониста #свежак

Читать полностью…

Библиотека питониста | Python, Django, Flask

✉️ Вопросы подписчиков: какой ваш Python-стек в 2025 году

Сегодня делимся вопросом от подписчика, который интересуется, какие инструменты для Python наиболее актуальны в 2025 году.

💬 Вот что он пишет:

«Я использую VSCode и ChatGPT/Sonnet3.5, когда занимаюсь разработкой ML-решений или оптимизацией в ассемблере/CUDA. Однако ограничивающим фактором является то, что в большинстве случаев ИИ работает на уровне младшего разработчика. Поэтому мне часто приходится проверять информацию в документации и на Google.

Какие IDE и инструменты для ноутбуков вы используете в 2025 году? Например, VS Code, Jupyter, PyCharm — что лучше подходит для работы с данными и ML?

Используете ли вы ИИ-инструменты, такие как Cursor, Copilot или Cline? Если да, то какие задачи они помогают решать в вашем рабочем процессе?»


➡️ Какие ограничения вы встречали при работе с этими инструментами, и что порекомендуете новичкам?

🔎 Поделитесь своим опытом и полезными советами в комментариях!
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.

Библиотека Python-разработчика #междусобойчик

Читать полностью…

Библиотека питониста | Python, Django, Flask

🤔
Библиотека питониста #развлекалово

Читать полностью…

Библиотека питониста | Python, Django, Flask

🏗 7 архитектурных паттернов, которые должен знать каждый программист

Хочешь писать код, который не разваливается через полгода? Понимание архитектурных паттернов — ключ к стабильным и масштабируемым приложениям.

📌 Мы собрали 7 базовых подходов, которые должен знать каждый разработчик. Подходит для тех, кто хочет прокачать архитектурное мышление, уверенно проходить собеседования и строить проекты «на вырост».

👉 Ссылка на статью: https://clc.to/tgproglibacademy6

Библиотека питониста

Читать полностью…

Библиотека питониста | Python, Django, Flask

⌨️ Топ-вакансий для питонистов за неделю

Junior Python Developer (Data) — до 200 000, удалёнка

Team Lead (Python) команды разработки — от 350 000 до 450 000 ₽, удалёнка (Москва)

Junior Python developer — от 100 000 до 130 000 ₽, офис (Москва)

Python разработчик, гибрид (Москва, Санкт-Петербург)

Программист Python junior — от 100 000 ₽, гибрид (Москва)

➡️ Еще больше топовых вакансий — в нашем канале Python jobs

Библиотека питониста

Читать полностью…

Библиотека питониста | Python, Django, Flask

Что представляют собой генераторы в Python, как функционирует метод send() в этих генераторах и каким образом его можно применять для управления их поведением?

Генераторы в Python представляют собой функции, которые применяют оператор yield для возврата значений и временной приостановки выполнения. С помощью метода send() можно отправлять данные обратно в генератор, которые затем могут быть использованы при следующем возобновлении его работы. Это делает генераторы двусторонними, позволяя не только получать значения, но и передавать данные внутрь.

Читать полностью…

Библиотека питониста | Python, Django, Flask

📚Напоминаем про наш полный курс «Самоучитель по 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

Читать полностью…

Библиотека питониста | Python, Django, Flask

😆
Библиотека питониста #развлекалово

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔰 Модуль enum: обзор

Модуль enum в Python используется для создания перечислений — объектов, которые упрощают работу с группами связанных константных значений. Это полезно для удобного различия значений без привязки к их конкретным значениям, например, при работе с параметрами конфигурации.

🟠 Создание перечислений с Enum и auto

Перечисления позволяют избежать ошибок с опечатками и делают код более читаемым.

Пример с конкретными значениями:

from enum import Enum

class TempUnit(Enum):
CELSIUS = "celsius"
FAHRENHEIT = "fahrenheit"

def get_temperature(city, unit):
return 18.0 if unit == TempUnit.CELSIUS else 64.4

print(get_temperature("Lisbon", TempUnit.CELSIUS)) # 18.0


Перечисления упрощают работу с значениями:
print(TempUnit.CELSIUS.name)  # CELSIUS
print(TempUnit.CELSIUS.value) # celsius


Для целочисленных значений можно использовать auto() для автоматической нумерации:
from enum import Enum, auto

class Weekday(Enum):
SUNDAY = auto()
MONDAY = auto()
TUESDAY = auto()
WEDNESDAY = auto()
THURSDAY = auto()
FRIDAY = auto()
SATURDAY = auto()


🟠 Строковые перечисления

Для строковых значений можно использовать StrEnum:
from enum import StrEnum

class TempUnit(StrEnum):
CELSIUS = "celsius"
FAHRENHEIT = "fahrenheit"

print(TempUnit.CELSIUS.capitalize()) # Celsius


Автоматическая строковая нумерация:
from enum import StrEnum, auto

class TempUnit(StrEnum):
CELSIUS = auto()
FAHRENHEIT = auto()

assert TempUnit.CELSIUS.value == "celsius"


🟠 Специализированные типы перечислений

Целочисленные перечисления с IntEnum:
from enum import IntEnum

class SomeIntegers(IntEnum):
ONE = 1
TWO = 2
THREE = 3

print(SomeIntegers.TWO + 1) # 3


Флаги с Flag для комбинирования флагов:
from enum import Flag, auto

class NotificationMethod(Flag):
IN_APP = auto()
PUSH = auto()
EMAIL = auto()
SMS = auto()

user_settings = NotificationMethod.IN_APP | NotificationMethod.PUSH
print(user_settings) # <NotificationMethod.IN_APP|PUSH: 3>


🟠 Утилиты для удобной работы с перечислениями

Проверка уникальности значений с помощью декоратора @unique:
from enum import Enum, unique

@unique
class EnumWithAliases(Enum):
ONE = 1
TWO = 2
THREE = 3
UNO = 1 # Ошибка, дублирующее значение


Проверка непрерывности значений с помощью декоратора @verify(CONTINUOUS):
from enum import Enum, verify, CONTINUOUS

@verify(CONTINUOUS)
class Nums(Enum):
THREE = 3
FOUR = 4
FIVE = 5
SIX = 6

@verify(CONTINUOUS)
class NumsHole(Enum):
THREE = 3
FOUR = 4
SIX = 6 # Ошибка, отсутствует 5


Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🐍 Python 3.15 — расписание релиза (PEP 790)

📅 Этапы разработки:
Начало разработки: 6 мая 2025

— Альфа-релизы:

📝 Alpha 1: 14 октября 2025
📝 Alpha 2: 18 ноября 2025
📝 Alpha 3: 16 декабря 2025
📝 Alpha 4: 13 января 2026
📝 Alpha 5: 10 февраля 2026
📝 Alpha 6: 10 марта 2026
📝 Alpha 7: 7 апреля 2026

Бета-релизы (без добавления новых фич):
📝 Beta 1: 5 мая 2026
📝 Beta 2: 26 мая 2026
📝 Beta 3: 16 июня 2026
📝 Beta 4: 14 июля 2026

Release candidates:
📝 RC1: 28 июля 2026
📝 RC2: 1 сентября 2026

Финальный релиз: 1 октября 2026 (четверг)

🔧 Срок поддержки:
📝 Bugfix-обновления: каждые ~2 месяца в течение 2 лет (до выхода Python 3.18.0 final)
📝 Обновления безопасности (только исходный код): ещё 3 года — до октября 2031

Библиотека питониста #свежак

Читать полностью…

Библиотека питониста | Python, Django, Flask

⌨️ Как адаптировать код под синтаксические изменения в Python 3.14

Python 3.14 планируется к релизу 7 октября 2025 года. В нем будут представлены значительные улучшения производительности, включая новый экспериментальный интерпретатор и оптимизацию различных встроенных модулей.

Кроме того, Python 3.14 вводит несколько изменений синтаксиса, которые важно учитывать разработчикам:

1⃣ Запрещены операторы управления потоком в блоках `finally`

Сейчас разработчики могут по ошибке использовать операторы управления потоком (такие как return, break или continue) в блоках finally, что может привести к неожиданному поведению. В Python 3.14 будет выводиться SyntaxWarning при наличии таких операторов в блоках finally.

Пример:

def return_example():
try:
print("В блоке try")
return "Возврат из блока try"
except Exception as e:
print(f"Ошибка: {e}")
finally:
print("В блоке finally")
return "Возврат из блока finally" # Перекрывает возврат из try

result = return_example()
print(f"Результат: {result}")


Вывод:
В блоке try
В блоке finally
Результат: Возврат из блока finally


Это изменение поможет избежать ошибок, когда контрольный поток блока finally перезаписывает поток из блоков try/except.

2⃣ Обработка исключений без скобок

В Python 3.14 больше не требуется использовать скобки при перехвате нескольких исключений. Это упрощает код, но скобки всё равно необходимы, если вы используете конструкцию as для захвата экземпляра исключения.

Пример:
def divide(a, b):
try:
result = a / b
return result
except ZeroDivisionError, TypeError: # Обработка без скобок
print(f"Неправильный ввод: {a} и {b}")
raise


Однако если вы захватываете экземпляр исключения, скобки всё равно требуются:
def divide(a, b):
try:
result = a / b
return result
except (ZeroDivisionError, TypeError) as e:
print(f"Ошибка: {e}")
raise e


Хотя это обновление и незначительное, оно упрощает код при работе с несколькими исключениями.

3⃣ Отложенная оценка аннотаций типов

В предыдущих версиях Python ссылаться на класс в аннотациях типов до того, как он был полностью определён, приводило к ошибке NameError. Разработчики должны были использовать строковые литералы или импортировать __future__, чтобы избежать этой проблемы. В Python 3.14 аннотации типов теперь оцениваются только по мере необходимости.

Пример (до Python 3.14):
class Node:
def __init__(self, value: int, next: Node): # Ошибка NameError
self.value = value
self.next = next


Теперь в Python 3.14 нет необходимости в специальных импортируемых модулях или строковых аннотациях:
class Node:
def __init__(self, value: int, next: Node): # Работает без ошибок
self.value = value
self.next = next


Аннотации типов теперь оцениваются только во время выполнения, что делает их использование более простым и чистым.

Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

📱 Новый ассистент Python-разработки — всего один промпт

Промпт, который превратит ChatGPT в полноценного помощника при решении инженерных задач, отладки и проектирования архитектуры.

✍️ Промпт:

Act as a senior Python developer.  

I will describe a project or task I'm working on. You will ask clarifying questions if needed, then help me:
— design clean architecture,
— identify edge cases,
— suggest libraries, tools, and testing strategies,
— write well-structured, production-ready code.

Please explain your reasoning and best practices throughout. Wait for my input before continuing to the next step.


▫️ Как это работает:
— Вы получаете не просто код, а рассуждения и советы от «синьора»
— Промпт подстраивается под вашу задачу — от pet-проектов до боевых сервисов
— Подходит и для обучения, и для повышения качества решений в работе

▫️ Примеры использования:
— Решаете нетривиальную задачу и хотите second opinion
— Не уверены в архитектуре или выборе инструментов
— Хотите прокачать подход к разработке на уровне профессионала

Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔥 IT Breaking Memes — 30 000 ₽ за самую смешную IT-новость

Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!

👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.

🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе

Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».

Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».

📅 Сроки: с 29 апреля по 11 мая включительно

Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8

Ждем ваших новостей!

Читать полностью…

Библиотека питониста | Python, Django, Flask

☀️ IT-календарь: главные релизы и события мая

📅 Важные релизы:

Python 3.14 Beta 1
Ожидаемая дата: 6 мая 2025 года
Это важный этап разработки: после выхода беты новые функции замораживаются, а основное внимание переключается на тестирование и исправление ошибок.

Python 3.13.4
Ожидаемая дата: вероятно, середина месяца
Релиз будет включать исправления багов и обновления безопасности в рамках регулярного двухмесячного цикла.

🌟 Ключевые мероприятия:

PyCon US 2025 (PyCon US)
Даты проведения: 15–23 мая 2025 года
Место: Питтсбург, США
Крупнейшая конференция Python в США, объединяющая доклады, мастер-классы, хакатоны, ярмарку вакансий (Job Fair), аукцион PyLadies и другие мероприятия для разработчиков всех уровней.

PyCon Italia 2025 (PyCon Italia)
Даты проведения: 28–31 мая 2025 года
Место: Болонья, Италия
Конференция Python в Италии с насыщенной программой: доклады, мастер-классы и социальные мероприятия — PyDrinks, PyDinner и PyFest.

Библиотека питониста #свежак

Читать полностью…

Библиотека питониста | Python, Django, Flask

Релиз pip 25.1: установка групп зависимостей и вывод lock-файлов

На выходных вышел pip 25.1.

Главные новшества:
➡️ Теперь можно устанавливать группы зависимостей, например:

pip install --group test


➡️ Добавлена экспериментальная поддержка вывода lock-файлов по стандарту PEP 751:
pip lock requests -o -


Полный список изменений получился внушительным. Один из мейнтейнеров подготовил краткий обзор:
👉 Что нового в pip 25.1

Полный changelog можно посмотреть здесь:
👉 Changelog pip 25.1

Библиотека питониста #свежак

Читать полностью…

Библиотека питониста | Python, Django, Flask

🎙 Что послушать: Developer Trends 2025

Новый выпуск подкаста Talk Python to Me посвящён главным трендам 2025 года:
➡️ какие технологии на подъёме,
➡️ что показывает последний опрос Stack Overflow,
➡️ и куда движется Python-сообщество.

📌 Темы:
— Стоит ли изучать новые базы данных или это хайп?
— Что теряет актуальность?
— Как поменялись роли разработчиков и ожидания в индустрии?

▶️ Слушать: https://clc.to/4neIiA

Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔵 11 устаревших Python-модулей, которые следует больше не использовать, и их современные аналоги

Использование старых модулей может привести к неожиданным ошибкам в проектах.

Вот 11 устаревших Python-модулей и их современные аналоги:

1️⃣ Pipes (удален с Python 3.13)

Модуль pipes был удален, так как был заменен более мощным и кросс-платформенным модулем subprocess.

import subprocess

result = subprocess.run("echo Hello | tr a-z A-Z", shell=True, capture_output=True, text=True)
print(result.stdout) # HELLO


2️⃣ typing.Text

Тип Text был предназначен для совместимости с Python 2, и теперь его можно заменить на str.

def greet(name: str) -> str:
return f"Hello, {name}!"


3️⃣ urllib

Модуль urllib устарел для работы с HTTP-запросами. Вместо него лучше использовать requests или urllib3.

import requests

response = requests.post('https://httpbin.org/post', json={'name': 'Yang'})
print(response.json())


4️⃣ crypt

Модуль crypt устарел и его заменил более безопасный модуль bcrypt для хеширования паролей.

import bcrypt

password = b"strongpassword"
hashed = bcrypt.hashpw(password, bcrypt.gensalt())


5️⃣ Устаревшие подсказки типов

С Python 3.9 можно использовать встроенные типы без импорта из модуля typing.

def func(x: list[int]) -> dict[str, int]:
return {}


6️⃣ Старые стили форматирования строк

Использование % или .format() устарело. Современный способ — это f-строки.

name = "Yang"
print(f"My name is {name}.")


7️⃣ cgi

Модуль cgi устарел и заменен современными фреймворками для веб-разработки, такими как Flask или FastAPI.

8️⃣ ossaudiodev

Модуль ossaudiodev устарел, и для работы с аудио рекомендуется использовать такие модули, как pyaudio или sounddevice.

9️⃣ pickle

Модуль pickle может быть опасным для использования, так как есть риски выполнения вредоносного кода. Для безопасной сериализации лучше использовать json.

import json

data = {"name": "Yang"}
with open('data.json', 'w') as f:
json.dump(data, f)


🔟 asyncore и asynchat

Эти модули устарели, и теперь лучше использовать asyncio для асинхронного программирования.

🔟 + 1️⃣ random

Модуль random использует предсказуемый алгоритм, который небезопасен для генерации паролей. Используйте secrets для криптографически стойких случайных чисел.

import secrets

password = secrets.token_hex(16)


Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

👍 Команда дня: contextlib.suppress

Сегодня разберём полезную команду для работы с contextlib.suppress — удобный способ игнорировать определённые исключения без громоздкого try-except.

from contextlib import suppress

# Игнорируем FileNotFoundError при удалении файла
with suppress(FileNotFoundError):
import os
os.remove("non_existent_file.txt")


Зачем это нужно:
Упрощает код, когда вы хотите молча пропустить определённые ошибки.
Например, удаление файла, который может не существовать, или обработка данных, где некоторые ключи могут отсутствовать.

Пример из реальной жизни:
data = {"name": "Alice"}
with suppress(KeyError):
print(data["age"]) # Не сломается, даже если ключа "age" нет


Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔰 How to: как сделать логические выражения в Python читаемыми

Длинные логические выражения — бич читаемости. Вот простой пример:

if user["verified"] and event["date"] > datetime.now() and not event["full"]:
print("Here's the event signup form...")


Выглядит компактно, но читается не очень. Есть несколько способов сделать лучше.

📝 Разбивка по строкам с операторами в начале
if (user["verified"]
and event["date"] > datetime.now()
and not event["full"]):
print("Here's the event signup form...")


PEP8 рекомендует именно такой стиль — с операторами (and, or) в начале строки.

📝 Использование переменных для подвыражений
user_is_verified = user["verified"]
event_in_future = event["date"] > datetime.now()
event_not_full = not event["full"]

if user_is_verified and event_in_future and event_not_full:
print("Here's the event signup form...")


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

📝 Использование функций вместо переменных
def is_verified(user): return user["verified"]
def in_future(event): return event["date"] > datetime.now()
def not_full(event): return not event["full"]

if is_verified(user) and in_future(event) and not_full(event):
print("Here's the event signup form...")


Функции полезны, если важно сохранить short-circuit поведение (когда выражения дальше не выполняются, если результат уже ясен).

📝 Закон де Моргана для упрощения условий

Если видите выражение вида not (a or b) — можно применить трансформацию:
# Было:
not (a or b)

# Стало:
not a and not b


Пример:
def can_only_read(user):
return not (
user["role"] == "admin"
or "edit" in user["permissions"]
)


Упростим по де Моргану:
def can_only_read(user):
return user["role"] != "admin" and "edit" not in user["permissions"]


Теперь читается проще и интуитивнее.

✅ Вывод: не бойтесь разбивать выражения, давать им имена и упрощать через логические законы. Код должен быть понятным не только компьютеру, но и людям.

Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔥 Конкурс: 30 000 ₽ за самую смешную IT-новость

Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.

👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.

🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе

🏆 Как будем оценивать:
Мы выложим новости всех участников в одном из наших телеграм-каналов. Те новости, которые наберут больше всего охвата, войдут в шорт-лист. Из шорт-листа подписчики и жюри выберут победителя.

📅 Сроки: прием новостей до 11 мая включительно

Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8

Осталась неделя — ждем ваших новостей!

Читать полностью…

Библиотека питониста | Python, Django, Flask

📱 Python новости

🚀 Релизы и инструменты:
pip 25.1— поддержка групп зависимостей и вывод lock-файлов
Python 3.15: расписание релиза (PEP 790) — важные даты и этапы разработки
PyCharm стал единым продуктом — что изменилось для разработчиков
AutoKitteh — гибкая альтернатива Zapier и n8n для автоматизации
Django Action Triggers — триггеры действий прямо в Django
IT-календарь: релизы и события мая — чтобы ничего не пропустить

👍 Советы:
Как запускать Python в проде — практики деплоя и окружения
Как я строю инфраструктуру вокруг Python-проектов — линтеры, Poetry, CI/CD и Docker
Управление памятью в Python — когда и зачем вмешиваться вручную
14 интересных фич Python — полезные, хоть и не всегда pythonic

📚 Библиотека питониста #свежак

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔎 Wordsearch: узнаем, кто самый внимательный

Готовы проверить свои знания в Python? В этой головоломке спрятаны термины из мира программирования.

Правила просты:
— Найдите все слова в сетке (слова идут по горизонтали)
— Напишите в комментариях, какие слова вы нашли
— Объясните один из терминов так, чтобы даже джун понял

🏆 Первый, кто найдёт все слова и объяснит хотя бы один термин, получит почётный статус Python Guru на неделю!

Прячем ответы под спойлер, чтобы не спалить остальным.
Погнали 👇

Библиотека питониста #междусобойчик

Читать полностью…

Библиотека питониста | Python, Django, Flask

🎓 Как выбрать свою роль в Data Science и не потеряться в терминах

Если вы только начинаете разбираться в Data Science — перед вами лабиринт из названий: data scientist, аналитик, ML-инженер, BI, архитектор... Кто чем занимается? Что нужно учить?

➡️ Что внутри статьи

— Кто такие Data Engineer

— Чем отличается Data Architect от инженера и зачем он нужен в big data проектах

— Чем занимаются Data Analyst и почему это отличная точка входа в карьеру

— Что делает настоящий Data Scientist

В статье разобрано всё: от задач до технологий, которые реально спрашивают на собеседованиях.

📎 Ссылка

Азбука айтишника #ликбез

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔥 Холивар: Flask vs Django vs FastAPI

🧑‍💻 Начинающий разработчик:

«Хочу выбрать фреймворк, чтобы изучать бэкенд на Python. Что лучше начать: Flask, Django или FastAPI?»


И понеслась...

💬 Сторонники Flask:
— «Flask — идеальный для старта! Минимализм, гибкость, пишешь сам, понимаешь всё!»
— «Django за тебя всё делает — и ты ничего не учишь!»
— «Лучше понять, как работает веб, чем сразу прыгать в гигантский фреймворк!»

💬 Сторонники Django:
— «Flask — это игрушка. В продакшене нужен Django: ORM, миграции, админка, безопасность из коробки!»
— «Хочешь быстро MVP или корпоративный проект — выбирай Django!»
— «Flask хорош, пока тебе не нужно ничего, кроме "Hello, world".»

💬 Сторонники FastAPI:
— «2025 на дворе. Кто вообще ещё пишет на Flask? FastAPI — быстрее, моднее, асинхронно!»
— «Типизация, Pydantic, OpenAPI, автогенерация документации — это просто магия!»
— «Flask — это прошлый век. Django — тяжелый монолит. FastAPI — идеальный баланс!»

⚖️ А где правда?
💬 Комменты открыты. Аргументируй, но не кричи (или кричи, это же холивар).
P.S. Инструкция, как оставить коммент

❤️ — Flask: минимализм и контроль
🔥 — Django: всё включено
👍 — FastAPI: скорость, типы, будущее
😁 — Никакой. Я пишу на Go

Библиотека питониста #междусобойчик

Читать полностью…

Библиотека питониста | Python, Django, Flask

🤯 Как простая задачка поставила в тупик программистов

На собеседовании задали простой вопрос:

«В мешке числа от 1 до 100. Одно пропало. Как найти его? А если пропали два числа? Три? Или вообще k чисел?»


Эта задачка превратилась в одно из самых обсуждаемых тем на Stack Overflow.

➡️ Что внутри статьи:
— Как найти 1 пропущенное число (формула + код).
— Как находить 2 и больше пропущенных чисел (оптимальные алгоритмы).
— Алгоритм Мински–Трахтенберга–Зиппеля.
— Симметрические многочлены и тождества Ньютона (и зачем они нужны).
— Примеры кода на Python для всех случаев.

Если хочешь понять, как красиво решать задачи уровня собесов — обязательно прочитай статью.

👉 Переходи к статье

🔵 Чтобы получить оффер-мечты в Data Science, забирайте наш курс → «Математика для Data Science»

Proglib Academy #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

Библиотека питониста #развлекалово

Читать полностью…

Библиотека питониста | Python, Django, Flask

🐍✨ Пиши как профи: 10 Python-лайфхаков для новичков

Лайфхаки от разработчиков, обжёгшихся до вас

➡️ Что вас ждет внутри:
— почему if x == True: — это преступление
— как списковые включения экономят часы
— зачем линтер важнее кофе
— и почему def func(start_list=[]) может испортить тебе вечер
— как не сойти с ума от зависимостей (и что делать с виртуальными окружениями)
— секретный power move: dir(), help() и другие встроенные суперсилы

И всё это без занудства и «книг для чайников». Просто, по делу, с примерами и личным опытом от бывалых питонистов

📎 Статья

🔵 Начинайте свой путь в программировании и прокачивайте свои навыки с нашим курсом «Основы программирования на Python»

Proglib Academy #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

Инструмент недели: планирование задач с Rocketry

Rocketry — это фреймворк для планирования задач в Python, который позволяет легко управлять задачами и их выполнением с помощью простых выражений.

👇 В этом посте мы покажем, как быстро настроить планировщик задач, используя Rocketry.

1⃣ Установите Rocketry

Для начала установите Rocketry с помощью pip:

pip install rocketry


2⃣ Напишите первый планировщик задач

Создайте файл, например, scheduler.py, и добавьте в него следующий код:
from rocketry import Rocketry
from rocketry.conds import daily

app = Rocketry()

@app.task(daily)
def do_daily():
print("Эта задача выполняется каждый день!")

if __name__ == '__main__':
app.run()


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

3⃣ Запуск задач

После написания кода запустите его с помощью Python:
python scheduler.py


Теперь ваша задача будет выполняться каждый день.

4⃣ Настройка различных условий

Rocketry позволяет настраивать задачи с использованием различных условий.

▶️ Задача, выполняющаяся каждые 10 секунд:
@app.task(every("10 seconds"))
def do_continuously():
print("Эта задача выполняется каждую секунду!")


▶️ Задача, выполняющаяся каждый день после 7:00:
@app.task(daily.after("07:00"))
def do_daily_after_seven():
print("Эта задача выполняется каждый день после 7:00!")


▶️ Задача, выполняющаяся каждый час между 22:00 и 06:00:
@app.task(hourly & time_of_day.between("22:00", "06:00"))
def do_hourly_at_night():
print("Эта задача выполняется каждый час ночью!")


▶️ Задача, выполняющаяся по cron-выражению:
@app.task(cron("* 2 * * *"))
def do_based_on_cron():
print("Эта задача выполняется по cron-выражению!")


5⃣ Пайплайнинг задач

Rocketry поддерживает пайплайнинг задач — передача данных между задачами:
from rocketry.conds import daily, after_success
from rocketry.args import Return

@app.task(daily.after("07:00"))
def do_first():
return 'Hello World'

@app.task(after_success(do_first))
def do_second(arg=Return('do_first')):
print(f"Задача 'do_first' вернула: {arg}")
return 'Hello Python'


6⃣ Параллельное выполнение задач

Rocketry поддерживает выполнение задач в разных режимах: синхронно, асинхронно, в отдельных потоках и процессах:
@app.task(daily, execution="main")
def do_unparallel():
print("Эта задача выполняется синхронно.")

@app.task(daily, execution="async")
async def do_async():
print("Эта задача выполняется асинхронно.")

@app.task(daily, execution="thread")
def do_on_separate_thread():
print("Эта задача выполняется в отдельном потоке.")

@app.task(daily, execution="process")
def do_on_separate_process():
print("Эта задача выполняется в отдельном процессе.")


▶️ С помощью Rocketry вы можете автоматизировать задачи с минимальными усилиями, будь то для небольших проектов или для масштабных приложений.

Библиотека питониста #буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

⌨️ Топ-вакансий для питонистов за неделю

Python-разработчик — от 300 000 ₽, удалёнка

Senior Python Developer (KernelCare), удалёнка

Python-разработчик, удалёнка

Python Developer — от 220 000 ₽, удалёнка

Junior Python developer — от 100 000 до 130 000 ₽, офис (Москва)

➡️ Еще больше топовых вакансий — в нашем канале Python jobs

Библиотека питониста

Читать полностью…

Библиотека питониста | Python, Django, Flask

Есть ли в Python сборщик мусора, и, если есть, как он работает?

Стандартный интерпретатор использует несколько алгоритмов.

🧹 Подсчёт ссылок. Каждый объект в Python содержит внутренний счётчик ссылок. Когда он падает до нуля, это означает, что на объект больше нет ссылок, его можно удалить. Главный недостаток этого алгоритма — не умеет определять циклические ссылки.
🧹 Алгоритм поиска циклов. Реализован в модуле gc и активируется время от времени, а не постоянно. Если коротко, этот алгоритм периодически ищет объекты, которые ссылаются только друг на друга и не доступны извне. Объекты, признанные недостижимыми, удаляются.
Также стоит добавить, что циклический сборщик мусора делит объекты на три поколения в зависимости от того, как долго они существуют в памяти. Новые объекты помещаются в первое поколение. Если они сохраняются после очередного процесса сбора мусора, то перемещаются в следующее по старшинству поколение. Объекты в более старших поколениях проверяются реже.

Читать полностью…
Subscribe to a channel