Здесь мы увидим несколько методов сравнения двух строк в Python.
- Способ 1: использование оператора ==
- Способ 2: использование оператора is
- Способ 3: использование функции cmp
- Способ 4: использование функции strcoll
- Метод 5: использование пользовательского метода
- Метод 6: использование !=
- Метод 7: использование SquenceMatcher
- Способ 8: использование оператора <
- Способ 9: использование оператора >
Способ 1: использование оператора ==
Вы можете использовать оператор ==, чтобы проверить, равны ли две строки в Python.
string1 = "USA"
string2 = "USA"
# Compare string1 and string2 for equality
if string1 == string2:
print("The strings are equal")
else:
print("The strings are not equal")
В коде определены две строковые переменные string1 и string2, обе со значением «США». Затем он проверяет, равны ли две строки, с помощью оператора ==.
- Если две строки равны, программа выведет «Строки равны», в противном случае — «Строки не равны». Поскольку две строки действительно равны, на выходе будет «Строки равны».
Output: The strings are equal
Способ 2: использование оператора is
Вы можете использовать оператор is, чтобы проверить, являются ли две строки одним и тем же объектом в памяти.
string1 = "United Kingdom"
string2 = "UNITED KINGDOM"
# Check if string1 and string2 refer to the same string in memory
if string1 is string2:
print("The strings are the same string")
else:
print("The strings are not the same string")
В этом коде создаются две строковые переменные: string1 и string2. Буквы в них написаны по-разному: в первой все буквы в верхнем регистре, а во второй — в нижнем.
Затем код использует оператор is, чтобы узнать, указывают ли эти две строки на один и тот же объект в памяти.
Output: The strings are not the same string
Способ 3: использование функции cmp
Функция cmp возвращает -1, если первая строка меньше второй, 0, если они равны, и 1, если первая строка больше второй.
def cmp(a, b):
return(a > b) -(a < b)
string1 = "Brazil"
string2 = "Brazil"
# Compare string1 and string2 using the cmp() function
if cmp(string1, string2) == 0:
print("The strings are equal")
elif cmp(string1, string2) < 0:
print("The first string is less than the second")
else:
print("The first string is greater than the second")
В приведенном выше коде определяется функция cmp(), которая принимает два аргумента и возвращает 1, если первый аргумент больше второго, -1, если он меньше второго, и 0, если они равны.
- Он использует функцию cmp() для сравнения строк1 и строки2 и на основе результата выводит сообщение.
Способ 4: использование функции strcoll
Функция strcoll аналогична cmp, но учитывает правила сравнения строк, специфичные для локали.
import locale
# Set the locale to en_US.UTF-8
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
# Define two string variables, string1 and string2
string1 = "cafe"
string2 = "caff"
# Use the strcoll() function to compare string1 and string2
if locale.strcoll(string1, string2) == 0:
print("The strings are equal")
elif locale.strcoll(string1, string2) < 0:
print("The first string is less than the second")
else:
print("The first string is greater than the second")
Приведенный выше код импортирует модуль локали, который обеспечивает способ обработки данных, специфичных для локали, таких как даты, время и форматы валют.
- Затем код устанавливает локаль en_US.UTF-8 с помощью функции setlocale(). Он определяет две строковые переменные, string1 и string2, и использует функцию strcoll() для их сравнения.

Метод 5: использование пользовательского метода
Мы собираемся создать функцию, которая принимает две строки в качестве аргументов и возвращает True, если они равны(без учета регистра), или False в противном случае.
# Define a function to compare two strings while ignoring case
def string_compare(str1, str2):
if str1.lower() == str2.lower():
return True
else:
return False
# Call the string_compare() function with "Canada" and "canada" as arguments
result = string_compare("Canada", "canada")
# Print the result
print(result)
Приведённый выше код определяет функцию string_compare(). Она сравнивает две строки — str1 и str2 — без учёта регистра. Если строки равны, функция возвращает True, в противном случае — False.
- Функция string_compare() вызывается с «Канадой» и «Канадой» в качестве аргументов, а полученное логическое значение присваивается переменной результата. Наконец, значение результата выводится на консоль.
Метод 6: использование !=
Оператор!= используется для проверки неравенства двух значений. В контексте строк можно использовать!=, чтобы узнать, не равны ли две строки.
# Define two strings with the same value
string1 = "USA"
string2 = "USA"
# Compare the two strings for inequality
if string1 != string2:
# If the strings are not equal, print a message
print("The two strings are not equal")
else:
# If the strings are equal, print a different message
print("The two strings are equal")
В приведённом коде оператор!= используется для проверки, не является ли строка1 пустой. Поскольку «привет» не пустая строка, вывод этого кода будет «Строка не пуста».
Output: The two strings are equal
Метод 7: использование SquenceMatcher
Для сравнения двух строк и определения степени их сходства вы можете воспользоваться классом SequenceMatcher из модуля difflib.
# Import the difflib module
import difflib
# Define two strings to be compared
string1 = "apple"
string2 = "applesauce"
# Create a SequenceMatcher object to compare the strings
s = difflib.SequenceMatcher(None, string1, string2)
# Get the similarity between the two strings
similarity = s.ratio()
# Print the similarity to the console
print(f"The similarity between the two strings is {similarity:.2f}")
Приведенный выше код импортирует модуль difflib и использует его для сравнения сходства двух строк: string1 и string2.
- Объект SequenceMatcher создается с двумя строками в качестве аргументов, и для этого объекта вызывается метод Ratio(), чтобы получить оценку сходства между строками. Полученное значение сохраняется в переменной сходства.
- Наконец, значение сходства выводится на консоль с помощью f-строки с точностью до двух десятичных знаков.
Output: The similarity between the two strings is 0.67
В этом случае сходство между «яблоко» и «яблочное пюре» составляет 0,67, что указывает на то, что эти две строки в некоторой степени похожи, но не идентичны.
Способ 8: использование оператора <
Оператор выполняет лексикографическое сравнение двух строк. Он сравнивает символы в строках слева направо. Если первая строка меньше второй, оператор возвращает значение True.
# Define two string variables
name1 = 'Python good'
name2 = 'Python is good'
# Compare the strings and print the result
if name1 < name2:
print(name1,'is less than',name2)
В представленном коде создаются две строковые переменные – name1 и name2. После этого используется оператор if для сравнения значений этих переменных с помощью оператора «меньше» (<).
Способ 9: использование оператора >
Оператор сравнивает две строки лексикографически, то есть сравнивает их символы слева направо. Если первая строка больше второй, он возвращает значение True.
# Define two string variables name1 = 'Python is good' name2 = 'Python good' # Compare the strings and print the result if name1 > name2: print(name1,'is greater than',name2)
Output: Python is good is greater than Python good