ch
Feedback

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

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

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

关闭频道

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

显示更多
5 768
订阅者
-324 小时
-137 天
-6530 天
帖子存档
✂️ Секрет `removeprefix` и `removesuffix`: обрезай строки без срезов и условий Устали удалять начало или конец строки через срезы и проверки? В Python 3.9+ есть два метода, которые делают это элегантно. ❌ Было (костыль со срезами):
url = "https://example.com"
if url.startswith("https://"):
    url = url[8:]  # знай длину префикса наизусть

filename = "report.pdf"
if filename.endswith(".pdf"):
    filename = filename[:-4]  # и суффикс отрезать вручную
✔️ Стало (чисто и безопасно):
url = "https://example.com"
url = url.removeprefix("https://")  # "example.com"

filename = "report.pdf"
filename = filename.removesuffix(".pdf")  # "report"
🟢 Почему круто: - Не нужно считать символы и помнить длину. - Если префикса/суффикса нет, строка возвращается без изменений (никаких ошибок). - Работает быстрее, чем проверка + срез. Где пригодится: обработка URL, имён файлов, логов, API-ответов. Запомни: removeprefix() и removesuffix() — твои друзья для чистой работы со строками. Программистика|| #tips

Что почитать разработчику? Разборы Алексея Рыбака Пишете backend и хотите глубже понимать архитектурные решения? В канале Алексея Рыбака есть что разобрать: • Микросервисы – какой ценой? Почему они могут стать неподъёмным «налогом» для стартапа • Очереди сообщений – что выбрать? Чем отличаются решения и для каких задач подходят • AI – помощь или новая нагрузка? Как меняется работа мейнтейнеров PostgreSQL, когда генерировать отчёты об ошибках становится проще, чем проверять А ещё – System Design Framework, производительность, масштабируемость и блокировки СУБД. В канале выходят и анонсы AI-митапов и обучения разработке с агентами Начните с интересующей темы и подписывайтесь на канал Алексея! Подписаться #реклама 16+ О рекламодателе

💻 Вопрос с собеседования: Чем отличается `isinstance()` от `type()`? Этот вопрос задают, чтобы проверить, понимаете ли вы разницу между точным типом и проверкой на принадлежность к иерархии классов. Новички часто используют type() для проверки, а потом удивляются, почему код не работает с наследниками. Разбираемся. 📌 Базовый ответ (которого ждут от джуна): - type(obj) возвращает точный тип объекта. - isinstance(obj, Class) проверяет, является ли объект экземпляром указанного класса или его наследником.
class Animal:
    pass

class Dog(Animal):
    pass

d = Dog()

print(type(d) is Dog)        # True
print(type(d) is Animal)     # False
print(isinstance(d, Dog))    # True
print(isinstance(d, Animal)) # True — потому что Dog наследуется от Animal
🧱 Глубокий разбор (для мидла и сеньора): 1. Почему `type()` опасен для проверок Если вы пишете if type(obj) == MyClass, вы отсекаете всех наследников. Это почти всегда ошибка, потому что нарушает принцип подстановки Лисков.
def process_animal(animal):
    if type(animal) is Animal:   # ❌ не пропустит Dog
        print("Обрабатываю животное")
✔️ Правильно: используйте isinstance(animal, Animal). 2. `isinstance` и виртуальные подклассы (ABC) isinstance умеет работать с абстрактными базовыми классами и виртуальными подклассами. Например, list является виртуальным подклассом collections.abc.Iterable, даже если не наследуется от него явно.
from collections.abc import Iterable

print(isinstance([], Iterable))  # True — хотя list не наследуется от Iterable напрямую
3. Ловушка с `bool` и `int` bool является подклассом int. Поэтому isinstance(True, int) вернёт True. Если вы ожидаете только целые числа, это может привести к багам.
print(isinstance(True, int))  # True
print(type(True) is int)      # False — type() покажет bool
4. `isinstance` принимает кортеж классов Можно проверить сразу несколько типов:
if isinstance(obj, (int, float)):
    print("Число")
5. `type()` полезен, когда нужен точный тип Например, в сериализации или при создании фабрик, где наследники должны обрабатываться отдельно.
if type(obj) is dict:
    # обрабатываем именно dict, а не OrderedDict
