uk
Feedback

Не попадись на ботовода! Telemetrio знаходить і позначає такі канали мітками 👉 Хочеш бачити мітку, оформляй підписку

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

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

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

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

Показати більше
5 801
Підписники
+3224 години
+187 днів
-4030 днів
Архів дописів
3 дня. 60 откликов. 1 оффер. Очень интересный кейс произошёл у команды Софи — ии-ассистента для поиска работы. К ним в поддер
3 дня. 60 откликов. 1 оффер. Очень интересный кейс произошёл у команды Софи — ии-ассистента для поиска работы. К ним в поддержку написала девушка, которая отписалась от продукта ещё месяц назад:
«Мне прислали оффер!»
Начали разбираться — оказывается, она пользовалась только 3 тестовыми днями. То есть за 3 дня ии-ассистент успел сделать 60 откликов. Потом она отписалась. А уже позже — из этих откликов её позвали на интервью, и одно из них привело к офферу.
«Оффер с той вакансии, куда я сама никогда бы не откликнулась»
Изначально Аня отменила подписку, так как было дорого. Ребята честно спросили у Ани, считает ли она теперь, что подписка стоит своих денег — и получили утвердительный ответ. В следующий раз доступ в Софи откроется 22 сентября. Если хочешь получить 3 дня бесплатного доступа - подписывайся на этот канал, все анонсы будут там.

Шпаргалка методы списков в Python Программистика|| #doc
Шпаргалка методы списков в Python Программистика|| #doc

photo content

Weekend Offer ML*: быстрый найм в Яндекс Открыли регистрацию на онлайн-мероприятие для ML и DL-специалистов. Мы ищем инженеро
Weekend Offer ML*: быстрый найм в Яндекс Открыли регистрацию на онлайн-мероприятие для ML и DL-специалистов. Мы ищем инженеров с опытом от 2 лет в областях NLP, CV, RecSys и Classic ML. Как всё устроено: ✅ До 4 сентября — регистрация на сайте. ✅ 12 сентября — две технические секции онлайн. ✅ 13 сентября — финальные интервью со знакомством с командами. Ждём вас! Подробности и форма регистрации — на сайте. Зарегистрироваться #реклама 16+ yandex.ru О рекламодателе

🖥 FastSQLA — это асинхронное расширение для SQLAlchemy версии 2.0 и выше, разработанное для интеграции с FastAPI! Оно предос
🖥 FastSQLA — это асинхронное расширение для SQLAlchemy версии 2.0 и выше, разработанное для интеграции с FastAPI! Оно предоставляет готовые шаблоны, поддержку SQLModel и встроенную пагинацию, упрощая настройку и управление асинхронными соединениями с реляционными базами данных. 🐱 Ссылка на GitHub Программистика|| #Репозиторий

🧠 Отгадка: что выведет этот код?
a = [1, 2, 3]
b = a
a = a + [4]
print(b)
✅ Правильный ответ: 1. `[1, 2, 3]` 📖 Почему так происходит? В Python оператор + для списков создаёт новый список, а не изменяет существующий. Разберём по шагам: 1. a = [1, 2, 3] — создаётся список, a указывает на него. 2. b = a — b указывает на тот же список. 3. a = a + [4] — выражение a + [4] создаёт новый список [1, 2, 3, 4]. Затем a переназначается на этот новый объект. 4. b всё ещё указывает на старый список [1, 2, 3] и не изменился. Если бы мы написали a += [4] (или a.append(4)), то изменили бы исходный список, и ответ был бы [1, 2, 3, 4]. Но здесь — создание нового объекта, поэтому b остался неизменным. Ключевой момент: + возвращает новый объект, += или append() меняют существующий. Ставьте 🔥, если было полезно! Программистика || #quiz

🧠 Загадка на ночь: что выведет этот код?
a = [1, 2, 3]
b = a
a = a + [4]
print(b)
Варианты: 1. [1, 2, 3] 2. [1, 2, 3, 4] 3. [4] 4. Ошибка Пиши свой вариант в комментарии! Ответ и разбор — через пару часов 🔥 Программистика || #quiz

