uk
Feedback

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

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

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

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

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

Показати більше
5 799
Підписники
+3224 години
+187 днів
-4030 днів
Архів дописів
🧠 Отгадка: что выведет этот код?
funcs = []
for i in range(3):
    funcs.append(lambda: i)
print([f() for f in funcs])
✅ Правильный ответ: 2. `[2, 2, 2]` 📖 Почему так происходит? Это классическая ловушка с поздним связыванием (late binding) в Python. Внутри цикла создаются три лямбда-функции, которые не запоминают текущее значение i, а захватывают ссылку на переменную `i` из внешней области видимости (замыкание). К моменту вызова этих функций (после завершения цикла) переменная i уже равна 2. Поэтому все три функции возвращают 2.
# Что здесь происходит:
# 1. Цикл for i in range(3) меняет i от 0 до 2.
# 2. На каждой итерации создаётся лямбда lambda: i, которая "видит" текущее i, но не копирует его значение.
# 3. После выхода из цикла i = 2.
# 4. Когда мы вызываем f() для каждой функции, все они обращаются к этой одной переменной i и получают 2.
Как исправить? Нужно зафиксировать текущее значение i с помощью аргумента по умолчанию:
funcs = [lambda i=i: i for i in range(3)]
print([f() for f in funcs])  # [0, 1, 2]
В этом варианте i=i создаёт локальную переменную внутри лямбды со значением, которое было на момент создания. Ставьте 🔥, если было полезно! Программистика || #quiz

«Освоение модульного тестирования с использованием Pytest» курс на Stepik Сегодня умение писать тесты ценится почти так же, к
«Освоение модульного тестирования с использованием Pytest» курс на Stepik Сегодня умение писать тесты ценится почти так же, как и умение писать сам код. Если pytest, fixtures, CI/CD и coverage всё ещё вызывают вопросы самое время это исправить Программа курса: • Pytest: от базовых тестов до CI/CD • fixtures, mocking, parametrization • Flask/API testing • Selenium и UI тестирование • Docker + Docker Compose • GitHub Actions • coverage и отчёты • debugging и refactoring тестов Курс построен вокруг практики: много примеров, готовых кейсов и разборов рабочих сценариев 48 часов действует скидка 25% ↗️ Пройти курс на Stepik

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

Силу гика в вас чувствуем мы И потому сообщить должны: у хостинг‑провайдера FirstVDS сейчас проходит акция ко Дню гика! Что ж
Силу гика в вас чувствуем мы И потому сообщить должны: у хостинг‑провайдера FirstVDS сейчас проходит акция ко Дню гика! Что ждёт вас: • скидки на заказ новых VDS до 30% • спецтариф FirstGeek с фиксированной ценой, • онлайн‑турнир прямо на сайте, • награды за игровую валюту: сертификаты, мерч и скидки на VDS • а в финале розыгрыш, PS5 Pro 2 Тб, Steam Deck OLED 512 Гб и других приятных трофеев. Так что путь здесь ясен: 🪐 если сервер нужен — выгоду получите, 👾 если азарт близок — в игру войдёте, 🎮 если удача на вашей стороне, ещё и с приставкой уйти сможете. В битву гиков! Мимо такой акции пройти трудно. Особенно если гик внутри вас давно требует приключений. #реклама О рекламодателе

💻 Вопрос из собеседования: Как работает `yield` и чем генераторы отличаются от списков? Генераторы — это функции, которые используют yield вместо return. Они возвращают итератор, который выдает значения по одному, не храня весь результат в памяти. Это ключевое отличие от списков.
# Список — хранит все элементы в памяти
def get_squares_list(n):
    result = []
    for i in range(n):
        result.append(i ** 2)
    return result

# Генератор — вычисляет значения на лету
def get_squares_gen(n):
    for i in range(n):
        yield i ** 2

lst = get_squares_list(1_000_000)   # занимает много памяти
gen = get_squares_gen(1_000_000)    # почти не занимает
print(next(gen))  # 0
print(next(gen))  # 1
Генераторы нельзя индексировать (gen[5] вызовет ошибку), они одноразовые (истощаются после итерации). Их главное преимущество — экономия памяти при работе с большими или бесконечными последовательностями. Программистика || #jobs

Запустили новый канал про ИИ! 🚀 Наши ИИ агенты 24/7 мониторят соцсети и мировые СМИ, а команда отбирает лучшее — новости об
Запустили новый канал про ИИ! 🚀 Наши ИИ агенты 24/7 мониторят соцсети и мировые СМИ, а команда отбирает лучшее — новости об ИИ, апдейты моделей, инсайды и мемы. Подпишись и присылай свои темы и идеи форматов. Подписывайтесь на @A1ntelligence!

👩‍💻 print(): два параметра, которые вы могли пропустить Все знают print("Hello"), но мало кто использует sep и end — а они очень полезны. - sep — разделитель между значениями (по умолчанию пробел)
  print("a", "b", "c", sep=", ")  # a, b, c
