Как указано в комментариях, у вас есть завершающие символы новой строки в одной из строк. Следовательно, они не равны.
Однако я не просто удалил бы новую строку. Всегда хорошая практика, если ваша логика это позволяет, нормализовать строки перед проверкой на равенство. Есть много вещей, которые вы можете сделать, чтобы нормализовать:
def normalize(string):
string = string.strip() # Remove any leading or trailing whitespaces
string = string.lower() # Make all letters lowercase
string = " ".join(string.split()) # If the user hit spacebar twice, for example, will remove the double space. Note can have side effects.
return string
Затем проверьте
if normalize(string1) == normalize(string2):
do_something()
На самом деле, если вы имеете дело с пользовательским вводом, даже этого может быть недостаточно. Например, если пользователь сделает опечатку, она не будет соответствовать.
Так что я рекомендую также взглянуть на библиотеку нечетких слов
from fuzzywuzzy import fuzz
def similar(string1, string2):
ratio = fuzz.ratio(string1, string2)
return ratio >= 85 # number between 0 and 100. Higher means fewer differences are allowed
Fuzzywuzzy очень мощный и простой в использовании. Для получения дополнительной информации: https://github.com/seatgeek/fuzzywuzzy