Синтаксис и типы данных: вопросы для собеседования (часть 2)

Базовые типы (int, float, str, bool), присваивание, f-строки, type hints — первое, что проверяют на собеседовании по Python. Спрашивают про мутабельность, разницу между is и ==, приведение типов. Без уверенного знания основ синтаксиса невозможно перейти к более сложным темам.

Коллекции и структуры данныхГенераторы списков и встроенные функцииЦиклы и условияИсключения и отладкаРабота с файлами: JSON и CSVФункции и аргументыИтераторы и генераторыNumPy: основыPandas и DataFrame

Вопросы 610 из 40

6Чему равно значение переменной `result` после выполнения строки `result = 3 < 5`?
AЛогическое значение `False` типа `bool` при ложном результате операции сравнения
BСтрока `"3 < 5"` типа `str` как текстовое представление самого выражения сравнения
CЦелое число `1` типа `int` после приведения логического результата к числу `int`
DЛогическое значение `True` типа `bool` при истинном результате операции сравнения
Ответ: Операции сравнения в Python возвращают значение типа `bool`: `True` или `False`.

Выражение `3 < 5` истинно, поэтому в `result` будет записано значение `True` типа `bool`. Результат операций сравнения (`<`, `>`, `==` и подобных) в Python всегда булевский: либо `True`, либо `False`. Целое число `1` или строка с текстом выражения тут не появятся, хотя `True` при арифметике может вести себя как `1`. Значение `False` соответствовало бы ложному сравнению, а здесь сравнение истинно.

Подробный разбор →
7Пусть `nums = [10, 20, 30]`. Какой элемент вернёт обращение `nums[-1]`?
AЭлемент `30`: индекс `-1` указывает на последний элемент списка `nums`
BЭлемент `10`: индекс `-1` указывает на первый элемент списка `nums`
CИсключение `IndexError`: отрицательные индексы для `list` запрещены
DЭлемент `20`: индекс `-1` указывает на предпоследний элемент списка
Ответ: Отрицательный индекс `-1` указывает на последний элемент последовательности.

В Python отрицательные индексы считают элементы с конца: `-1` — последний, `-2` — предпоследний, и так далее. Для списка `[10, 20, 30]` индекс `-1` соответствует элементу `30`. Это удобный способ обратиться к последним элементам без вычисления длины через `len()`.

Подробный разбор →
8Если `ord('a')` возвращает `97`, то что вернёт вызов `chr(97)`?
AСтроку `'97'`: текстовое представление числа `97`, обратное к `ord()` для строки `'a'`
BЦелое число `97`: операция `chr()` напрямую обратной к `ord()` в Python не является
CСимвол `'a'`: функция `chr()` возвращает символ по Unicode-коду, обратно к `ord('a')`
DСписок байтов символа с кодом `97` в кодировке `utf-8` через обратное преобразование
Ответ: `ord()` и `chr()` — обратные функции: одна возвращает Unicode-код символа, другая — символ по коду.

Функция `ord()` принимает один символ и возвращает его Unicode-код (целое число). Функция `chr()` делает обратное — по числовому коду возвращает соответствующий символ. Таким образом, `chr(ord('a'))` вернёт `'a'`, а `chr(97)` тоже вернёт символ `'a'`.

Подробный разбор →
9После выполнения `y = str(42)` чему равен `y` и какой у него тип?
AЧисло `42` типа `int`, поскольку функция `str()` оставляет целые числа без изменений
BСтрока `"42"` типа `str`, поскольку функция `str()` приводит значение к строке
CЧисло `42.0` типа `float`, поскольку функция `str()` неявно превращает в дробное
DЗначение `True` типа `bool`, поскольку любое ненулевое число становится булевым
Ответ: `str()` преобразует значение в строку типа `str`.

Функция `str()` превращает объект в его строковое представление. После `y = str(42)` переменная `y` содержит строку `"42"`, а не число. Это важно, например, при склеивании текста: `\"Возраст: \" + str(18)`. Никакого приведения к `float` или `bool` тут не происходит — функция просто оборачивает значение в строку.

Подробный разбор →
10Пусть `t = (1, 2, 3)`. Что произойдёт при попытке выполнить `t[0] = 10`?
AКортеж изменится на `(10, 2, 3)` без каких-либо ошибок и предупреждений
BБудет исключение `TypeError`, потому что кортежи в Python неизменяемы
CPython молча создаст новый кортеж `(10, 2, 3)` и присвоит его переменной `t`
DЭлемент `t[0]` станет равен `10`, а остальные элементы кортежа удалятся
Ответ: Кортежи в Python неизменяемы, поэтому присвоить значение по индексу нельзя — будет `TypeError`.

Кортеж — неизменяемая последовательность, у него нет операции присвоения по индексу. Поэтому `t[0] = 10` сразу вызовет `TypeError` с сообщением о том, что объект не поддерживает присвоение элементов. Если значение действительно нужно изменить, придётся собрать новый кортеж: например, `t = (10,) + t[1:]`. Это ключевое отличие кортежей от списков, где `t[0] = 10` работает штатно.

Подробный разбор →
12345678

Хотите тренировать интерактивно?

В приложении — таймер, прогресс, стрики и 1700+ вопросов по всем темам.

Тренировать Python в Telegram

Другие темы: Python

Коллекции и структуры данныхГенераторы списков и встроенные функцииЦиклы и условияИсключения и отладкаРабота с файлами: JSON и CSVФункции и аргументыИтераторы и генераторыNumPy: основыPandas и DataFrame