Глава 9 · Выполняй мою команду!
Чем отличаются = и ==, и как сравнивать строки
Одна из самых частых ошибок новичков — и как строки из главы 8 участвуют в условиях.
= — это не то же самое, что ==
Этот раздел заслуживает отдельного внимания — путаница между одиночным и двойным «равно» встречается постоянно.
Два разных оператора: = и ==
= (один знак) — ПРИСВАИВАНИЕ
name = "Anna"
# смысл: связать имя name
# со значением "Anna".
# Ничего не сравнивается!
== (два знака) — СРАВНЕНИЕ
name == "Anna"
# смысл: равны ли значения?
# результат — True или False,
# сама переменная не меняется
Что использовать сегодня: Перепутать
= и == — одна из самых частых ошибок у новичков в любом языке программирования. Если в условии if случайно написать одиночный =, Python сразу сообщит об ошибке синтаксиса — присваивание нельзя использовать как условие, так что эта конкретная ошибка, к счастью, не проходит незамеченной.!= — «не равно»
!= — оператор, обратный ==:
ne_ravno.py
password = ""
print(password != "") # False — пароль как раз пустой
password = "secret123"
print(password != "") # True — пароль НЕ пустой
Почему != , а не ≠
В математике «не равно» пишут одним значком — ≠. На клавиатуре такого значка нет, и Python (как и C, Java, JavaScript и почти все языки программирования) не понимает его как код — писать нужно ровно два обычных символа подряд: восклицательный знак и знак равенства,
!=. Это два разных, но эквивалентных обозначения одной и той же идеи: ≠ — запись для человека на бумаге, != — запись для Python. Если в коде на этом сайте != выглядит как единый перечёркнутый значок — это лишь особенность шрифта редактора (лигатура), которая красиво отображает два символа рядом; печатать при этом всё равно нужно ! и = по отдельности — отдельного «значка ≠» на клавиатуре искать не нужно, его там нет.Сравнение строк
Мы видели в главе 8: строки сравниваются по символам, и регистр важен:
sravnenie_strok.py
print("Python" == "python") # False — регистр важен
print("cat" < "dog") # True
«cat» < «dog» — не совсем «по алфавиту»
Python сравнивает строки по кодовым позициям символов, а не по «человеческому» алфавитному порядку словаря. Для обычных латинских букв в одном регистре результат обычно совпадает с интуицией, но при смешении регистров или разных алфавитов это уже не всегда «алфавитный порядок» в привычном смысле.
ЧУТЬ ГЛУБЖЕ — код символа
Каждому символу соответствует число — его код. Функция
ord() показывает его: ord("A") → 65, ord("a") → 97. Именно эти числа Python на самом деле сравнивает. Для этой главы знать точные числа не обязательно — важно лишь понимать, что сравнение строк работает через них, а не через словарь.Нормализация перед сравнением
Пользователь может ввести «Да», «ДА», « да» — с разным регистром и пробелами. Методы строк из главы 8 решают эту проблему одной строкой:
normalizaciya.py
answer = input("Продолжить? ").strip().lower()
if answer == "да":
print("Продолжаем")
.strip() убирает случайные пробелы по краям,
.lower() приводит к нижнему регистру — теперь неважно, как
именно пользователь набрал ответ.
Практика: == против =, != и сравнение строк
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки