Python - Сравнительные операторы: Пользовательский руководство для начинающих

Привет, стремящийся к программированию на Python! Я рад стать вашим проводником в этом увлекательном путешествии по миру сравнительных операторов. Как человек, который многие годы преподает Python, я уверяю вас, что освоение этих концепций станет переломным моментом в вашем приключении по программированию. Поэтому давайте начнем!

Python - Comparison Operators

Что такое сравнительные операторы?

Представьте себе, что вы арбитр в баскетбольном матче. Ваша задача — сравнивать очки, рост игроков или даже оставшееся время на часах. В Python сравнительные операторы играют аналогичную роль — они помогают нам сравнивать значения и принимать решения на основе этих сравнений.

Различные сравнительные операторы в Python

Начнем с удобной таблицы всех сравнительных операторов, которые мы рассмотрим:

Оператор Название Пример
== Равно x == y
!= Не равно x != y
> Больше чем x > y
< Меньше чем x < y
>= Больше или равно x >= y
<= Меньше или равно x <= y

Теперь разберем их по одному с некоторыми интересными примерами!

Оператор "Равно" (==)

x = 5
y = 5
print(x == y)  # Вывод: True

name1 = "Alice"
name2 = "Bob"
print(name1 == name2)  # Вывод: False

Здесь мы спрашиваем Python: "Равны ли x и y?" В первом случае оба равны 5, поэтому результат True. В случае с именами Alice и Bob различаются, поэтому результат False.

Оператор "Не равно" (!=)

age1 = 25
age2 = 30
print(age1 != age2)  # Вывод: True

favorite_color = "blue"
print(favorite_color != "green")  # Вывод: True

Этот оператор задает вопрос: "Различается ли это от того?" Он возвращает True, если значения различаются, и False, если они одинаковы.

Операторы "Больше чем" (>) и "Меньше чем" (<)

temperature = 28
print(temperature > 25)  # Вывод: True
print(temperature < 30)  # Вывод: True

alphabet = "abc"
print("d" > alphabet)  # Вывод: True

Эти операторы работают так же, как и в математике. Но заметьте, что мы можем даже сравнивать строки! Python сравнивает их на основе их алфавитного порядка.

Операторы "Больше или равно" (>=) и "Меньше или равно" (<=)

score = 85
print(score >= 80)  # Вывод: True
print(score <= 90)  # Вывод: True

print("apple" <= "banana")  # Вывод: True

Эти операторы аналогичны > и <, но они также возвращают True, если значения равны.

Сравнение вещественных чисел

Сравнение вещественных чисел может быть сложным из-за проблем с точностью. Рассмотрим пример:

x = 0.1 + 0.2
y = 0.3
print(x == y)  # Вывод: False

Подождите, что? Не должно быть 0.1 + 0.2 равно 0.3? Добро пожаловать в увлекательный мир вещественного арифметики! Из-за того, как компьютеры представляют десятичные дроби, иногда мы получаем маленькие неточности. Для практического сравнения мы можем использовать функцию round() или маленькую погрешность:

print(round(x, 1) == round(y, 1))  # Вывод: True

tolerance = 0.0001
print(abs(x - y) < tolerance)  # Вывод: True

Сравнение комплексных чисел

Python даже позволяет нам работать с комплексными числами! Однако прямое сравнение их с < или > не имеет много смысла математически, поэтому Python не позволяет это делать:

a = 1 + 2j
b = 3 + 4j
print(a == b)  # Вывод: False
# print(a < b)  # Это вызовет ошибку!

Мы можем сравнить их модули:

print(abs(a) < abs(b))  # Вывод: True

Сравнение логических значений

Логические значения просты - True считается больше чем False:

print(True > False)  # Вывод: True
print(True == 1)  # Вывод: True
print(False == 0)  # Вывод: True

Это последнее может удивить вас - в Python True фактически эквивалентен 1, а False — 0!

Сравнение последовательных типов

При сравнении последовательностей, таких как списки, кортежи или строки, Python сравнивает их элемент за элементом:

print([1, 2, 3] < [1, 2, 4])  # Вывод: True
print("hello" < "hello world")  # Вывод: True
print((1, 2, 3) == (1, 2, 3))  # Вывод: True

Python начинает с начала и сравнивает каждый элемент до тех пор, пока не найдет различие или не достигнет конца.

Сравнение объектов словарей

Словари немного особенны. Вы можете проверить, равны ли они, но не можете использовать <, >, <= или >= с ними:

dict1 = {"a": 1, "b": 2}
dict2 = {"b": 2, "a": 1}
print(dict1 == dict2)  # Вывод: True

# print(dict1 < dict2)  # Это вызовет ошибку!

Интересно, что порядок ключей не имеет значения для сравнения равенства в словарях.

Итак, вот и все! Вы только что завершили беглый обзор сравнительных операторов Python. Помните, практика совершенства, поэтому не стесняйтесь экспериментировать с этими концепциями в своем коде. И скоро вы будете сравнивать и противопоставлять лучших из них!

Счастливого кодирования, и пусть ваши сравнения всегда будут True, когда вы хотите, чтобы они были!

Credits: Image by storyset