- end — символ после последнего значения (по умолчанию \n)
  print("Загрузка", end="...")
  print("готова")  # Загрузка...готова
🟢 Бонус: print("Ошибка", file=sys.stderr) — вывод в поток ошибок. Знайте возможности простых функций — это экономит время. Программистика || #doc

Совет на 2026 год – начните изучать ВАЙБ-КОДИНГ Сейчас с нейронками можно самому создавать проекты любой сложности - от идеи
Совет на 2026 год – начните изучать ВАЙБ-КОДИНГ Сейчас с нейронками можно самому создавать проекты любой сложности - от идеи до релиза. ➖Без опыта и образования в IT ➖Без команды программистов Проще всего об этом рассказывает Кирилл, вайбкодер, который рубит 500к+ с собственных проектов. По его гайдам не придется мучиться и тратить впустую часы, пытаясь научить ИИ работать, как надо. Можешь начать с бесплатного урока, где он разобрал: что такое вайбкодинг, какие связки реально работают, как с нуля собрать проект и получить первых пользователей. Забирай материал в закрепе: https://t.me/+2EYebVbH_iVjYjBi

👩‍💻 Python, ты изменился
📱 Первоисточник
Программистика|| #video

Топ 7 сайтов для изучения питона 1. Python.org Официальный сайт языка: туториал, документация, ссылки на книги и курсы. Отлич
Топ 7 сайтов для изучения питона 1. Python.org
Официальный сайт языка: туториал, документация, ссылки на книги и курсы. Отличная отправная точка, особенно чтобы понять «как устроен» Python.
2. Real Python
Сайт с подробными статьями, видео и туториалами — от базы до работы с веб‑фреймворками, тестами и инструментами разработки.
3. LearnPython.org
Интерактивный ресурс с уроками и задачами прямо в браузере. Хорош для новичков, которые хотят писать код сразу после объяснений.
4. Codecademy
Крупная платформа с интерактивными курсами по Python: есть как базовые темы, так и направления вроде веб‑ и data‑разработки.
5. W3Schools Python
Простые уроки и примеры кода, удобно как «быстрый справочник» и для отработки базовых конструкций.
6. HackerRank / Codewars
Платформы с задачами и челленджами по Python; помогают отточить навыки через практику и подготовиться к собеседованиям.
7. Python‑курсы Mooc.fi
Почти легендарный бесплатный курс по Python с большим количеством автоматически проверяемых заданий и понятным прогрессом.
Программистика || #Ресурсы

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

💻 Вопрос из собеседования: Как использовать `functools.lru_cache` для ускорения рекурсивных вычислений? Рекурсивные функции (например, для чисел Фибоначчи) без кэширования работают экспоненциально долго. На собеседовании проверяют знание встроенного декоратора lru_cache из модуля functools, который автоматически запоминает результаты вызовов функции.
from functools import lru_cache

@lru_cache(maxsize=None)
def fib(n):
    if n < 2:
        return n
    return fib(n-1) + fib(n-2)

print(fib(100))  # Мгновенно, без кэша считалось бы вечность
lru_cache хранит результаты вызовов в словаре. Аргументы должны быть хешируемыми. maxsize=None — без ограничения. Для отладки есть fib.cache_info(). Идеально для динамического программирования и чистых функций. Надеюсь, это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥 Программистика || #jobs

The Dark - приватный канал от специалиста по цифровой криминалистике. • Годные OSINT инструменты; • Нейросети; • Приватные мануалы и софт; • Malware Analysis Кому сюда: — Профессионалам, которые устали от детского сада в тематических каналах. — Аналитикам, расследователям, revers-инженерам. — Тем, кто знает, чем PE отличается от ELF, и не задаёт вопросов «а что такое отладчик». Впервые открыт свободный вход Welcome to The Dark

👩‍💻 Структурное сопоставление (match-case): не просто switch, а мощный инструмент В Python 3.10 появилась фича, которую ждали годы — структурное сопоставление с образцом (pattern matching). Многие думают, что это просто аналог switch-case из других языков, но на самом деле match-case гораздо мощнее: он умеет разбирать кортежи, списки, словари, классы и даже захватывать значения. Разбираемся на примерах. 🧱 Проблема: куча if-elif-else для проверки структуры Без match-case проверка сложных данных превращается в лапшу:
def process_data(data):
    if isinstance(data, tuple) and len(data) == 2 and isinstance(data[0], str):
        action = data[0]
        value = data[1]
        if action == "print":
            print(value)
        elif action == "square":
            print(value ** 2)
        else:
            print("Неизвестная команда")
    elif isinstance(data, list) and data and data[0] == "quit":
        return None
    else:
        raise TypeError("Неожиданный формат")
🧠 match-case: читаемо и мощно То же самое с match-case:
def process_data(data):
    match data:
        case ("print", value):
            print(value)
        case ("square", value):
            print(value ** 2)
        case ["quit"] | ["exit"]:
            return None
        case _:
            raise TypeError("Неожиданный формат")