⚠️ Частые ошибки 1. Использовать `type()` для проверки типов — ломает наследование. 2. Забывать про `bool`/`int` — isinstance(True, int) → True. 3. Путать `isinstance` с `issubclass` — issubclass проверяет классы, а не экземпляры. 4. Игнорировать виртуальные подклассы — isinstance работает с ABC и протоколами. 💡 Итоговый ответ для собеседования: 1. type(obj) — точный тип, isinstance(obj, cls) — с учётом наследования. 2. Для проверок в 99% случаев используйте isinstance. 3. type() — только когда нужен именно точный тип (редко). 4. isinstance поддерживает кортежи классов и виртуальные подклассы (ABC). 5. Помните, что bool — подкласс int, это частая ловушка. Удачи на собеседованиях! 🔥🔥 Программистика|| #jobs

📊 Библиотека Python: Polars Polars — это сверхбыстрая библиотека для обработки данных, написанная на Rust. Она создана как с
📊 Библиотека Python: Polars Polars — это сверхбыстрая библиотека для обработки данных, написанная на Rust. Она создана как современная альтернатива Pandas и использует все ядра процессора, ленивые вычисления и эффективную работу с памятью. Polars позволяет обрабатывать датасеты, которые не помещаются в оперативную память, и работает в разы быстрее Pandas на больших объёмах. Идеально для ETL-пайплайнов, аналитики и ML-подготовки данных. ✔️ Установка:
pip install polars
🐱 Ссылка на репозиторий Программистика|| #Library

Комментарии к заказу меняют сумму SQL-отчета. Где ошибка? Для проверки учебного практикума "Сбой найден" нужны пять разработчиков с базовыми знаниями SQL. Бесплатная выборка содержит одно упражнение с намеренно неверным кодом, независимыми проверками и эталоном, а также десять карточек backend-сбоев. Для запуска достаточно Python 3.11+ со стандартным sqlite3; отдельный сервер и установка зависимостей не нужны. Формат рецензии --- 40-60 минут: самостоятельная попытка исправления, затем карточки и короткая обратная связь. Нужны конкретные замечания: что удалось воспроизвести, где не хватает объяснений, какие проверки вызывают вопросы. Покупка и положительный отзыв не требуются. Это бесплатная выборка коммерческого каталога, а не доступ ко всему продукту. Данные синтетические. Получение выборки и согласование участия: https://tglink.io/66cad5e7c97912?erid=2W5zFHf3drh Код обращения: SQL-1. Реклама. Романов С.Г. ИНН 772589517063.

Марафон данных: первое знакомство с SQL и Python Этот курс для тех, кто хочет познакомиться с профессией аналитика данных. Ес
Марафон данных: первое знакомство с SQL и Python Этот курс для тех, кто хочет познакомиться с профессией аналитика данных. Если вы никогда ранее не сталкивались с SQL, Python и продуктовыми метриками, то Data Марафон – для вас! Мы расскажем про самые важные инструменты аналитика данных, и объясним всю суть аналитической работы максимально просто и на реальных примерах.
🌐 Ссылка
Программистика || #Course

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

🫥 Сервис запустили - пора принимать поздравления и платежи С платежами поможет pay.hot. Подключаем оплату на сайте, в прилож
🫥 Сервис запустили - пора принимать поздравления и платежи С платежами поможет pay.hot. Подключаем оплату на сайте, в приложении или Telegram: - СБП - Банковские карты РФ - Международные банковские карты 🫥 Можно подключиться без ИП и ООО в России, а выручку получать в USDT. 🫥 Работаем с пополнением Steam, донатами в игры, digital-сервисами, Таро-ботами, магазинами цифровых товаров, хостингами и нейросервисами. 🫥 Согласование и подключение - обычно до 7 часов. Поддержка на связи 24/7. 🫥 Кстати, у нас есть агентская программа. Если знаете проекты, которым нужен приём платежей, можете помогать им подключаться к pay.hot и получать агентское вознаграждение. 🫥 Расскажите о своём проекте: @payhotsupport_bot

👩‍💻 Python 3.15 — Новая эра производительности Вышла новая версия Python, и это не просто «ещё один апдейт». Python 3.15 приносит изменения, которые реально ускоряют код и меняют то, как мы пишем программы. Разбираем главное.
📱 Первоисточник
Программистика|| #video

