ru
Feedback
Программистика

Программистика

Закрытый канал

Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager

Больше
5 579
Подписчики
-324 часа
-427 дней
-12830 день
Архив постов
🖥 pre-commit — ваш автоматический код-ревьюер. Эта библиотека превращает Git-хуки в мощную систему контроля качества кода. В
🖥 pre-commit — ваш автоматический код-ревьюер.
Эта библиотека превращает Git-хуки в мощную систему контроля качества кода. Вместо ручного запуска линтеров перед каждым комитом, pre-commit автоматически проверяет изменения на качество — будь то синтаксические ошибки в Python или форматирование SCSS-файлов.
🖥 Ссылка на GitHub Программистика|| #Репозиторий

👩‍💻 codecademy.com Интерактивная платформа, предлагающая бесплатный курс для начинающих, который познакомит вас с основами
👩‍💻 codecademy.com Интерактивная платформа, предлагающая бесплатный курс для начинающих, который познакомит вас с основами Python
🌐 Ссылка
Программистика || #Ресурсы

👀 FastAPI: веб-разработка на Python FastAPI — относительно новый, но надежный фреймворк с чистым дизайном, использующий преи
👀 FastAPI: веб-разработка на Python
FastAPI — относительно новый, но надежный фреймворк с чистым дизайном, использующий преимущества актуальных возможностей Python. Как следует из названия, FastAPI отличается высоким быстродействием и способен конкурировать в этом с аналогичными фреймворками на таких языках, как Golang. Эта практическая книга расскажет разработчикам, знакомым с Python, как FastAPI позволяет достичь большего за меньшее время и с меньшим количеством кода.
Программистика || #doc

👀 Основы динамики сооружений с применением Python Курс знакомит с основами динамики сооружений, рассматриваются системы с од
👀 Основы динамики сооружений с применением Python Курс знакомит с основами динамики сооружений, рассматриваются системы с одной и несколькими степенями свободы, их свободные и вынужденные колебания, в том числе с учетом демпфирования. Расчеты реализованы с использованием языка программирования Python.
🌐 Ссылка
Программистика || #Course

👩‍💻 uv: pip на стероидах — ставит пакеты в 100 раз быстрее Устал ждать, пока pip устанавливает зависимости? uv — это менеджер пакетов на Rust, который делает pip смешным. Там, где pip думает 30 секунд, uv справляется за полсекунды. Установка библиотек, создание виртуальных окружений, разрешение зависимостей — всё летает. Он полностью совместим с pip и poetry, поддерживает pyproject.toml и работает так же просто. Просто меняешь pip на uv pip в команде и получаешь невероятную скорость без изменения workflow. Установка:
curl -LsSf https://astral.sh/uv/install.sh | sh
Использование:
uv venv                      # Создать виртуальное окружение
uv pip install requests      # Установить пакет
uv pip sync requirements.txt # Синхронизировать зависимости
Программистика || #doc

👀 Практикум по статистике на Python Курс позволит закрепить базовые знания статистики и широко применяемых статистических ме
👀 Практикум по статистике на Python Курс позволит закрепить базовые знания статистики и широко применяемых статистических методов на практических тестах и заданиях, в том числе с использованием Python (pandas, numpy, scipy, statsmodels, matplotlib).
🌐 Ссылка
Программистика || #Course

Python – это просто. Пошаговое руководство по программированию и анализу данных Рассмотрены основы синтаксиса языка Python на
Python – это просто. Пошаговое руководство по программированию и анализу данных Рассмотрены основы синтаксиса языка Python на примере дистрибутива Anaconda. Показаны приложения IPython, Spyder IDE, Jupyter Notebook. Описан синтаксис переменных, функций, циклов. Подробно изучаются структуры данных в Python: строки, списки, кортежи, множества и словари. Объясняется понятие классов и их применение в объектно-ориентированном программировании. Описаны возможности библиотеки обработки изображений Pillow, библиотеки Tkinter для создания приложений с графическим интерфейсом. Отдельный раздел посвящен обработке ошибок и исключений в программах. Рассматриваются библиотеки NumPy и Pandas, приводятся практические примеры их использования для анализа и обработки данных. Описана библиотека Matplotlib и ее возможности в сфере визуализации данных. Программистика || #Книги

