ch
Feedback

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

Python: задачки и вопросы

Python: задачки и вопросы

前往频道在 Telegram

Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media

显示更多
6 872
订阅者
-124 小时
-147 天
-4930 天
帖子存档
Разбор по шагам 1️⃣Выражение t[1] += [3] под капотом разбивается на две операции: t[1].__iadd__([3]) и последующее присваивание t[1] = ... 2️⃣Первый шаг выполняется успешно — метод __iadd__ мутирует список на месте, и он становится [2, 3]. 3️⃣Второй шаг (присваивание обратно по индексу) бросает TypeError, так как кортежи неизменяемы. 4️⃣Ошибка перехватывается блоком except, где выводится строка 'Error ' без перехода на новую строку. 5️⃣Выполнение продолжается, и print(t) выводит кортеж с уже изменённым списком: (1, [2, 3]). Почему это важно Пример наглядно показывает, почему хранение мутабельных объектов (списков) внутри иммутабельных (кортежей) — плохая архитектурная практика. Операции над ними могут вызывать ошибки, но при этом оставлять данные в изменённом (грязном) состоянии.

Что выведет код?
Anonymous voting

Победителями премии Тпрогер 🐀становятся... Здесь играет барабанная дробь и интригующая музыка... Вам нужно только выждать др
+4
Победителями премии Тпрогер 🐀становятся... Здесь играет барабанная дробь и интригующая музыка... Вам нужно только выждать драматическую паузу перед объявлением победителей — в каждой номинации он один, и определяется большинством голосов. Готовы? В номинации «Продукт года» золотая мышь достается компании: 🐀NetVision за платформу интеллектуального мониторинга СИМ. В номинации «Облачный продукт года» побеждает компания: 🐀Гравитон с паком виртуализации «Гелиус» Звание «IT-ивент года» вручается компании: 🐀Островок! за О!Хакатон И в категории «Дизайн года» первое место занимает компания: 🐀AcademiaDev за интерактивную инсталляцию. Каждый ваш лайк, голос влияли на исход премии. Давайте поддержим всех — ставьте 🏆участникам, которые хоть и не заняли призового места, но точно остались в сердечке. И 🔥, если хотите аналогичных активностей и готовы выбирать еще!

Развёрнутое пояснение 1️⃣ В Python цепочка a < b < c разворачивается в a < b and b < c. Здесь выражение разворачивается в (1 < 5) and (5 < 10) and (10 == True). 2️⃣ Первые два условия истинны, но 10 == True ложно, так как True числово равен 1, а не 10. Всё выражение возвращает False. 3️⃣ Если бы нужно было сначала вычислить диапазон, а потом сравнить, следует писать (1 < x < 10) == True. Почему это важно Непонимание цепочек сравнения приводит к трудноуловимым багам при случайном смешивании проверки диапазонов с булевыми константами. Всегда расставляйте скобки для явного управления порядком.

Что выведет код?
Anonymous voting

Развёрнутое пояснение 1️⃣Словарь 𝚍 = {"𝚊": 𝟷}. 2️⃣Вызов 𝚍.𝚜𝚎𝚝𝚍𝚎𝚏𝚊𝚞𝚕𝚝("𝚊", 𝟿𝟿): ключ "𝚊" уже существует со значением 𝟷, поэтому ничего не меняется. Метод возвращает текущее значение 𝟷. 3️⃣Вызов 𝚍.𝚜𝚎𝚝𝚍𝚎𝚏𝚊𝚞𝚕𝚝("𝚋", 𝟿𝟿): ключа "𝚋" нет, поэтому создаётся пара "𝚋": 𝟿𝟿. Метод возвращает 𝟿𝟿. 4️⃣Итого: 𝚍 = {"𝚊": 𝟷, "𝚋": 𝟿𝟿}. Почему это важно Можно перепутать 𝚜𝚎𝚝𝚍𝚎𝚏𝚊𝚞𝚕𝚝 с обычным присваиванием или 𝚞𝚙𝚍𝚊𝚝𝚎. Это полезный паттерн для заполнения словаря значениями по умолчанию без затирания существующих данных, особенно при агрегации: 𝚍.𝚜𝚎𝚝𝚍𝚎𝚏𝚊𝚞𝚕𝚝(𝚔𝚎𝚢, $$).𝚊𝚙𝚙𝚎𝚗𝚍(𝚟𝚊𝚕𝚞𝚎)

Что выведет код?
Anonymous voting

Последний день голосования в Tproger Award! Две недели, 16 компаний, 4 номинации — спасибо, что читали, участвовали и лайкали
Последний день голосования в Tproger Award! Две недели, 16 компаний, 4 номинации — спасибо, что читали, участвовали и лайкали. И отдельное спасибо, что голосовали! Вообще не представляем, что вы там наделали, уже узнать хочется! Давайте сегодня зафиналим голосовалку и раздадим по максимуму золотых мышей. Интересно, расстановка сил сможет измениться за один день? Если потеряли, то номинации вот: — Продукт года — Облачный продукт года — ИТ-ивент года — Дизайн года Только сайт не положите, очень просим 🙏 Пойти голосовать: https://tprg.ru/bWfy