💀 Почему вы копипастите из ИИ и не растёте Вы открываете ChatGPT или Claude. Пишете: «напиши функцию для парсинга JSON». Коп
💀 Почему вы копипастите из ИИ и не растёте Вы открываете ChatGPT или Claude. Пишете: «напиши функцию для парсинга JSON». Копируете. Вставляете. Работает. Через месяц вы не можете написать эту функцию без ИИ. Через год — не помните, как она работает. Знакомо? Тогда эта статья для вас. Только честно, без утешений. 🧱 Почему так происходит ИИ даёт вам готовое решение. Мозг получает дофамин: «я справился». Но вы не прошли путь от проблемы к решению. Вы пропустили самую важную часть — мышление. Когда вы пишете код сами, вы:
- обдумываете структуру - ошибаетесь - ищете причину ошибки - находите решение - запоминаете паттерн
Когда вы копируете из ИИ, вы:
- получаете результат - не понимаете, как он работает - не можете его изменить, если что-то сломается - не учитесь
📌 Правило: прежде чем вставить код от ИИ — разберитесь, что он делает и почему именно так. Попросите нейросеть объяснить построчно. Это займёт 5 минут и спасёт вашу карьеру. 🗣 ИИ — это инструмент, а не замена пониманию
ИИ не делает вас программистом. Он делает вас быстрее, если вы уже понимаете, что делаете. Но если вы не понимаете — он делает вас беспомощным. На собеседовании вас не спросят: «умеете ли вы пользоваться ChatGPT?». Вас спросят: «объясните, как работает этот код». И если вы не можете — вы не прошли.
📌 Правило: используйте ИИ как ускоритель, а не как костыль. Сначала попробуйте сами, потом проверьте у ИИ. Не наоборот. ♾ Как использовать ИИ правильно
1. Пишите код сами, даже если медленно. Это единственный способ научиться. 2. Используйте ИИ для ревью — покажите свой код и спросите, что можно улучшить. 3. Просите объяснить — «объясни построчно, что делает этот код». 4. Сравнивайте решения — напишите свой вариант, потом посмотрите, как сделал ИИ. 5. Задавайте вопросы — «почему именно так?», «какие есть альтернативы?».
ИИ — это не шпаргалка. Это репетитор, который отвечает на вопросы. Но если вы просто списываете — вы не учитесь. Если зашла такая рубрика ставь реакцию 🔥? Программистика|| #Статья

REKONFA: что интересного вас ждёт 15 октября 15 октября встречаемся на REKONFA — большой конференции Яндекс Рекламы. На сцене: — Глеб Доброрадных — о рекламном рынке и эффективности в сложных условиях — Алексей Штоколов — о новых продуктах и технологиях — Лиза Смирнова — о 360°-форматах и новых точках контакта — Александр Пушной — о человеке и ИИ — Александр Умаров — о персональном подходе, который помогает влюблять клиентов в бренд — Яна Чурикова — об актуальных задачах предпринимателей — Татьяна Мужицкая — о целях и энергии — Антон Беляев — об индивидуальности и проектах, которые любят зрители Вне сцены — зона продуктов Яндекс Рекламы, три игры, викторина, зоны Яндекс Ярда и eLama и нетворкинг. 15 октября, Москва, ВТБ Арена и онлайн. Участие бесплатное. Зарегистрироваться #реклама 16+ ya.rekonfa.ru О рекламодателе

🔍 `dir()` и `vars()`: смотрим содержимое объекта как рентген Часто нужно быстро понять, что внутри объекта: какие у него атрибуты, методы, значения. Вместо гуглинга и чтения документации есть два встроенных инструмента, которые дают ответ за секунду. `dir(obj)` — показывает все атрибуты и методы объекта.
class User:
    def __init__(self, name):
        self.name = name
    def greet(self):
        return f"Привет, {self.name}"

u = User("Алиса")
print(dir(u))
# ['__class__', '__delattr__', ..., 'greet', 'name']
🟢 Показывает и пользовательские атрибуты, и встроенные (магические методы). 🟢 Идеально, когда не помнишь, какие методы есть у объекта. `vars(obj)` — возвращает __dict__ объекта: только пользовательские атрибуты и их значения.
print(vars(u))  # {'name': 'Алиса'}
🟢 Показывает именно данные, без методов и магии. 🟢 Работает с объектами, модулями и классами (у которых есть __dict__). 🟢 Если у объекта нет __dict__ (например, число), будет TypeError. Разница на пальцах: - dir() — что объект может (методы + атрибуты). - vars() — что объект хранит (только данные). Бонус: vars() без аргумента возвращает локальные переменные текущей области.
x = 10
y = 20
print(vars())  # {'x': 10, 'y': 20, ...}
Запомни: dir() — для исследования, vars() — для данных. Оба инструмента экономят часы отладки. Программистика|| #tips

