Потому что они не сравнимые типы. Если вы поставите число в кавычки, оно станет строкой. Это в основном означает, что к нему относятся как к букве или набору букв, а не как к числу, которое может быть использовано для математики. Таким образом, выражение действительно спрашивает, является ли буква 1 такой же, как число 1. И хотя они могут выглядеть одинаково для человека, программа видит их совершенно разными.
оператор == делает ничего не преобразовывать, это больше похоже на функцию, которая просматривает два входа, проверяет, совпадают ли они, и возвращает логическое значение (true или false).
Если вы хотите сравнить строку и целое число в python, то вам нужно выполнить преобразование для одного или обоих из них, указав программе, во что преобразовать ее:
var1 = 132
var2 = "132"
print(str(var1) == str(var2))
print(int(var1) == int(var2))
print(var1 == var2)
вернет
true
true
false
str()
говорит интерпретатору обрабатывать переменную как строку, тогда как int()
говорит ему обрабатывать ее как число.
print(str(var1)+str(var2))
print(int(var1)+int(var2))
будет вернуть 123123 и 246 соответственно.