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

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

Ir al canal en Telegram

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

Mostrar más
7 131
Suscriptores
+424 horas
+57 días
+130 días
Archivo de publicaciones
Что выведет код?
Anonymous voting

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

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

Где лучшие тусовки? На тех-ивентах! Последняя по очереди, но не по значимости — номинация «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

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

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

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

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

Выбираем лучший продукт года🐀 У нас в разгаре премия 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

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