📖 Вычислительные методы на Python в 2-х книгах Учебное пособие представляет собой базовый курс по программированию на Python
📖 Вычислительные методы на Python в 2-х книгах
Учебное пособие представляет собой базовый курс по программированию на Python и предназначено для формирования практических навыков автоматизации вычислений и анализа данных. Книга 1 знакомит с базовыми понятиями, синтаксисом и конструкциями языка, закладывая фундамент алгоритмического мышления. Книга 2 дает представление об основных возможностях библиотек NumPy и pandas для работы с данными. Пособие содержит практические примеры и блоки упражнений для закрепления навыков программирования.
Программистика || #Книги

Пачку офферов заказывали? О всех трудоустройствах через ИИ-ассистента Софи ребята узнают от пользователей. И какой же кайф, к
Пачку офферов заказывали? О всех трудоустройствах через ИИ-ассистента Софи ребята узнают от пользователей. И какой же кайф, когда они делятся своими историями. Вот так в чате узнали сразу о трех новых офферах: • Кейс Сергея - 2 недели в Софи и 2 оффера. • Кейс Елены - 1 неделя в Софи и оффер спустя 10 лет перерыва в работе. Елене 52 года. • Кейс Юлии - 1 месяц в Софи, свитчер из финансового аналитика в разработчика SQL. И еще один оффер🎉 Искренние поздравления ребятам и удачи им на новой работе! Доступ в Софи закрывается через 36 часов. Первые 3 дня - бесплатно. Успевай зарегистрироваться здесь.

👩‍💻 Библиотека Python: msgspec msgspec — это сверхбыстрая библиотека для сериализации и валидации данных. Поддерживает JSON
👩‍💻 Библиотека Python: msgspec msgspec — это сверхбыстрая библиотека для сериализации и валидации данных. Поддерживает JSON, MessagePack, YAML и TOML. Работает в 2–10 раз быстрее стандартного json и pydantic за счёт оптимизаций на C. Позволяет описывать структуры через аннотации типов (как в dataclass) и автоматически валидировать входящие данные. Идеальна для высоконагруженных API, микросервисов и обработки больших объёмов данных. ✔️ Установка:
pip install msgspec
🐱 Ссылка на репозиторий Программистика|| #Library

Ищете облачную платформу? Есть Beget ✅ Аптайм 99,98% в дата-центрах Tier III ✅ Техподдержка 24/7 — живые люди, без ботов ✅ Пр
Ищете облачную платформу? Есть Beget ✅ Аптайм 99,98% в дата-центрах Tier III ✅ Техподдержка 24/7 — живые люди, без ботов ✅ Прозрачная оплата без скрытых платежей ✅ Более 200 000 клиентов доверяют Beget Узнать больше

🧠 Отгадка: что выведет этот код?
class A:
    def __init__(self):
        print("A", end=" ")

class B(A):
    def __init__(self):
        print("B", end=" ")
        super().__init__()

class C(A):
    def __init__(self):
        print("C", end=" ")
        super().__init__()

class D(B, C):
    def __init__(self):
        print("D", end=" ")
        super().__init__()

D()
✔️ Правильный ответ: 1. `D B C A` 📖 Почему так происходит? Здесь работает MRO (Method Resolution Order) — порядок, в котором Python ищет методы в иерархии классов. Для класса D(B, C) порядок MRO следующий:
D → B → C → A → object
Когда вызывается D(), выполняются цепочки __init__: 1. D.__init__ → печатает D, затем вызывает super().__init__(). 2. super() в контексте D ищет следующий класс после D в MRO — это B. 3. B.__init__ → печатает B, затем вызывает super().__init__(). 4. super() в контексте B ищет следующий после B в MRO — это C. 5. C.__init__ → печатает C, затем вызывает super().__init__(). 6. super() в контексте C ищет следующий после C — это A. 7. A.__init__ → печатает A, затем вызывает super().__init__() (это object, у него нет вывода). Итог: D B C A. Ключевой момент: super() не вызывает «родительский класс» — он вызывает следующий класс в MRO. Именно поэтому цепочка проходит через B, потом C, потом A. Если бы в B или C не было super().__init__(), цепочка бы прервалась. Это классический пример, который проверяет понимание множественного наследования и работы super(). Ставьте 🔥, если было полезно! Программистика|| #quiz

