ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

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

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

关闭频道

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

显示更多
5 801
订阅者
+3224 小时
+187 天
-4030 天
帖子存档
🖥 simplejson — это библиотека для Python, обеспечивающая простое, быстрое и расширяемое кодирование и декодирование JSON! 🟢
🖥 simplejson — это библиотека для Python, обеспечивающая простое, быстрое и расширяемое кодирование и декодирование JSON! 🟢 Она полностью написана на Python и не имеет внешних зависимостей, но включает необязательное C-расширение для повышения производительности. 🟢Поддерживает Python версии 3.3 и выше, а также имеет обратную совместимость с Python 2.5+.
Программистика||#Репозиторий

Байесовская оптимизация с примерами из библиотек Python Книга рассказывает об оптимизации моделей машинного обучения на основ
Байесовская оптимизация с примерами из библиотек Python
Книга рассказывает об оптимизации моделей машинного обучения на основе байесовского метода и теории вероятностей. Примеры составлены на языке Python с использованием библиотек PyTorch, GPyTorch и BoTorch. Описаны приемы настройки гиперпараметров, гауссовское распределение, использование политик машинного обучения, в частности на основе задачи о многоруких бандитах, повышение производительности вычислений, многовариантная оптимизация с учетом полезности и затрат, а также применение байесовского метода в специализированных сценариях.
Программистика||#doc

Опа, тут бывший сеньор одного из IT-отделов Яндекса Игорь Никитин выкатил целый канал про Python — и это лучшее, что есть в р
Опа, тут бывший сеньор одного из IT-отделов Яндекса Игорь Никитин выкатил целый канал про Python — и это лучшее, что есть в рунете по теме. Качественные гайды. Советы от известных прогеров. Тематические мемасы. Короче, ничего лишнего. Хватит душить питона, учись его кодить: https://t.me/+evJ7pToYSEIwOGZi 🐍

Продуктовый Python — Инженерия Третий курс серии «Продуктовый Python» — о том, как писать надёжный код, работать с базами дан
Продуктовый Python — Инженерия
Третий курс серии «Продуктовый Python» — о том, как писать надёжный код, работать с базами данных, символьными формулами и валидацией данных, используя лучшие библиотеки Python. Курс знакомит с инструментами, о которых аналитики часто забывают или не знают: типизация, SQLModel, SymPy, Pydantic. Вместо изобретения велосипедов — готовые, оптимизированные и проверенные решения.
🌐 Ссылка
Программистика || #Course

🔥Стажировки и вакансии для IT специалистов - Вакансии которых нет на джоб-агрегаторах - Только прямые контакты HR в Telegram
🔥Стажировки и вакансии для IT специалистов - Вакансии которых нет на джоб-агрегаторах - Только прямые контакты HR в Telegram 🤖 ML & DS 👩‍💻 DevOps 👨‍✈️ ИБ & OSINT 👣 Go 👩‍💻 Mobile 👩‍💻 C# 👩‍💻 Node.js 👩‍💻 Python 🔎 QA 👩‍💻 Java 👩‍💻 UX/UI 👩‍💻 Frontend 🖼️ PHP 📋 Analyst 💼 1C 🖥 SQL 👩‍💻 IT HR Пока другие листают джоб-сайты — ты уже пишешь HR в Telegram.

💻 Вопрос с собеседования: Что такое перегрузка операторов и как она работает в Python? Это вопрос для middle и senior уровня. Многие знают, что можно перегрузить + через __add__, но не понимают, как работает вся система. На собеседовании проверяют, знаете ли вы магические методы и можете ли написать класс, который ведёт себя как встроенный тип. 📌 Базовый ответ (которого ждут от джуна): Перегрузка операторов — это возможность определить поведение операторов (+, -, *, ==, < и т.д.) для пользовательских классов через специальные методы (магические методы). Например, __add__ определяет поведение +.
class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    
    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)
    
    def __repr__(self):
        return f"Vector({self.x}, {self.y})"