👨‍💻 Работа с памятью в Python: как экономить, не утекать и не ломать голову В Python принято не думать о памяти. Вроде бы есть сборщик мусора, всё автоматически — живи и радуйся. Но когда ваш сервис начинает жрать 8 ГБ на ровном месте, а объекты, которые давно не нужны, почему-то не удаляются, становится не до шуток. Разбираемся с тремя инструментами, которые помогут держать память под контролем: __slots__, weakref и gc. 🧱 Проблема: почему память заканчивается, даже если объектов уже нет В Python память освобождается двумя способами: 1. Подсчёт ссылок (reference counting) — удаляет объект, когда счётчик ссылок падает до нуля. Работает мгновенно. 2. Циклический сборщик мусора (GC) — периодически ищет группы объектов, которые ссылаются друг на друга, но никому больше не нужны. Но есть ситуации, когда память всё равно утекает:
🔴 Вы храните объекты в глобальных списках или кэшах. 🔴 Циклические ссылки не дают объектам удалиться. 🔴 Вы создаёте миллионы объектов с __dict__, и память раздувается. 🔴 Слабые ссылки не используются, хотя могли бы спасти.
Разберём три инструмента, которые решают эти проблемы. 📦 1. `__slots__` — экономия памяти для миллионов объектов По умолчанию каждый экземпляр класса в Python содержит __dict__ — словарь для хранения атрибутов. Это удобно, но дорого: словарь занимает ~56 байт плюс сами атрибуты. Для 1 млн объектов разница может составлять сотни мегабайт. __slots__ отключает __dict__ и заменяет его на дескрипторы. Объект становится компактнее (как C-структура).
class Point:
    __slots__ = ('x', 'y')
    def __init__(self, x, y):
        self.x = x
        self.y = y

p = Point(1, 2)
p.z = 3  # ❌ AttributeError: 'Point' object has no attribute 'z'
Замер памяти:
import sys

class WithoutSlots:
    def __init__(self, x, y):
        self.x = x
        self.y = y

class WithSlots:
    __slots__ = ('x', 'y')
    def __init__(self, x, y):
        self.x = x
        self.y = y

obj1 = WithoutSlots(1, 2)
obj2 = WithSlots(1, 2)

print(sys.getsizeof(obj1))  # ~56 байт + __dict__ (~56) = 112 байт
print(sys.getsizeof(obj2))  # 48 байт
Когда использовать `__slots__`: 🟢 Миллионы объектов с фиксированным набором атрибутов. 🟢 Классы-структуры (Data Transfer Objects, точки, векторы). ❌ Для 99% проектов — не нужно. Оптимизируйте только по факту. Наследование:
class Base:
    __slots__ = ('id',)

class Child(Base):
    __slots__ = ('name', 'age')  # id + name + age
    def __init__(self, id, name, age):
        self.id = id
        self.name = name
        self.age = age
Нюанс: __slots__ не наследуется автоматически. Если дочерний класс не переопределяет __slots__, он получит __dict__ и потеряет экономию. 🔗 2. `weakref` — ссылки, которые не мешают сборщику мусора Вы когда-нибудь создавали кэш, который должен хранить объекты, но не мешать им удаляться? Или писали Observer, но объекты не удалялись, потому что их держал список наблюдателей? Это классическая проблема: сильные ссылки держат объекты живыми. weakref — это слабая ссылка, которая не учитывается сборщиком мусора. Если на объект есть только слабые ссылки, он может быть удалён.
import weakref
import gc

class HeavyObject:
    def __del__(self):
        print("Объект удалён")

obj = HeavyObject()
weak = weakref.ref(obj)

print(weak())  # <__main__.HeavyObject object at 0x...>
del obj
gc.collect()
print(weak())  # None
Где пригодится:
🟢 Кэши — объекты могут быть удалены, если память нужна. 🟢 Наблюдатели (Observer) — слушатели удаляются, когда на них больше никто не ссылается. 🟢 Обратные ссылки в деревьях — родитель держит сильную ссылку на детей, а дети — слабую на родителей.
Типы слабых ссылок: 🔴 weakref.ref(obj) — базовая слабая ссылка. 🔴 weakref.WeakKeyDictionary — словарь, где ключи — слабые ссылки. 🔴 weakref.WeakValueDictionary — словарь, где значения — слабые ссылки. 🔴 weakref.WeakSet — множество слабых ссылок. Пример с WeakValueDictionary:
import weakref

class Cache:
    def __init__(self):
        self._data = weakref.WeakValueDictionary()
    
    def set(self, key, value):
        self._data[key] = value
    
    def get(self, key):
        return self._data.get(key)

cache = Cache()
obj = HeavyObject()
cache.set('key', obj)
print(cache.get('key'))  # <HeavyObject object at ...>
del obj
print(cache.get('key'))  # None
Ограничения: 🔴 Не все объекты поддерживают слабые ссылки (числа, строки, кортежи без изменяемых элементов). 🔴 При использовании __slots__ нужно добавить '__weakref__' в слоты. 🔴 Проверяйте результат вызова слабой ссылки на None — объект мог быть удалён. 🧹 3. `gc` — ручное управление циклическим сборщиком мусора В Python есть автоматический сборщик мусора для циклических ссылок. Обычно он работает незаметно, но иногда нужно вмешаться.
import gc