💻 Вопрос с собеседования: Что такое WSGI и ASGI, и в чём разница? Этот вопрос задают на позиции Backend-разработчика, когда хотят понять, разбираетесь ли вы в том, как Python-приложения общаются с веб-серверами. Многие знают, что Django и Flask — это WSGI, а FastAPI — ASGI, но не могут объяснить, что это значит и зачем нужен новый стандарт. 📌 Базовый ответ (которого ждут от джуна): WSGI (Web Server Gateway Interface) — это синхронный стандарт взаимодействия между веб-сервером и Python-приложением. Он описывает, как сервер передаёт запрос приложению и получает ответ. ASGI (Asynchronous Server Gateway Interface) — это асинхронный стандарт, который поддерживает не только HTTP, но и WebSockets, а также позволяет использовать async/await. Проще говоря: WSGI — для синхронных приложений (Django, Flask), ASGI — для асинхронных (FastAPI, Starlette, Django Channels).
# WSGI-приложение (синхронное)
def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    return [b'Hello, WSGI!']

# ASGI-приложение (асинхронное)
async def application(scope, receive, send):
    await send({
        'type': 'http.response.start',
        'status': 200,
        'headers': [(b'content-type', b'text/plain')],
    })
    await send({
        'type': 'http.response.body',
        'body': b'Hello, ASGI!',
    })
🧱 Глубокий разбор (для мидла и сеньора): 1. WSGI: как это работает WSGI-приложение — это вызываемый объект (функция или класс с __call__), который принимает два аргумента: - environ — словарь с данными запроса (метод, путь, заголовки, тело). - start_response — функция для отправки статуса и заголовков. Сервер (Gunicorn, uWSGI) вызывает приложение для каждого запроса. Пока приложение работает, оно блокирует поток. Для конкурентности используют несколько воркеров (процессов) или потоков.
# Пример WSGI-приложения на чистом Python
def app(environ, start_response):
    status = '200 OK'
    headers = [('Content-Type', 'text/plain; charset=utf-8')]
    start_response(status, headers)
    return [b'Hello, world!']
2. ASGI: что нового ASGI-приложение — это асинхронная функция (корутина), которая принимает три аргумента: - scope — словарь с информацией о соединении (тип: http, websocket, lifespan). - receive — асинхронная функция для получения событий (например, тела запроса). - send — асинхронная функция для отправки событий (заголовки, тело). ASGI поддерживает: - HTTP/1.1, HTTP/2, WebSockets. - Асинхронную обработку без блокировки. - Долгоживущие соединения (стриминг, SSE). 4. Как это влияет на выбор фреймворка
- Если у вас обычное синхронное приложение с реляционной БД — WSGI отлично справляется. Django и Flask используют WSGI. - Если нужны WebSockets, высокие нагрузки с множеством одновременных соединений, стриминг — выбирайте ASGI. FastAPI и Starlette работают на ASGI. - Django начиная с версии 3.0 поддерживает ASGI (через Channels), что позволяет использовать асинхронность в традиционном фреймворке.
5. Ловушки и частые ошибки
❌ Смешивать синхронный и асинхронный код без понимания — можно заблокировать event loop. ❌ Использовать WSGI-сервер для ASGI-приложения — не заработает. ❌ Думать, что ASGI всегда быстрее — для простых задач WSGI может быть быстрее и стабильнее. ❌ Забывать про `async` в ASGI-приложении — все функции должны быть корутинами.
💡 Итоговый ответ для собеседования: 1. WSGI — синхронный стандарт для связи веб-сервера и Python-приложения. Используется в Django, Flask. 2. ASGI — асинхронный стандарт, поддерживает WebSockets, HTTP/2, стриминг. Используется в FastAPI, Starlette, Django Channels. 3. WSGI блокирует поток на время обработки запроса, ASGI использует event loop и не блокирует. 4. Для обычных сайтов и API с синхронными операциями WSGI достаточно. Для высоких нагрузок и real-time — ASGI. 5. Выбор фреймворка определяет стандарт: Django/Flask → WSGI, FastAPI → ASGI. Понимание разницы между WSGI и ASGI показывает, что вы разбираетесь в архитектуре веб-приложений, а не просто пишете код. Это ценят на собеседованиях. Удачи на собеседованиях! 🔥🔥 Программистика|| #jobs