Автор оригинала: Pankaj Kumar.
Сравнение строки Python может быть выполнено с использованием равенства (==) и сравнения (<,>,! =, <=,> =). Нет специальных методов для сравнения двух строк.
Сравнение строки Python
Сравнение строки Python выполняется с использованием символов в обоих строках. Персонажи в обеих строках сравниваются один за другим. Когда разные символы обнаружены, то его значение Unicode сравнивается. Персонаж с более низким значением Unicode считается меньше.
Давайте просмотрим некоторые примеры для сравнения строки.
fruit1 = 'Apple' print(fruit1 == 'Apple') print(fruit1 != 'Apple') print(fruit1 < 'Apple') print(fruit1 > 'Apple') print(fruit1 <= 'Apple') print(fruit1 >= 'Apple')
Выход:
True False False False True True
Обе строки точно такие же, следовательно, они равны. Так что оператор равенства возвращается в этом случае.
Давайте посмотрим на другой пример, где мы получим входы от пользователя, а затем сравнивать их.
fruit1 = input('Please enter the name of first fruit:\n') fruit2 = input('Please enter the name of second fruit:\n') if fruit1 < fruit2: print(fruit1 + " comes before " + fruit2 + " in the dictionary.") elif fruit1 > fruit2: print(fruit1 + " comes after " + fruit2 + " in the dictionary.") else: print(fruit1 + " and " + fruit2 + " are same.")
Выход:
Please enter the name of first fruit: Apple Please enter the name of second fruit: Banana Apple comes before Banana in the dictionary. Please enter the name of first fruit: Orange Please enter the name of second fruit: Orange Orange and Orange are same.
Давайте посмотрим, если сравнение чувствительно к регистру или нет? Также, если «A» приходит «A»?
print('apple' == 'Apple') print('apple' > 'Apple') print('A unicode is', ord('A'), ',a unicode is', ord('a'))
Выход:
False True A unicode is 65 ,a unicode is 97
Таким образом, «Apple» меньше по сравнению с «Apple» из-за их значений Unicode. Мы используем функцию ORD () для распечатки значения кода Unicode COMP.
Что если одна из строки сделана из второй строки и некоторых дополнительных символов?
print('Apple' < 'ApplePie')
Выход: Правда
Если последовательность символов одинакова в обоих строках, но у одного из них есть некоторые дополнительные символы, то строка большей длины считается больше другого.
Что делать, если мы используем <и> операторы, чтобы сравнить две равные строки?
print('apple' < 'apple') print('apple' > 'apple')
Выход:
False False
Очевидно, обе строки не являются ни меньшими, ни больше, чем другой. Следовательно, выход является ложным в обоих случаях.