Джуны — всё, ИИ победил. По статистике BCG, за последний год компании выбросили на улицу 75% молодняка. При этом миддлам и се
Джуны — всё, ИИ победил. По статистике BCG, за последний год компании выбросили на улицу 75% молодняка. При этом миддлам и сеньорам зарплаты подняли в 4 (!) раза. Чтобы подняться до уровня элит в аномально короткие сроки — подпишитесь на легендарные каналы для айтишников: Новости и инсайды Фронтенд разработка ИИ и биг дата Node js Вёрстка Питон и нейросети QA-тестировщики Там раскрыли инфу из курсов общей стоимостью 5.000.000р в эксклюзивных пошаговых инструкциях. Пока остальные пойдут на дно якорем, вы войдете в 10% тех, кто сломал систему.

Что произойдёт, если забыть await перед asyncio.sleep(1)?
Anonymous voting

👩‍💻 asyncio debugging — почему task зависла и не выполнится Ты добавил async/await, но задача так и не закончилась. Event loop крутится, а результата нет. И непонятно, где искать проблему — никаких ошибок, просто тишина. 🧱 Главные причины, почему task зависает 🟢 Забыл `await` — корутина вообще не запустилась:
async def fetch_data():
    asyncio.sleep(1)  # ❌ без await не работает
    return "done"
Корутина создана, но не выполняется. Python даже warning не покажет, пока объект не удалится из памяти. 🟢 Используешь блокирующие вызовы — event loop встал:
async def process():
    time.sleep(2)  # ❌ блокирует весь loop
Все остальные task'и ждут, пока этот завершится. Используй await asyncio.sleep() или loop.run_in_executor() для синхронного кода.[4][5][6] 🟢 Создал task, но не дождался его завершения:
async def main():
    asyncio.create_task(work())
    # main() закончился → task убит
Task запустился, но main завершился раньше — незавершённые задачи просто отбрасываются. ✔️ Нужно так:
task = asyncio.create_task(work())
await task  # или asyncio.gather()
🟢 Бесконечный цикл без `await` внутри:
async def loop_task():
    while True:
        do_something()  # нет await
Event loop не может переключиться на другие задачи — они зависнут навсегда.[9] 📌 Как правильно дебажить 1️⃣ Включи debug mode — сразу увидишь проблемы:
asyncio.run(main(), debug=True)
или через переменную окружения:
PYTHONASYNCIODEBUG=1 python script.py
Покажет:
🟢 где корутина создана, но не awaited 🟢 какие task'и выполняются слишком долго (> 100ms) 🟢 где нарушена thread-safety
2️⃣ Отслеживай "долгие" task'и вручную:
import time

TASK_DICT = {}

async def monitor_tasks(limit_sec=3):
    while True:
        for task in asyncio.all_tasks():
            name = task.get_name()
            if name not in TASK_DICT:
                TASK_DICT[name] = time.monotonic()
            duration = time.monotonic() - TASK_DICT[name]
            if duration > limit_sec:
                print(f'{name} зависла: {duration:.2f}s')
        await asyncio.sleep(1)
Такой подход ловит задачи, которые живут слишком долго, даже если они не завершились. 3️⃣ Используй `asyncio.wait_for()` с таймаутом:
try:
    result = await asyncio.wait_for(slow_task(), timeout=5.0)
except asyncio.TimeoutError:
    print("Task застряла!")
4️⃣ Логируй всё подозрительное:
import logging
logging.basicConfig(level=logging.DEBUG)

async def risky_task():
    logging.debug("Task started")
    await something()
    logging.debug("Task done")
Если второе сообщение не появилось — знаешь, где искать. 🧪 Бонус: отлов незавершённых задач при выходе
async def main():
    try:
        await asyncio.gather(task1(), task2())
    finally:
        tasks = [t for t in asyncio.all_tasks() if not t.done()]
        for task in tasks:
            task.cancel()
        await asyncio.gather(*tasks, return_exceptions=True)