v1 = Vector(1, 2)
v2 = Vector(3, 4)
v3 = v1 + v2  # Vector(4, 6)
🧱 Глубокий разбор (для мидла и сеньора): 2. Реверсивные операции Если левый операнд не поддерживает операцию, Python вызывает метод правого операнда с r (например, __radd__).
class Number:
    def __init__(self, value):
        self.value = value
    
    def __add__(self, other):
        return Number(self.value + other.value)
    
    def __radd__(self, other):
        return Number(other.value + self.value)

a = Number(5)
b = Number(3)
c = 10 + a  # Вызовет __radd__ у Number (10 + a)
3. `functools.total_ordering` — автоматические сравнения Если определить __eq__ и один из методов сравнения, декоратор @total_ordering сгенерирует остальные.
from functools import total_ordering

@total_ordering
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def __eq__(self, other):
        return self.age == other.age
    
    def __lt__(self, other):
        return self.age < other.age

# __le__, __gt__, __ge__ генерируются автоматически
p1 = Person("Алиса", 30)
p2 = Person("Боб", 25)
print(p1 > p2)  # True (автоматически)
4. Пример полноценного класса с перегрузкой
class Money:
    def __init__(self, amount, currency="USD"):
        self.amount = amount
        self.currency = currency
    
    def __add__(self, other):
        if self.currency != other.currency:
            raise ValueError("Разные валюты")
        return Money(self.amount + other.amount, self.currency)
    
    def __sub__(self, other):
        if self.currency != other.currency:
            raise ValueError("Разные валюты")
        return Money(self.amount - other.amount, self.currency)
    
    def __mul__(self, factor):
        return Money(self.amount * factor, self.currency)
    
    def __eq__(self, other):
        return self.amount == other.amount and self.currency == other.currency
    
    def __lt__(self, other):
        if self.currency != other.currency:
            raise ValueError("Разные валюты")
        return self.amount < other.amount
    
    def __repr__(self):
        return f"{self.amount} {self.currency}"

m1 = Money(100, "USD")
m2 = Money(50, "USD")
print(m1 + m2)      # 150 USD
print(m1 * 2)       # 200 USD
print(m1 > m2)      # True
⚠️ Ловушки и частые ошибки 1. Забыть про `__radd__` — при сложении с числом слева (например, 10 + obj) может не работать. 2. Не проверять типы — __add__ должен проверять, что other — правильного типа. 3. Перегрузка `==` без перегрузки `!=` — != автоматически инвертирует ==, но только если определён __ne__ или Python 3.8+. 4. Сложные сравнения без `@total_ordering` — если определить только __lt__ и __eq__, остальные сравнения не будут работать. 5. Изменяемость и мутация — арифметические операции должны возвращать новый объект, а не изменять существующий. 💡 Итоговый ответ для собеседования: 1. Перегрузка операторов — это определение поведения операторов через магические методы. 2. Основные методы: __add__, __sub__, __mul__, __truediv__, __eq__, __lt__ и т.д. 3. Реверсивные операции (__radd__) важны для поддержки операций с разными типами. 4. @total_ordering генерирует все сравнения по одному-двум методам. 5. Всегда проверяйте типы в __add__ и подобных методах. 6. Арифметические операции должны возвращать новые объекты (immutable). Программистика|| #jobs

Для тех кто просил, канал с мемами для программистов и айтишников 👇 https://t.me/+p4jLz_2jfKY0ZGYy
Для тех кто просил, канал с мемами для программистов и айтишников 👇 https://t.me/+p4jLz_2jfKY0ZGYy

🧠 Каждый может стать программистом?
📱 Первоисточник
Программистика|| #video

🖥 python-genai — это официальный SDK на Python от Google, предназначенный для интеграции генеративных моделей Google AI в пр
🖥 python-genai — это официальный SDK на Python от Google, предназначенный для интеграции генеративных моделей Google AI в приложения! 💡 Основные возможности включают генерацию текста, настройку моделей с помощью системных инструкций, параметры генерации (например, температуры, длины вывода), а также встроенные механизмы безопасности. SDK поддерживает удобную работу с параметрами через словари или модели Pydantic. Также предусмотрена интеграция с пользовательскими функциями для обработки результатов или вызова API.
Программистика||#Репозиторий