# Включить/выключить сборку
gc.enable()
gc.disable()

# Запустить вручную
gc.collect()

# Проверить пороги срабатывания
print(gc.get_threshold())  # (700, 10, 10)

# Посмотреть количество объектов в поколениях
print(gc.get_count())
Когда может понадобиться: 🟢 Вы знаете, что создаётся много циклических ссылок (например, графы, деревья с обратными ссылками). 🟢 В долгоживущих процессах — периодический вызов gc.collect() может помочь. 🟢 В тестах — чтобы проверить, что объекты действительно удаляются. Пример с циклической ссылкой:
class Node:
    def __init__(self):
        self.parent = None

a = Node()
b = Node()
a.parent = b
b.parent = a

del a, b
# Объекты зависли в циклической ссылке
gc.collect()  # Удалит их
Модуль `gc` для отладки утечек:
import gc
import tracemalloc

# Включить трассировку
tracemalloc.start()

# Получить список всех объектов
objects = gc.get_objects()

# Найти объекты определённого типа
import pprint
pprint.pprint([obj for obj in gc.get_objects() if isinstance(obj, dict)])
⚠️ Ловушки и частые ошибки 1. Использовать `__slots__` везде — не нужно, усложняет код. 2. Забыть про `__weakref__` в `__slots__` — слабые ссылки не будут работать. 3. Проверять слабые ссылки без `if` — при доступе к удалённому объекту вернётся None. 4. Отключать `gc` без необходимости — приведёт к утечкам. 5. Игнорировать циклические ссылки — в сложных структурах они могут накапливаться. 💡 Запомни: 🟢 __slots__ — экономия памяти для миллионов объектов. 🟢 weakref — ссылки, которые не мешают удалять объекты. 🟢 gc — ручное управление циклическим сборщиком мусора. 🟢 Не оптимизируйте память без измерений. 🟢 Используйте tracemalloc и gc.get_objects() для отладки утечек. Программистика || #Статья

Регистрируйтесь на Yandex Scale 2026 Главная конференция Yandex Cloud. Узнайте о сервисах, которые меняют ваш бизнес. 4 офлай
+5
Регистрируйтесь на Yandex Scale 2026 Главная конференция Yandex Cloud. Узнайте о сервисах, которые меняют ваш бизнес. 4 офлайн-трека (AI, Infra + DevTools, Data, Security), онлайн-трек Deep Tech, воркшопы по ИИ и интерактивы. Подробнее о программе читайте в карточках🗒 📅24 сентября 🚗Москва + 💻онлайн Участие бесплатное! Зарегистрироваться #реклама 16+ scale.yandex.cloud О рекламодателе

1000+ свежих IT-вакансий каждый месяц в одном месте 🤘 Пока другие листают hh — мы ищем вакансии по всему рынку: каналы, сайт
1000+ свежих IT-вакансий каждый месяц в одном месте 🤘 Пока другие листают hh — мы ищем вакансии по всему рынку: каналы, сайты компаний, стартапы и закрытые источники. Всё, что сложно найти руками — уже собрано внутри⬇️ IT Россия IT СНГ Стажировки Digital Международка Удалёнка Python Бигтех Дизайн QA Джунам Frontend Аналитика DevOps Не с HH Автоотклики на вакансии

Битрикс24 представил Коворк/Код Ключевое: • Помнит рабочий контекст месяцами благодаря технологии Радиант: связывает задачи,
Битрикс24 представил Коворк/Код Ключевое: • Помнит рабочий контекст месяцами благодаря технологии Радиант: связывает задачи, сделки, переписку и файлы в единую картину, замечает риски и подсказывает следующий шаг — не нужно каждый раз объяснять, о каком клиенте или проекте речь; • Выполняет несколько задач параллельно — помогает ускорить рабочий процесс в разы; • В режиме Коворк выполняет рабочие поручения, в режиме Код создает приложения под ваши задачи; • Работает только с тем, к чему вы сами дали доступ; • Стабильно доступен в России, без зарубежных карт и посредников при оплате; • В основе — модель BitrixGPT 5.6 Agent 1M (контекст на 1M токенов); • Доступно для macOS, Windows и Linux. Ранний доступ к Битрикс24 Коворк/Код уже открыт. Получить предложение #реклама 16+ cowork.bitrix24.ru О рекламодателе

