Почему это важно
Если бы разработчик хотел присвоить 𝚢 значение 𝚡, а потом проверить 𝚢 𝚘𝚛 𝚃𝚛𝚞𝚎, нужны скобки: (𝚢 := 𝚡) 𝚘𝚛 𝚃𝚛𝚞𝚎. Без понимания приоритета легко получить неожиданный результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Почему это важно
Это «хакерский» способ сгладить список списков, но он неэффективен (квадратичная сложность из-за создания промежуточных списков); для реальных задач лучше использовать 𝚒𝚝𝚎𝚛𝚝𝚘𝚘𝚕𝚜.𝚌𝚑𝚊𝚒𝚗.𝚏𝚛𝚘𝚖_𝚒𝚝𝚎𝚛𝚊𝚋𝚕𝚎() или list comprehension.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3
🤝2
Почему это важно
Эта ошибка часто сбивает с толку начинающих: кажется, что глобальная переменная должна быть видна, но наличие присваивания ниже по коду «перетягивает» её в локальную область. Решение — либо использовать 𝚐𝚕𝚘𝚋𝚊𝚕 𝚡, либо не переиспользовать имя глобальной переменной.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1✍1
👍2
Почему это важно
Симметричная структура кода (обе переменные инициализируются одинаково на всех уровнях) создаёт иллюзию, что 𝚐𝚕𝚘𝚋𝚊𝚕 и 𝚗𝚘𝚗𝚕𝚘𝚌𝚊𝚕 работают одинаково — но 𝚐𝚕𝚘𝚋𝚊𝚕 игнорирует промежуточную область 𝚘𝚞𝚝𝚎𝚛, а 𝚗𝚘𝚗𝚕𝚘𝚌𝚊𝚕 работает именно с ней.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что выведет код?
Anonymous Quiz
15%
[1, 2, 3] [1, 2, 4]
55%
[1, 2, 3, 4] [1, 2, 3, 4]
27%
[1, 2, 3] [1, 2, 3, 4]
3%
Error
Почему это важно
Задача демонстрирует разницу между мутацией объекта (𝚊𝚙𝚙𝚎𝚗𝚍, +=) и созданием нового объекта (+). При цепочке присваиваний с изменяемыми объектами легко получить неожиданное разделение состояния между переменными.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Почему это важно
Это неочевидное поведение часто ломает код при портировании с Python 2 на 3. Решение — вынести значение в итерируемое: [𝚡 𝚏𝚘𝚛 𝚡 𝚒𝚗 [𝚡] 𝚏𝚘𝚛 𝚒 𝚒𝚗 𝚛𝚊𝚗𝚐𝚎(𝟹)] или использовать значение по умолчанию в лямбде.
Please open Telegram to view this post
VIEW IN TELEGRAM
🙈2👍1