💡 Запомни:
📌 Без await корутина не запустится — только создастся объект 📌 Блокирующий код = застывший event loop 📌 Debug mode обязателен во время разработки 📌 asyncio.wait_for() с таймаутом спасает от вечного ожидания 📌 Незавершённые task'и при выходе из main — это утечка и баг
Программистика || #Статья

⚡️ Linux и DevOps теперь в Telegram! Ребята делают реально классный канал про IT — просто, понятно и без воды. О Linux, DevOp
+4
⚡️ Linux и DevOps теперь в Telegram! Ребята делают реально классный канал про IT — просто, понятно и без воды. О Linux, DevOps, разработке, безопасности и инструментах, которые помогают работать эффективнее. Подписывайтесь: @recura_tech

👩‍💻 Структуры данных в Python — cheat sheet Программистика || #doc
+4
👩‍💻 Структуры данных в Python — cheat sheet Программистика || #doc

Что такое метакласс в Python?
Anonymous voting

👀 Сохрани меня, если сможешь: модули и файлы в Python Вы узнаете, как сохранять и читать данные, разбивать код на удобные ча
👀 Сохрани меня, если сможешь: модули и файлы в Python Вы узнаете, как сохранять и читать данные, разбивать код на удобные части, использовать сторонние библиотеки, управлять зависимостями и работать с виртуальным окружением. Курс идеально подходит для выпускников «Функционального программирования на Python» и всех, кто хочет перейти от простых скриптов к созданию настоящих Python-проектов!
🌐 Ссылка
Программистика || #Course

⚡️⚡️Новую базу курсов слили в сеть — хакеры снова выложили в паблик тонну курсов по IT от онлайн школ. Материала почти на пол
⚡️⚡️Новую базу курсов слили в сеть — хакеры снова выложили в паблик тонну курсов по IT от онлайн школ. Материала почти на пол-терабайта, мы загрузили всё на канал, там есть: 🐍 Python и нейросети (28 полных курсов + библиотеки) 📈 Data Analysis + машинное обучение (15 курсов) 👨🏻‍💻 Frontend (от JS до React) — (20 курсов + библиотеки) 🤖 Backend + базы Данных (30 курсов) 🛡 Информационная безопасность (Защита+Атака) — (14 курсов) 🎮 Разработка игр (11 курсов) Всё можно забрать бесплатно и смотреть без скачивания ➡️ @IT_SLIV

Что хотите больше видеть на канале?
Anonymous voting

👀 Базовые алгоритмы. Реализация на Python и C++ на примере классических игр В книге дается базовая алгоритмическая подготовк
👀 Базовые алгоритмы. Реализация на Python и C++ на примере классических игр В книге дается базовая алгоритмическая подготовка, классические алгоритмы разобраны одновременно на двух языках — C++ и Python на примере широко известных и интуитивно понятных компьютерных игр. Наглядно излагается реализация циклов, перебора, рекурсии, эвристики, рассматривается работа с деревьями решений, на примере шахмат предлагается знакомство с прямоугольными координатами, дается введение в самообучающиеся алгоритмы. Книга ориентирована как на начинающих программистов, так и на читателей, планирующих перейти на C++ или Python как на второй язык. Примеры, рассмотренные в книге, помогут сделать первые шаги на пути к профессиональному программированию игр. Программистика || #Книги

👩‍💻 Type Hints без иллюзий: Python не станет статически типизированным Все ставят type hints везде, думают, что это сделает код быстрее или предотвратит ошибки в runtime. Спойлер: нет. Type hints — это подсказки для тебя и для инструментов, а не для Python. 🧱 Типичные заблуждения 🟡 "Type hints делают код быстрее"
def add(a: int, b: int) -> int:
    return a + b

add("hello", "world")  # Работает! Python игнорирует hints
Результат: Python полностью игнорирует type hints в runtime. Никакой проверки, никакого ускорения. 🟡 "Type hints защищают от ошибок"
def greet(name: str) -> str:
    return f"Hello, {name}"