🧠 Отгадка: что выведет этот код?
def create_counter():
    count = 0
    def inner():
        nonlocal count
        count += 1
        return count
    return inner

counters = [create_counter() for _ in range(3)]
results = [counter() for counter in counters]
print(results)
✅ Правильный ответ: 1. `[1, 1, 1]` 📖 Почему так происходит? - Функция create_counter при каждом вызове создаёт новую локальную переменную `count` и новое замыкание inner, которое захватывает эту конкретную переменную. - В списковом включении [create_counter() for _ in range(3)] функция вызывается три раза, поэтому создаются три независимых счётчика, каждый со своим собственным count = 0. - Затем [counter() for counter in counters] вызывает каждую из трёх функций. Каждая увеличивает свой count с 0 до 1 и возвращает 1. - В результате получаем [1, 1, 1]. Если бы мы создали один счётчик и вызывали его трижды — получили бы [1, 2, 3]. Но здесь три разных счётчика, поэтому каждый выдаёт 1. Ключевой момент: create_counter возвращает новую функцию с новым замыканием при каждом вызове. Ставьте 🔥, если было полезно! Программистика || #quiz

⏰ Работа с датами и временем в Python: как не сойти с ума с часовыми поясами и форматами Каждый разработчик хотя бы раз сталкивался с магией, когда дата внезапно смещается на день, или время отображается не так, как ожидалось. А если добавить часовые пояса, летнее время и странные форматы из API — голова идёт кругом. Разбираемся, как правильно работать с датами, чтобы код не подводил. 🧱 Почему это сложно: проблема времени Время — это не просто число. Есть: 🟢 Локальное время (зависит от часового пояса). 🟢 UTC (единый стандарт). 🟢 Unix timestamp (секунды с 1970 года). 🟢 Форматы (ISO, RFC, пользовательские). 🟢 Переход на летнее время (DST). 🟢 Часовые пояса с разными смещениями. Python предлагает несколько модулей: datetime, time, calendar, а с Python 3.9+ — zoneinfo для работы с часовыми поясами. 📦 Основные инструменты 1. `datetime` — главный модуль
from datetime import datetime, date, time, timedelta, timezone

# Текущее время
now = datetime.now()          # локальное
now_utc = datetime.now(timezone.utc)  # UTC

# Создание даты
d = date(2024, 12, 31)
t = time(14, 30, 0)
dt = datetime(2024, 12, 31, 14, 30, 0)

# Разница между датами
delta = timedelta(days=5, hours=3)
new_date = dt + delta
2. `time` — низкоуровневые функции
import time
timestamp = time.time()  # Unix timestamp (секунды с 1970)
3. `zoneinfo` — часовые пояса (Python 3.9+)
from zoneinfo import ZoneInfo
tz_moscow = ZoneInfo("Europe/Moscow")
dt_moscow = datetime.now(tz_moscow)
📝 Парсинг и форматирование `strptime` — строка → дата
from datetime import datetime

date_str = "2024-12-31 14:30:00"
dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
`strftime` — дата → строка
formatted = dt.strftime("%d.%m.%Y %H:%M")
print(formatted)  # 31.12.2024 14:30
ISO-формат (встроено)
iso_str = dt.isoformat()  # 2024-12-31T14:30:00
dt_from_iso = datetime.fromisoformat(iso_str)
🌍 Часовые пояса: `naive` vs `aware` - Naive — без информации о часовом поясе. Это просто локальное время. - Aware — с информацией о смещении от UTC.
# naive
naive = datetime.now()

