Почему это важно
Задача наглядно показывает, почему нельзя удалять элементы из списка во время итерации по нему: даже если кажется, что «всё должно удалиться», половина элементов останется. Безопасные альтернативы: итерация по копии 𝚏𝚘𝚛 𝚡 𝚒𝚗 𝚗𝚞𝚖𝚜[:], list comprehension [𝚡 𝚏𝚘𝚛 𝚡 𝚒𝚗 𝚗𝚞𝚖𝚜 𝚒𝚏 𝚡 % 𝟸 != 𝟶], или проход в обратном порядке.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍2❤1
Почему это важно
Путаница между проверкой по ключам и по значениям часто ломает валидацию и условия: чтобы искать по значениям, нужно явно использовать "𝚘𝚗𝚎" 𝚒𝚗 𝚍.𝚟𝚊𝚕𝚞𝚎𝚜() или итерироваться по парам, а не надеяться на поведение по умолчанию.
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему это важно
Ошибка [-𝚗:𝟶] вместо [-𝚗:] — частая ловушка при динамическом формировании срезов; результат всегда пуст, но ошибки не выбрасывается, и баг может долго оставаться незамеченным.
Please open Telegram to view this post
VIEW IN TELEGRAM
Канал по нейронкам, который часто пересекается с Python по темам: @neuro_channel
Веду его тоже я, так что если вам нравятся задачки здесь, то буду рад видеть вас и в «Нейроканале». Это всё часть медиа Tproger.
Три примечательных поста:
1️⃣ Про утилиту, которая автоматически снимает цензуру (safety alignment) с трансформерных языковых моделей без дообучения и ручного тюнинга.
2️⃣ Разбор сборки GPT‑OSS с нуля на чистом Python, без PyTorch и без GPU: последовательно с объяснениями от Softmax и RMSNorm до Grouped Query Attention.
3️⃣ Обзор трендов Hugging Face за неделю с супер-кратким описанием моделей, выходит регулярно.
Плюс новости о выходе новых нейронок, чтобы не пропустить ничего важного. Все свежие громкие релизы, чтобы вы могли читать только один канал. Иногда получается даже раньше официального запуска, чем я особенно горжусь :)
Заходите и подписывайтесь: @neuro_channel
Веду его тоже я, так что если вам нравятся задачки здесь, то буду рад видеть вас и в «Нейроканале». Это всё часть медиа Tproger.
Три примечательных поста:
Плюс новости о выходе новых нейронок, чтобы не пропустить ничего важного. Все свежие громкие релизы, чтобы вы могли читать только один канал. Иногда получается даже раньше официального запуска, чем я особенно горжусь :)
Заходите и подписывайтесь: @neuro_channel
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🙏1
Почему это важно
Правило: более специфичные исключения должны идти перед более общими. Иначе общий 𝚎𝚡𝚌𝚎𝚙𝚝 «съест» все ошибки, и специфичная обработка не сработает. В современном Python (3.11+) на это даже выдаётся SyntaxWarning. Да pyright подсветит, но в учебном примере я специально убрал подсветку.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍1
Почему это важно
Паттерн 𝚡 𝚘𝚛 𝚍𝚎𝚏𝚊𝚞𝚕𝚝 ломается для любых falsy-значений: 𝟶, "", [], 𝙽𝚘𝚗𝚎, 𝙵𝚊𝚕𝚜𝚎. Безопасная альтернатива — явная проверка: 𝚒𝚏 𝚗𝚊𝚖𝚎 𝚒𝚜 𝙽𝚘𝚗𝚎: 𝚗𝚊𝚖𝚎 = "𝙶𝚞𝚎𝚜𝚝".
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3
👍2💊1
Почему это важно
Звёздочка создаёт иллюзию «гибкости», но фиксированные переменные вокруг неё всё равно требуют своих значений. Это ломает код, когда данные короче ожидаемого, например при парсинге строк или обработке коротких списков.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3❤1
👍2
Почему это важно
Задача показывает, что «неупорядоченность» множеств — не абстракция, а реальное поведение, особенно для строк. Код, который случайно работал на целых числах, может сломаться при переходе на строковые ключи. Если порядок важен — используйте 𝚜𝚘𝚛𝚝𝚎𝚍(𝚜) или другую структуру данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍2