Базовые типы (int, float, str, bool), присваивание, f-строки, type hints — первое, что проверяют на собеседовании по Python. Спрашивают про мутабельность, разницу между is и ==, приведение типов. Без уверенного знания основ синтаксиса невозможно перейти к более сложным темам.
`a == b` сравнивает значения и вернёт `True`, если строки одинаковы по содержимому. `a is b` — проверка идентичности объекта в памяти и может вернуть `False` для двух разных, но одинаковых строк. `a = b` — это не сравнение, а присваивание: оно не возвращает булево значение и просто перезаписывает `a`. `a in b` ищет вхождение `a` как подстроки в `b`, что не совпадает с задачей проверки полной равности текста.
Подробный разбор →Метод `.split(",")` разделяет строку по запятой и возвращает список подстрок. Разделитель в результат не входит, поэтому `"a,b,c".split(",")` даст список из трёх строк: `"a"`, `"b"` и `"c"`.
Подробный разбор →Для проверки на `None` принято использовать оператор идентичности `is`/`is not`, потому что `None` — синглтон. Правильная форма — `x is not None`. Сравнения через `==` и `!=` работают по значению и могут давать неожиданный результат для пользовательских классов с переопределённым `__eq__`. Конструкции `x not None` и `x == not None` — синтаксически некорректны.
Подробный разбор →В булевом контексте (в `if`, `while` или при вызове `bool()`) контейнеры оцениваются по пустоте. Пустой список `[]` — это `False`, а непустой список `[0]` — это `True`, даже если внутри есть «ложное» значение `0`.
Подробный разбор →Хотя `5` и `'5'` выглядят похоже, это разные типы: `int` и `str`. В Python `==` не выполняет неявное преобразование типов, поэтому `5 == '5'` даёт `False`. Если нужно сравнить, приведите типы явно: `5 == int('5')`.
Подробный разбор →В приложении — таймер, прогресс, стрики и 1700+ вопросов по всем темам.
Тренировать Python в Telegram