# aware
aware = datetime.now(timezone.utc)
aware_moscow = aware.astimezone(ZoneInfo("Europe/Moscow"))
Правило: всегда храните время в UTC, конвертируйте при выводе в нужный часовой пояс. 🧪 Пример: работа с API Допустим, вы получаете дату в формате "2024-12-31T14:30:00Z" (ISO с Z — UTC).
from datetime import datetime

# парсим
dt = datetime.fromisoformat("2024-12-31T14:30:00Z".replace('Z', '+00:00'))

# конвертируем в московское время
moscow = dt.astimezone(ZoneInfo("Europe/Moscow"))
print(moscow.strftime("%d.%m.%Y %H:%M"))  # 31.12.2024 17:30
🧪 Полезные методы
# Начало дня
start_of_day = dt.replace(hour=0, minute=0, second=0, microsecond=0)

# Конец дня
end_of_day = dt.replace(hour=23, minute=59, second=59, microsecond=999999)

# День недели (0 = понедельник)
weekday = dt.weekday()

# Добавление дней
next_week = dt + timedelta(days=7)

# Unix timestamp
ts = dt.timestamp()
dt_from_ts = datetime.fromtimestamp(ts, tz=timezone.utc)
⚠️ Ловушки и частые ошибки 1. Забыть про `timezone.utc` при создании `now()` — получится naive объект. 2. Сравнивать naive и aware — TypeError. Всегда приводите к общему знаменателю. 3. Забыть про DST (летнее время) — при переходе на летнее время в некоторых странах время смещается. zoneinfo учитывает это. 4. Парсить строки без явного формата — используйте ISO или чётко задавайте %Y-%m-%d. 5. Хранить время в локальном времени в БД — храните UTC, а при отображении конвертируйте. 💡 Запомни: Даты и время — не враги, если понимать правила. Главное — хранить UTC, конвертировать при выводе, использовать zoneinfo для часовых поясов и всегда быть внимательным к форматам. Программистика|| #Статья

🧠 Загадка на ночь: что выведет этот код?
def create_counter():
    count = 0
    def inner():
        nonlocal count
        count += 1
        return count
    return inner

counters = [create_counter() for _ in range(3)]
results = [counter() for counter in counters]
print(results)
Варианты: 1. [1, 1, 1] 2. [1, 2, 3] 3. [3, 3, 3] 4. Ошибка Пиши свой вариант в комментарии! Ответ и разбор — через пару часов 🔥 Программистика|| #quiz

❤️‍🔥"Это лютый сетап, бро!" 😤 Так сказал мой друг из Африки, когда увидел этот стол) Не знаю уж че за сетап, меня зовут Саша и качественную необычную мебель из натурального дерева я делаю уже больше 12-ти лет, столько же занимаюсь и темой здоровья. Когда я услышал, что до 10% смертности связано с сидячим образом жизни, меня это поразило и я задался целью делать максимально функциональные и полезные рабочие пространства, ибо геморрой в 30 это конечно довольно нишево, но все же сомнительно 😂 Ну а собрать такой комплект под свои задачи и при этом сразу прикинуть цены вы можете в удобном Mini App конструкторе

Она не ответит, если ты не знаешь Claude Code... В Only AI каждый день кидают AI-инструменты, промпты и связки для кода, рабо
Она не ответит, если ты не знаешь Claude Code... В Only AI каждый день кидают AI-инструменты, промпты и связки для кода, работы и автоматизации. Зайди, пока не поздно.

🖥 Archy — это архитектурный сенсор для Python-кодовых баз, который следит за структурой проекта и не даёт ей «гнить» под наг
🖥 Archy — это архитектурный сенсор для Python-кодовых баз, который следит за структурой проекта и не даёт ей «гнить» под нагрузкой AI-кода. Он строит граф зависимостей модулей в реальном времени и выдаёт единую оценку архитектурного здоровья, показывает циклические зависимости, точки для рефакторинга и модули, которые меняются чаще всего. Работает в CI, pre-commit и как MCP-сервер для AI-агентов.
Установка:
pip install archy.
Программистика||#Репозиторий