greet(123)  # Работает без ошибок!
Python не проверяет типы. Нужен mypy или pyright. 🟡 "Type hints нужны везде"
x: int = 5
y: str = "hello"
z: bool = True
Результат: захламлённый код. Type hints нужны где есть неочевидность, а не везде подряд. 🟡 "Hints замедляют код" На самом деле: минимальный overhead только при загрузке модуля. В runtime — ноль влияния. 📌 Зачем они РЕАЛЬНО нужны 1️⃣ IDE видит типы → автодополнение работает Без hints:
def process_data(data):
    return data.split()  # IDE не знает, что у data есть .split()
С hints:
def process_data(data: str) -> list[str]:
    return data.split()  # IDE знает, что data это str
Результат: автодополнение, подсказки методов, меньше ошибок при написании. 2️⃣ Статические анализаторы (mypy, pyright) ловят баги ДО запуска
def add_numbers(a: int, b: int) -> int:
    return a + b

result = add_numbers(5, "10")  # mypy/pyright: ERROR!
Запускаешь mypy script.py → видишь ошибку до запуска кода.[1][3] 3️⃣ Документация "в коде" Без hints:
def fetch_user(user_id):
    # Что такое user_id? str? int? UUID?
    pass
С hints:
def fetch_user(user_id: int) -> dict[str, Any]:
    # Понятно: на вход int, на выход словарь
    pass
Результат: код читается как документация.[5][3] 4️⃣ Снижение багов в production Пример из AI/ML:
def train_model(data):
    # Кто-то передал NumPy array вместо PyTorch tensor
    # Код упал через 3 часа обучения
    pass
С hints:
import torch

def train_model(data: torch.Tensor) -> None:
    # mypy сразу покажет ошибку, если передать не Tensor
    pass
Результат: ошибки ловятся на этапе разработки, а не в production. 📌 Как правильно использовать 1️⃣ Базовые типы
def greet(name: str, age: int) -> str:
    return f"{name} is {age} years old"

# Переменные (редко нужно)
x: int = 5
2️⃣ Списки, словари, множества Python 3.9+:
def process_items(items: list[str]) -> dict[str, int]:
    return {item: len(item) for item in items}

# Старый синтаксис (не используй)
from typing import List, Dict
def process_items(items: List[str]) -> Dict[str, int]:
    pass
3️⃣ Optional (может быть None)
def find_user(user_id: int) -> str | None:
    # Может вернуть str или None
    if user_id > 0:
        return "Alice"
    return None
4️⃣ Union
def process_input(data: int | str) -> str:
    if isinstance(data, int):
        return str(data)
    return data
5️⃣ Callable
from collections.abc import Callable

def execute(func: Callable[[int, int], int], a: int, b: int) -> int:
    return func(a, b)

execute(lambda x, y: x + y, 5, 3)  # OK
6️⃣ Generics
from typing import TypeVar

T = TypeVar('T')

def first_element(items: list[T]) -> T | None:
    return items[0] if items else None

result = first_element([1, 2, 3])  # result: int | None
📌 Инструменты для проверки типов Mypy — классика, написан на Python:
pip install mypy
mypy script.py
Pyright — от Microsoft, очень быстрый:
pip install pyright
pyright script.py
1. Не пиши hints везде
# Плохо
x: int = 5
y: str = "hello"

# Хорошо
x = 5  # Очевидно
y = "hello"  # Очевидно
2. Пиши hints для функций
# Хорошо
def calculate_total(price: float, quantity: int) -> float:
    return price * quantity
💡 Запомни:
👉 Type hints — для инструментов, не для Python 👉 Python игнорирует hints в runtime 👉 Нужен mypy/pyright для проверки
Программистика || #Статья

🖥 AI Math Notes - это интерактивное приложение, которое позволяет рисовть математические формулы на доске и получитать решения.
Как только уравнение написано, приложение использует мультимодальный LLM для его решения. Приложение построено с использованием Python с библиотекой Tkinter для графического интерфейса пользователя и PIL для обработки изображений.
🐱 Ссылка на GitHub Программистика || #Library