Развёрнутое пояснение 1️⃣Переменная 𝚡 указывает на строковый объект "𝚑𝚎𝚕𝚕𝚘". 2️⃣Вызов 𝚡.𝚞𝚙𝚙𝚎𝚛() создаёт новый строковый объект "𝙷𝙴𝙻𝙻𝙾" и возвращает его. Но результат не присвоен никакой переменной — он просто теряется. 3️⃣Переменная 𝚡 по-прежнему указывает на исходный объект "𝚑𝚎𝚕𝚕𝚘". 4️⃣Чтобы получить ожидаемый результат, нужно писать 𝚡 = 𝚡.𝚞𝚙𝚙𝚎𝚛(). 5️⃣То же самое относится ко всем строковым методам: 𝚛𝚎𝚙𝚕𝚊𝚌𝚎(), 𝚜𝚝𝚛𝚒𝚙(), 𝚕𝚘𝚠𝚎𝚛() — все они возвращают новую строку. Почему это важно Те, кто привык к мутирующим методам списков (𝚊𝚙𝚙𝚎𝚗𝚍, 𝚜𝚘𝚛𝚝), часто ожидают такого же поведения от строковых методов. Забытый 𝚡 = 𝚡.𝚜𝚝𝚛𝚒𝚙() — классический баг при обработке текста.

Что выведет код?
Anonymous voting

Развёрнутое пояснение 1️⃣Генератор 𝚐 создаёт последовательность из двух элементов: 𝟶 и 𝟷. 2️⃣Первый 𝚗𝚎𝚡𝚝(𝚐, "𝚎𝚖𝚙𝚝𝚢") извлекает 𝟶, переменная 𝚊 = 𝟶. 3️⃣Второй 𝚗𝚎𝚡𝚝(𝚐, "𝚎𝚖𝚙𝚝𝚢") извлекает 𝟷, переменная 𝚋 = 𝟷. 4️⃣Третий вызов 𝚗𝚎𝚡𝚝(𝚐, "𝚎𝚖𝚙𝚝𝚢"): генератор исчерпан, но передан второй аргумент — default-значение. Вместо исключения StopIteration возвращается "𝚎𝚖𝚙𝚝𝚢", переменная 𝚌 = "𝚎𝚖𝚙𝚝𝚢". 5️⃣Если бы был просто 𝚗𝚎𝚡𝚝(𝚐) без второго аргумента, выбросилось бы StopIteration. Почему это важно Это полезный паттерн для безопасной работы с итераторами неизвестной длины: 𝚗𝚎𝚡𝚝(𝚒𝚝𝚎𝚛𝚊𝚝𝚘𝚛, 𝙽𝚘𝚗𝚎) или 𝚗𝚎𝚡𝚝(𝚒𝚝𝚎𝚛𝚊𝚝𝚘𝚛, 𝚍𝚎𝚏𝚊𝚞𝚕𝚝_𝚟𝚊𝚕𝚞𝚎) позволяет избежать обработки исключений.

Что выведет код?
Anonymous voting

Развёрнутое пояснение 1️⃣𝚏𝚕𝚘𝚊𝚝("𝚒𝚗𝚏") создаёт положительную бесконечность — специальное значение, большее любого конечного числа. 2️⃣Операция 𝚡 + 𝟷 пытается прибавить 𝟷 к бесконечности. По правилам IEEE 754, ∞ + 𝚗 = ∞ для любого конечного 𝚗. 3️⃣Результат снова 𝚏𝚕𝚘𝚊𝚝("𝚒𝚗𝚏"), и сравнение 𝚏𝚕𝚘𝚊𝚝("𝚒𝚗𝚏") == 𝚏𝚕𝚘𝚊𝚝("𝚒𝚗𝚏") даёт True. 4️⃣То же самое для умножения, вычитания конечного числа: 𝚒𝚗𝚏 * 𝟸 = 𝚒𝚗𝚏, 𝚒𝚗𝚏 - 𝟷𝟶𝟶𝟶 = 𝚒𝚗𝚏. Почему это важно Бесконечность используют для инициализации минимумов/максимумов: 𝚖𝚒𝚗_𝚟𝚊𝚕 = 𝚏𝚕𝚘𝚊𝚝("𝚒𝚗𝚏"). Но арифметика с ней нетривиальна: 𝚒𝚗𝚏 - 𝚒𝚗𝚏 = 𝙽𝚊𝙽, а деление на 𝚒𝚗𝚏 даёт 𝟶. Это может сломать логику, если не учитывать особые случаи.

Что выведет код?
Anonymous voting