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

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

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

Вопросы 1620 из 40

16Нужно проверить, что две переменные `a` и `b` содержат одинаковый текст. Какое выражение использовать?
A`a is b`
B`a = b`
C`a in b`
D`a == b`
Ответ: Для сравнения значений строк используют оператор `==`. Он сравнивает содержимое, а не идентичность объектов.

`a == b` сравнивает значения и вернёт `True`, если строки одинаковы по содержимому. `a is b` — проверка идентичности объекта в памяти и может вернуть `False` для двух разных, но одинаковых строк. `a = b` — это не сравнение, а присваивание: оно не возвращает булево значение и просто перезаписывает `a`. `a in b` ищет вхождение `a` как подстроки в `b`, что не совпадает с задачей проверки полной равности текста.

Подробный разбор →
17Чему равно выражение `"a,b,c".split(",")`?
A`["a", "b", "c"]`
B`"a"`
C`"a,b,c"`
D`("a", "b", "c")`
Ответ: `.split()` разбивает строку на список по разделителю.

Метод `.split(",")` разделяет строку по запятой и возвращает список подстрок. Разделитель в результат не входит, поэтому `"a,b,c".split(",")` даст список из трёх строк: `"a"`, `"b"` и `"c"`.

Подробный разбор →
18Вы хотите проверить, что переменная `x` не является `None`, используя оператор идентичности. Какое выражение нужно написать?
A`x != None` через оператор неравенства значений вместо проверки идентичности
B`x is not_none` через гипотетический оператор отрицания идентичности по имени
C`not x is None` с приоритетом оператора `not`, применённого ко всему выражению
D`x is not None` через оператор идентичности с прямой проверкой на объект `None`
Ответ: Для проверки «не `None`» с идентичностью используется `is not`.

Для проверки на `None` принято использовать оператор идентичности `is`/`is not`, потому что `None` — синглтон. Правильная форма — `x is not None`. Сравнения через `==` и `!=` работают по значению и могут давать неожиданный результат для пользовательских классов с переопределённым `__eq__`. Конструкции `x not None` и `x == not None` — синтаксически некорректны.

Подробный разбор →
19Пусть `items = [0]`. Какой результат даст `bool(items)`?
AЗначение `False` из-за наличия «ложного» элемента `0` внутри переданного списка
BОшибка `TypeError` при попытке вызвать `bool()` от объекта типа `list` напрямую
CЗначение `True` из-за непустого списка `items`, даже если внутри него лежит `0`
DЗначение `None` из-за отсутствия однозначного булева значения для списочного объекта
Ответ: Непустые контейнеры считаются истинными в булевом контексте.

В булевом контексте (в `if`, `while` или при вызове `bool()`) контейнеры оцениваются по пустоте. Пустой список `[]` — это `False`, а непустой список `[0]` — это `True`, даже если внутри есть «ложное» значение `0`.

Подробный разбор →
20Чему равно выражение `5 == '5'`?
AЗначение `True` при автоматическом приведении строки `'5'` к числу для сравнения
BЗначение `False` при отсутствии приведения типов в операторе `==` для `int` и `str`
CОшибка `TypeError`: сравнение `int` и `str` через `==` падает во время выполнения
DЗначение `None`: оператор `==` отдаёт пустой результат при разнице типов операндов
Ответ: Оператор `==` не приводит типы автоматически: `int` и `str` не считаются равными.

Хотя `5` и `'5'` выглядят похоже, это разные типы: `int` и `str`. В Python `==` не выполняет неявное преобразование типов, поэтому `5 == '5'` даёт `False`. Если нужно сравнить, приведите типы явно: `5 == int('5')`.

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

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

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

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

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

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