Код стал короче, понятнее и безопаснее. 🔍 Что умеет match-case 1. Сопоставление с литералами
status = 404
match status:
    case 200:
        print("OK")
    case 404 | 403:
        print("Ошибка клиента")
    case 500:
        print("Ошибка сервера")
2. Захват значений
match point:
    case (x, y):
        print(f"Координаты: x={x}, y={y}")
    case (x, y, z):
        print(f"3D: {x}, {y}, {z}")
3. Распаковка списков и кортежей
match command.split():
    case ["help"]:
        print("Справка")
    case ["run", script, *args]:
        print(f"Запуск {script} с аргументами {args}")
4. Сопоставление с частями
match [1, 2, 3, 4, 5]:
    case [first, second, *rest]:
        print(first, second, rest)  # 1 2 [3, 4, 5]
    case _:
        print("Недостаточно элементов")
5. Словари и именованные поля
match data:
    case {"type": "user", "name": name, "age": age}:
        print(f"Пользователь {name}, {age} лет")
    case {"type": "product", "title": title}:
        print(f"Товар: {title}")
6. Сопоставление с классами
from dataclasses import dataclass

@dataclass
class Point:
    x: int
    y: int

match obj:
    case Point(x=0, y=0):
        print("Начало координат")
    case Point(x=0, y=y):
        print(f"На вертикальной оси y={y}")
    case Point():
        print("Обычная точка")
7. Условия (guard)
match value:
    case int(x) if x > 0:
        print(f"Положительное число {x}")
    case int(x):
        print(f"Неположительное число {x}")
⚠️ Ловушки и ограничения 1. Match не проваливается вниз как в C-шном switch. Отработал один case — выход. 2. Переменные, захваченные в case, видны только внутри этого case (и после него, если не переопределены). 3. Сопоставление с `_` (подчёркивание) — аналог default, но _ — это законная переменная, которая не используется. 4. Порядок важен — более конкретные case должны идти раньше общих. 💡 Запомни:
🟢 match-case — не просто замена if-elif, а полноценный инструмент для декомпозиции структур данных. 🟢 Умеет распаковывать последовательности, словари, объекты и накладывать условия. 🟢 Делает код обработки вложенных данных читаемым и безопасным. 🟢 Доступен с Python 3.10+. Если ваш проект ещё не обновился — есть повод.
Программистика || #Статья

Совет на ближайшие годы — изучайте ВАЙБ-КОДИНГ ИИ уже пишет код, чинит баги, генерирует тесты, документацию и помогает запуск
Совет на ближайшие годы — изучайте ВАЙБ-КОДИНГ ИИ уже пишет код, чинит баги, генерирует тесты, документацию и помогает запускать продукты быстрее, чем это делали классические команды разработки. И это уже не "будущее когда-нибудь", а реальность, которая меняет рынок уже сегодня И те, кто научится вайбкодить сейчас, будут увереннее конкурировать на рынке и зарабатывать больше тех, кто по-прежнему делает всё вручную. Стартовать с нуля поможет канал Вайб-кодинг. Там ребята круглосуточно мониторят более 320 российских и зарубежных источников и публикуют только главное: релизы, инструменты, гайды, курсы и практические кейсы. Подписывайтесь, нас уже 30 тысяч: @vibecoding_tg

🖥 Guillotina — это современная RESTful-платформа на основе Python, разработанная для эффективного управления большими объема
🖥 Guillotina — это современная RESTful-платформа на основе Python, разработанная для эффективного управления большими объемами данных! Она построена с использованием asyncio, что обеспечивает высокую производительность и масштабируемость при работе с асинхронными операциями.
🐱 Ссылка на GitHub Программистика|| #Репозиторий

🖥 Trogon— это библиотека, которая автоматически создаёт интерактивный TUI-интерфейс (текстовый пользовательский интерфейс) для любого CLI-приложения, написанного с использованием Click, Argparse, Tyro или других парсеров. Просто добавьте одну строку кода — и ваш скучный --help превращается в удобный меню-выбор с автодополнением и навигацией стрелочками. Работает на движке Textual. Идеально для скриптов, которыми пользуются не разработчики, а обычные люди.
Установка:
pip install trogon
Пример: Если у вас есть Click-приложение cli, добавьте trogon и запустите trogon myapp. 🐱 Ссылка на GitHub Программистика|| #Репозиторий

Айтишники ловите сборник бесплатных курсов, полезных инструментов и книг Проект «TERMINAL» стал крупнейшей библиотекой беспла
Айтишники ловите сборник бесплатных курсов, полезных инструментов и книг Проект «TERMINAL» стал крупнейшей библиотекой бесплатного образования. В одном канале собраны курсы, книги, полезные инструменты и практические тренажёры для всех разработчиков 🎓 Практические курсы и задания 🪽 Книги и статьи известных авторов 😮‍💨 Полезные инструменты и ресурсы 🌟 IT-новости и инсайды Обучение по всем направлениям: SQL, Python, Frontend, PHP, C++, Golang, GIT, Linux, QA, Java, кибербезопасность и др. Ценишь знания, подпишись: Terminal_tg