Два молодых парня, Никита и Роберт в августе запустили мега полезный проект для общества. Они создали сообщество, в котором о
Два молодых парня, Никита и Роберт в августе запустили мега полезный проект для общества. Они создали сообщество, в котором объединили такие темы: 1. Программирование / Фриланс / ИИ 2. Кибербезопасность / VPN 3. Мейдиа / Криптовалюта / Саморазвитие ... полный список тут 👈 В чате я познакомился с Даней, администратором Битрикс, выручка которого составляет 3+ млн в год, с Александром, который 6 лет работает в сфере кибербезопасности и с Багой, 21-летним GoLang разработчиком из WB 😉 Что меня удивило, так это кол-во слитых курсов (50+), начиная от Udemy, заканчивая такими школами как BEEGEEK и Stepik. В сообществе очень приятная атмосфера, все ребята поддерживают друг друга и делятся своим опытом. Хочешь присоединится к тусовке заряженных ребят?👇 → Войти в сообщество

🖥 PyQuery — это библиотека для парсинга HTML и XML с синтаксисом jQuery. Позволяет извлекать данные, манипулировать элемента
🖥 PyQuery — это библиотека для парсинга HTML и XML с синтаксисом jQuery. Позволяет извлекать данные, манипулировать элементами и обходить DOM-дерево с помощью CSS-селекторов, как в браузере. Построена на lxml — быстро и эффективно.
Она предоставляет удобный API для выборки элементов с помощью CSS-селекторов и их последующей обработки. PyQuery построена на основе lxml, что обеспечивает быструю и эффективную работу с XML и HTML.
🐱 Ссылка на GitHub Программистика|| #Репозиторий

Так вот ты какое, летнее настроение В Т-Шоп завезли новую фестивальную коллекцию. Собрали дизайнерские вещи, которые точно пр
Так вот ты какое, летнее настроение В Т-Шоп завезли новую фестивальную коллекцию. Собрали дизайнерские вещи, которые точно пригодятся: — футболки; — бандану; — плед; — веер и даже подвеску-открывашку. Идеально для путешествий, пикников и отдыха. Осталось выбрать, что первым отправится в корзину Посмотреть каталог #реклама tbank.ru О рекламодателе

⚡️ `any` и `all`: проверяй условия без циклов Нужно проверить, все ли элементы списка соответствуют условию? Или хотя бы один? Вместо цикла с break используйте any() и all(). ❌ Было (цикл с флагом):
has_even = False
for x in numbers:
    if x % 2 == 0:
        has_even = True
        break

all_positive = True
for x in numbers:
    if x <= 0:
        all_positive = False
        break
✅ Стало (одна строка):
has_even = any(x % 2 == 0 for x in numbers)
all_positive = all(x > 0 for x in numbers)
any() возвращает True, если хотя бы один элемент истинен. all() — только если все элементы истинны. Генератор внутри ленивый — вычисляется до первого True (для any) или первого False (для all). Программистика || #tips

Бесплатный курс: веб-дизайн, графика, интерфейсы Научись создавать дизайн сайтов и приложений, инфографику для карточек на ма
Бесплатный курс: веб-дизайн, графика, интерфейсы Научись создавать дизайн сайтов и приложений, инфографику для карточек на маркетплейсах и работать в Figma! Студенты курса в среднем зарабатывают от 68 000 ₽ уже во время обучения💰 Этот курс для тебя, если ты: ✅ мечтаешь о новой профессии, но не знаешь, с чего начать; ✅ чувствуешь, что хочешь большего — свободы, самореализации, творчества; ✅ полный новичок и хочешь систему, а не хаос; ✅ хочешь начать зарабатывать удалённо. Зарегистрироваться #реклама 16+ ydaev.ru О рекламодателе

Что общего у аналитика с зарплатой 200к и джуна, который застрял на 40к? Первый не переставал учиться — просто делал это бесп
Что общего у аналитика с зарплатой 200к и джуна, который застрял на 40к? Первый не переставал учиться — просто делал это бесплатно и по делу. Lab IT — канал, где каждый день выкладывают платные IT-курсы, роадмапы и практику даром. Python, SQL, ML, DevOps, дизайн — выбирай направление и качай. Разница между «хочу расти» и «вырос» — одна подписка. ➡️ https://t.me/+Mnoq6ke8TlxkNzFi

🎥 FastAPI за 3 часа: от старта до продакшена FastAPI — один из самых быстрых и современных веб-фреймворков для Python. Если вы уже знакомы с синтаксисом языка и хотите освоить создание мощных API, этот 3-часовой курс для вас. Автор разбирает всё на практике: от основ до реальных примеров, с учётом современных подходов 2026 года.
📱 Первоисточник
Программистика|| #video