Python: задачки и вопросы
7.54K subscribers
1.25K photos
1 video
1 file
111 links
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
Код вызовет 𝚂𝚢𝚗𝚝𝚊𝚡𝙴𝚛𝚛𝚘𝚛, потому что в Python нельзя использовать «ведущий» ноль при объявлении целых чисел.

Ведущий ноль в Python имеет специальное значение для восьмеричной системы счисления, но синтаксис для этого отличается (𝟶𝚘𝟷𝟶 — число 𝟾 в этой системе, к примеру). Для восьмеричных чисел используется префикс 𝟶𝚘.
👌7👍3👎1
🧩 Какой из способов объявить числовой литерал валидный?
Anonymous Quiz
46%
Первый (а)
13%
Третий (c)
17%
Второй и третий (b и c)
23%
Все три
👍5👎1
В Python нижнее подчеркивание в числовых литералах игнорируется и служит только для улучшения читаемости кода.

Любанович Б., «Простой Python», глава 𝟹:

«Нижние подчёркивания _ будут просто проигнорированы, [их можно ставить] на любую позицию после первой цифры».

«[Если в качестве разделителя групп разрядов вы используете запятую], то вместо миллиона получите кортеж из трех значений 𝟷, 𝟶, 𝟶».
👍5👎1
🧩 Что выведет код?
Anonymous Quiz
5%
10
64%
25
25%
-25
6%
Error
👍5👎1
Оператор возведения в степень (∗∗) имеет более высокий приоритет, чем унарный минус (−). Поэтому выражение −𝟻 ∗∗ 𝟸 интерпретируется как −(𝟻 ∗∗ 𝟸).

🔘 Сначала выполняется 𝟻 ∗∗ 𝟸 = 𝟸𝟻
🔘 Затем применяется унарный минус: −(𝟸𝟻) = −𝟸𝟻

Если возводим -5 в степень 2, используем скобки так: (−𝟻) ∗∗ 𝟸 = 𝟸𝟻.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍1👎1
🪤 Что выведет код?
Anonymous Quiz
45%
98
13%
98.6
12%
99
31%
Error
👍21👎1
Любанович Б., «Простой Python», глава 𝟹:

«Функция 𝚒𝚗𝚝() будет преобразовывать в целые числа строки, состоящие из цифр и чисел с плавающей точкой, но не будет обрабатывать строки, содержащие десятичные точки или экспоненты».

В данном случае строка "𝟿𝟾.𝟼" содержит десятичную точку, что делает её непригодной для прямого преобразования.

Интерпретатор вызовет исключение 𝚅𝚊𝚕𝚞𝚎𝙴𝚛𝚛𝚘𝚛 с сообщением '𝚒𝚗𝚟𝚊𝚕𝚒𝚍 𝚕𝚒𝚝𝚎𝚛𝚊𝚕 𝚏𝚘𝚛 𝚒𝚗𝚝() 𝚠𝚒𝚝𝚑 𝚋𝚊𝚜𝚎 𝟷𝟶: '𝟿𝟾.𝟼'.

Для преобразования строки с десятичной точкой в целое число необходимо сначала использовать функцию 𝚏𝚕𝚘𝚊𝚝(), а затем 𝚒𝚗𝚝():
− 𝚏𝚕𝚘𝚊𝚝("𝟿𝟾.𝟼") → 𝟿𝟾.𝟼
− 𝚒𝚗𝚝(𝟿𝟾.𝟼) → 𝟿𝟾

Можно одной строкой: 𝚒𝚗𝚝(𝚏𝚕𝚘𝚊𝚝(«𝟿𝟾.𝟼»)) → 𝟿𝟾
1👍1👎1
🪤 Что выведет код?
Anonymous Quiz
34%
1
40%
2
21%
3
5%
Error
👍1👎1
Пасхавер Б., «Pandas в действии», глава 𝟹:

«Метод 𝚟𝚊𝚕𝚞𝚎_𝚌𝚘𝚞𝚗𝚝𝚜 по умолчанию возвращает полуоткрытые интервалы, включающие одну из граничных точек и не включающие другую. Круглая скобка означает, что значение не включается в интервал. Квадратная скобка означает, что значение включается».

В данном случае:
🔘 𝚋𝚒𝚗𝚜=[𝟷, 𝟹, 𝟻] создает два интервала: (𝟶.𝟿𝟿𝟿, 𝟹.𝟶] и (𝟹.𝟶, 𝟻.𝟶];
🔘 В первый интервал попадают значения 𝟷, 𝟸 и 𝟹 (𝟹 элемента);
🔘 Во второй интервал попадают значения 𝟺 и 𝟻 (𝟸 элемента).

При размещении значений объекта 𝚂𝚎𝚛𝚒𝚎𝚜 по корзинам 𝚙𝚊𝚗𝚍𝚊𝚜 может расширить любой из диапазонов до 𝟶,𝟷% в любом направлении, поэтому левая граница первого интервала становится 𝟶.𝟿𝟿𝟿 вместо 𝟷.𝟶.
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1👎1
🧩 Что выведет код?
Anonymous Quiz
1%
1
7%
2
71%
3
21%
Error
3👍1👎1
Булевы значения могут автоматически преобразовываться в числовые типы при выполнении арифметических операций.

Любанович Б., «Простой Python», глава 3:

«Булево значение 𝙵𝚊𝚕𝚜𝚎 рассматривается как 𝟶 или 𝟶.𝟶, когда смешивается с целыми числами или числами с плавающей точкой, а 𝚃𝚛𝚞𝚎 — как 𝟷 или 𝟷.𝟶»

В данном случае:
🔘 𝚃𝚛𝚞𝚎 автоматически преобразуется в 𝟷
🔘 Выполняется операция: 𝟷 + 𝟸 = 𝟹
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👎1
🧩 Исполнится ли код без ошибок?
Anonymous Quiz
73%
Да
27%
Нет
Из документации Python:

'𝙰𝚗 𝚎𝚡𝚙𝚛𝚎𝚜𝚜𝚒𝚘𝚗 𝚒𝚗 𝚙𝚊𝚛𝚎𝚗𝚝𝚑𝚎𝚜𝚎𝚜, 𝚜𝚚𝚞𝚊𝚛𝚎 𝚋𝚛𝚊𝚌𝚔𝚎𝚝𝚜 𝚘𝚛 𝚌𝚞𝚛𝚕𝚢 𝚋𝚛𝚊𝚌𝚎𝚜 𝚌𝚊𝚗 𝚋𝚎 𝚜𝚙𝚕𝚒𝚝 𝚘𝚟𝚎𝚛 𝚖𝚘𝚛𝚎 𝚝𝚑𝚊𝚗 𝚘𝚗𝚎 𝚙𝚑𝚢𝚜𝚒𝚌𝚊𝚕 𝚕𝚒𝚗𝚎 𝚠𝚒𝚝𝚑𝚘𝚞𝚝 𝚞𝚜𝚒𝚗𝚐 𝚋𝚊𝚌𝚔𝚜𝚕𝚊𝚜𝚑𝚎𝚜'.


«Выражение в скобках может быть разделено на несколько строк без использования символа обратного слеша»

В данном коде Python автоматически интерпретирует переносы строк внутри скобок как продолжение выражения. В итоге вычисляется арифметическое выражение: 𝟷 + 𝟸 + 𝟹 + 𝟺 = 𝟷𝟶.