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

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

Відкрити в Telegram

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

Показати більше
7 131
Підписники
+424 години
+57 днів
+130 день
Архів дописів
Что выведет код?
Anonymous voting

photo content

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

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

photo content

Где лучшие тусовки? На тех-ивентах! Последняя по очереди, но не по значимости — номинация «IT-ивент года». Здесь тоже собрали
+3
Где лучшие тусовки? На тех-ивентах! Последняя по очереди, но не по значимости — номинация «IT-ивент года». Здесь тоже собрались три компании, и если вы еще не добрались до чтения их кейсов, то давайте сделаем это вместе. — Лаборатория Числитель собрала конференцию, на которой обсуждают строго только K8s. — Мероприятие Selectel, которое стало уже традицией, делали полностью in-house. — Специально для своего хакатона Островок создал платформу, чтобы участвовать могли разработчики из любой точки мира. Выбирайте компанию-фаворита и вручайте ей золотую мышь — голосование доступно на сайте.

Кейсы из номинации «Дизайн года» ждут ваших голосов Осталась ровно неделя до конца голосования в премии Tproger. Уже дико хоч
+3
Кейсы из номинации «Дизайн года» ждут ваших голосов Осталась ровно неделя до конца голосования в премии Tproger. Уже дико хочется узнать, кто в лидерах! Но даже мы в команде стараемся держать интригу. И чтобы скоротать время, давайте посмотрим на дизайнерские кейсы компаний:
— AcademiaDev представила интерактивную инсталляцию, которая разлетелась по СМИ и собрала 48 млн охвата.
— ИИ-платформа Сократик рассказала, как устроена их система по генерации готовых презентаций.
— Островок поделился, как они сделали отдельную айдентику для Ostrovok! Tech.
Закидайте их своими голосами: https://tprg.ru/WLvk

Развёрнутое пояснение 1️⃣Список [𝚃𝚛𝚞𝚎, 𝚙𝚛𝚒𝚗𝚝("𝚌𝚑𝚎𝚌𝚔", 𝚎𝚗𝚍=" "), 𝚃𝚛𝚞𝚎] вычисляется слева направо при создании. 2️⃣Вызов 𝚙𝚛𝚒𝚗𝚝("𝚌𝚑𝚎𝚌𝚔", 𝚎𝚗𝚍=" ") печатает check (с пробелом вместо переноса строки) и возвращает 𝙽𝚘𝚗𝚎 — все функции без явного 𝚛𝚎𝚝𝚞𝚛𝚗 возвращают 𝙽𝚘𝚗𝚎. 3️⃣Список превращается в [𝚃𝚛𝚞𝚎, 𝙽𝚘𝚗𝚎, 𝚃𝚛𝚞𝚎]. 4️⃣Функция 𝚊𝚕𝚕() проверяет истинность всех элементов. Первый элемент 𝚃𝚛𝚞𝚎 — истинный, второй 𝙽𝚘𝚗𝚎 — ложный, поэтому 𝚊𝚕𝚕() сразу возвращает False. 5️⃣Переменная 𝚛𝚎𝚜𝚞𝚕𝚝 получает False, и печатается check (из 𝚙𝚛𝚒𝚗𝚝), а затем False. Почему это важно Встраивание функций с побочными эффектами в проверки 𝚊𝚕𝚕() или 𝚊𝚗𝚢() может давать неожиданный результат, если функция возвращает 𝙽𝚘𝚗𝚎 или другое falsy-значение.

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

photo content

Какой кейс станет облачным продуктом года? Давайте думать, подсказывайте голосовать! В этой номинации Tproger Awards также уч
+5
Какой кейс станет облачным продуктом года? Давайте думать, подсказывайте голосовать! В этой номинации Tproger Awards также участвуют пять компаний. Вот статьи про их продукты:
👍ПАК виртуализации от Гравитона, который построен по гиперконвергентной архитектуре, что предусматривает простое и предсказуемое масштабирование.
👍ИИ-ассистент от Рунити, который начинался как внутренний продукт, но уже вышел на внешний рынок.
👍VPS от SmartApe, который помог онлайн-школе выдержать рост нагрузки в 5 раз.
👍Контейнерная платформа «Штурвал» от Лаборатории Числитель, благодаря которой система стала устойчива к высоким нагрузкам.
👍Облачная платформа от Selectel, которая позволяет компаниям самим управлять данными, подключать нужные сервисы в несколько кликов и иметь доступ к поддержке 24/7.
Что из этого достойно золотой мыши — решать вам. Переходите на сайт голосования и выбирайте тот самый кейс 👍

