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

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

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

Вопросы 1115 из 40

11Какой результат вернёт вызов `type(10)`?
A`<class 'int'>`
B`<class 'float'>`
C`<class 'str'>`
D`<class 'bool'>`
Ответ: `type()` возвращает тип объекта, например `int` для целых чисел.

Число `10` в Python является целым числом типа `int`. Поэтому выражение `type(10)` вернёт тип этого объекта: `<class 'int'>`.

Подробный разбор →
12Что будет в переменной цикла на каждой итерации `for x in enumerate(["a", "b", "c"])`?
AКортежи `('a', 0)`, `('b', 1)`, `('c', 2)`: на первом месте элемент списка, далее порядковый номер
BКортежи `(0, 'a')`, `(1, 'b')`, `(2, 'c')`: на первом месте порядковый номер, далее элемент списка
CТолько индексы элементов: значения `0`, `1`, `2` без сопровождающих букв из исходного списка `['a', 'b', 'c']`
DТолько сами элементы: значения `'a'`, `'b'`, `'c'` без сопровождающих числовых индексов от `enumerate`
Ответ: `enumerate()` возвращает пары (индекс, элемент), начиная с нуля по умолчанию.

Функция `enumerate()` оборачивает итерируемый объект и на каждом шаге выдаёт кортеж из двух значений: порядковый номер и сам элемент. Порядок всегда (индекс, элемент), а не наоборот. Начальный индекс можно изменить параметром `start`: `enumerate(lst, start=1)`. Поэтому первая итерация по списку из трёх букв даст `(0, "a")`.

Подробный разбор →
13Какой результат даст выражение `set([1, 2, 2, 3, 3])`?
AМножество `{1, 2, 2, 3, 3}` целиком: все пять элементов сохраняются в результате как переданы
BМножество `{1, 2, 3}` из трёх уникальных элементов: дубликаты автоматически отбрасываются `set()`
CСписок `[1, 2, 3]` без дубликатов: функция `set()` возвращает тип `list` после отбрасывания повторов
DБудет исключение из-за повторяющихся элементов в исходной последовательности при вызове `set()`
Ответ: Функция `set()` создаёт множество, автоматически убирая все повторяющиеся элементы.

Множество (`set`) в Python хранит только уникальные значения. При создании через `set()` из списка все дубликаты отбрасываются. Результат — `{1, 2, 3}`. Множество не сохраняет порядок элементов. Вариант со списком неверен, потому что `set()` всегда возвращает тип `set`, а не `list`.

Подробный разбор →
14Какие из значений `None`, `0`, `[]`, `'0'` будут ложными в условии `if`?
AЛожным будет только `None`, а `0`, `[]` и `'0'` считаются истинными значениями
BЛожными будут `None`, `0` и пустой список `[]`, а строка `'0'` считается истинной
CВсе четыре значения ложные, потому что ноль в строке `'0'` тоже считается нулём
DЛожными будут `0` и `[]`, а `None` и `'0'` оба считаются истинными значениями
Ответ: В Python ложными считаются `None`, числовой ноль, пустые коллекции и пустая строка.

Ложные значения в Python: `None`, `False`, `0`, `0.0`, пустая строка `''`, пустые коллекции (`[]`, `{}`, `set()`). Строка `'0'` непустая (содержит один символ), поэтому она истинна. А вот `None`, `0` и `[]` все являются ложными. Это важно знать для корректных проверок `if value:`.

Подробный разбор →
15Пусть `x = [10, 20, 30]`. После выполнения `del x[1]` каким станет список и что произойдёт с переменной `x`?
AСписок станет `[10, 30]`, обращение к `x` после этого вызовет ошибку `NameError`
BСписок станет `[10, 30]`, переменная `x` ссылается на тот же изменённый список
CСписок станет `[10, 30]`, переменная `x` будет равна `None` после удаления элемента
DОбе строки вызовут ошибку `TypeError`: `del` работает только с самой переменной
Ответ: Оператор `del` по индексу удаляет элемент из списка, сама переменная при этом сохраняется.

Инструкция `del x[1]` удаляет элемент с индексом `1` (значение `20`) из списка. Список меняется на месте и становится `[10, 30]`, а переменная `x` продолжает ссылаться на тот же объект. Если бы мы написали `del x`, удалилась бы сама переменная, и обращение к `x` после этого вызвало бы `NameError`. Значение `None` сюда не приходит — `del` ничего не присваивает, а просто удаляет элемент.

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

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

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

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

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

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