Развёрнутое пояснение 1️⃣Начальные значения: 𝚊 = 𝟶, 𝚋 = 𝟷. 2️⃣Выражение 𝚊, 𝚋 = 𝚋, 𝚊 + 𝚋 сначала вычисляет правую часть как кортеж: (𝚋, 𝚊 + 𝚋) → (𝟷, 𝟶 + 𝟷) → (𝟷, 𝟷). 3️⃣Только после этого значения распаковываются: 𝚊 = 𝟷, 𝚋 = 𝟷. 4️⃣Можно ожидать, что 𝚋 = 𝟸, думая, что сначала 𝚊 станет 𝟷, а потом 𝚊 + 𝚋 = 𝟷 + 𝟷 = 𝟸. Но нет — правая часть вычисляется со старыми значениями. Почему это важно Это то, что делает 𝚊, 𝚋 = 𝚋, 𝚊 безопасным свопом без временной переменной. Но в более сложных выражениях, как здесь (числа Фибоначчи), легко неправильно предсказать результат, если не помнить это правило.

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

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

photo content

Выбираем лучший продукт года🐀 У нас в разгаре премия Tproger — в ней мы выбираем лучшие ИТ-разработки среди 16 компаний. Сег
+5
Выбираем лучший продукт года🐀 У нас в разгаре премия Tproger — в ней мы выбираем лучшие ИТ-разработки среди 16 компаний. Сегодня ближе знакомимся с участниками номинации «Продукт года». В ней участвуют пять компаний. Изучаем:
👍ОТП Банк представляет ASOC-сканер, который спроектировал один разработчик за месяц.
👍Гравитон делится кейсом создания ПО мониторинга без агентов, который можно затестить бесплатно.
👍NetVision борется с недобросовестными самокатчиками с помощью платформы интеллектуального мониторинга СИМ.
👍Solar показывает appScreener, который вырос из стартапа до стандарта рынка; при работе над ним сотрудники получили научные степени.
👍Reksoft рассказывает о платформе Brain ERM, который помогает компаниям экономить до 70% времени на рутинных HR-операциях.
Если вы еще не проголосовали за понравившийся продукт — самое время это сделать. Переходите на сайт премии и выбирайте свой релиз года. Пусть золотая мышь достанется команде лучших 🔥

Развёрнутое пояснение 1️⃣𝚒𝚗𝚝("𝟶𝟷𝟶") вызывается без второго аргумента, значит основание — 𝟷𝟶. Строка "𝟶𝟷𝟶" парсится как десятичное число, ведущий ноль не имеет значения. Результат: 𝟷𝟶. 2️⃣Литерал 𝟶𝚘𝟷𝟶 в Python — это восьмеричная запись: 𝟷 × 𝟾 + 𝟶 = 𝟾. 3️⃣В Python 2 запись 𝟶𝟷𝟶 без буквы 𝚘 тоже была восьмеричной, что вызывало путаницу. В Python 3 это запретили: 𝟶𝟷𝟶 как литерал — это SyntaxError, нужно писать 𝟶𝚘𝟷𝟶. 4️⃣Но 𝚒𝚗𝚝("𝟶𝟷𝟶") — это парсинг строки, и тут ведущий ноль просто пропускается. Почему это важно При парсинге данных из файлов или API числа вроде "010" могут означать и десятичное 𝟷𝟶, и восьмеричное 𝟾 — зависит от контекста. Если нужен восьмеричный парсинг, пишите 𝚒𝚗𝚝("𝟶𝟷𝟶", 𝟾) явно.

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

photo content

Развёрнутое пояснение 1️⃣Внутри блока 𝚎𝚡𝚌𝚎𝚙𝚝 создаются две переменные: 𝚎 (алиас исключения) и 𝚖𝚜𝚐 (обычная строка). 2️⃣По спецификации Python, 𝚎𝚡𝚌𝚎𝚙𝚝 ... 𝚊𝚜 𝚎 неявно выполняет 𝚍𝚎𝚕 𝚎 при выходе из блока. Это сделано потому, что объект исключения хранит ссылку на traceback, который ссылается на все локальные переменные фрейма — без удаления возникнет утечка памяти. 3️⃣Переменная 𝚖𝚜𝚐 — обычная строка, она не удаляется и доступна после блока. 4️⃣𝚙𝚛𝚒𝚗𝚝(𝚖𝚜𝚐) срабатывает, а вот второй, а 𝚙𝚛𝚒𝚗𝚝(e) при обращении к 𝚎 выбрасывает NameError. Почему это важно Если нужно сохранить исключение для использования после блока 𝚎𝚡𝚌𝚎𝚙𝚝, его нужно явно присвоить другой переменной (как 𝚖𝚜𝚐 в примере). Иначе код упадёт в неожиданном месте.