Сравнение строк в Python

В Python строка – это последовательность символов, причем отдельный символ тоже считается строкой. Все символы имеют разные значения Unicode или ASCII.

Строки в Python можно сравнивать. При этом, по сути, сравниваются их символы. Сравнение происходит последовательно: первый символ одной строки сравнивается с первым символом другой. Если они равны, сравниваются символы на следующей позиции.

Следует учитывать, что компьютер сравнивает не символы как таковые, а их значения в Unicode. Чем больше это значение, тем «больше» символ.

Сравнение строк осуществляется так же, как и сравнение чисел, т.е. для этого нет каких-то специальных методов. Для прямого сравнения значений строк используется оператор ==. Если строки идентичны, возвращается True, в противном случае – False.

Для сравнения строк в Python используются разные операторы. Давайте начнем с операторов == и !=, а затем разберем остальные.

Сравнение строк при помощи == и !=

Сравнение двух строк можно эффективно выполнить с помощью операторов == и !=. Оператор == возвращает True, если строки идентичны, и False в противном случае. Оператор != действует наоборот.

Рассмотрим следующий пример:

language = 'chinese'
print(language == 'chinese')
print(language != 'chinese')
# Output:
# True
# False

В данном коде language – это переменная, содержащая строку «chinese». Сравнение выполняется путем поочередного сравнения символов одной строки с символами другой строки.

В качестве результата оператор == возвращает True, а оператор != возвращает False, потому что сравниваемые строки одинаковые.

Теперь давайте сравним символы верхнего и нижнего регистра.

Чтобы показать разницу между одинаковыми буквами в разных регистрах мы выведем их значения Unicode при помощи функции ord(). Символы с меньшим значением Unicode имеют меньший размер, а символы с большим значением Unicode – больший.

print('chinese' == 'Chinese')
# False
print('chinese' > 'Chinese')
# True
print(ord('c'))
# 99
print(ord('C'))
# 67

Итак, в данном случае мы сравниваем символ «c» в слове «chinese» с символом «C» в слове «Chinese».

Как мы видим, строки «chinese» и «Сhinese» – не одно и то же. Поэтому после сравнения этих строк с помощью оператора == оператор print() возвращает False . Выведя значения Unicode для «c» и «C», мы видим, что значение «C» (67) меньше, чем значение «c» (99). На этом сравнение прекращается, и выражение print('chinese' > 'Chinese') возвращает True.

Мы получаем результат: «chinese» больше, чем «Сhinese», потому что первый символ в одном слове больше первого символа во втором.

[python_ad_block]

Сравнение строк другими операторами

Для сравнения строк в Python используются не только == и !=. Как и при сравнении чисел, мы можем использовать операторы <, >, <= и >=.

string = 'chinese'
string1 = 'china'
print(string < string1)
# False
print(string > string1)
# True
print(string <= string1)
# False
print(string >= string1)
# True

Мы присваиваем значение «chinese» для string и «china» для

string1. Теперь сравним эти две строки с помощью операторов сравнения  <, >, <=, >=.

После сравнения string и string1 оператором < мы получаем False. Первые четыре символа «chinese» и «china» идентичны. Однако пятый символ переменной string – «е», в то время как пятый символ string1 – «а». Значение «e» в Юникоде равно 101, а «a» – 97. Таким образом, в результате сравнения этих переменных «chinese» оказывается больше, чем «china».

Сравнение строк с помощью is

Теперь давайте поговорим про сравнение строк с помощью оператора is. Он работает следующим образом. Если две переменные указывают на один объект, оператор возвращает True, иначе — False.

Обратите внимание, что даже если обе строки имеют одинаковое значение, все равно может вернуться False — если у сравниваемых объектов разные id. Подробнее про разницу между операторами == и is можно почитать в статье «Чем == отличается от is?».

Итак, рассмотрим следующий пример. Мы берем три строки: string1, string2, string3. Переменной

string1 мы присваиваем значение ['u', 'v', 'w']. Переменную string2 приравниваем к string1. string3 приравниваем к string1, но не просто, а преобразовав в список string3 = list(string1), хотя, по сути, это и так список, т.е. значения не поменяются. А далее мы сравниваем строки операторами == и is.

string1 = ['u', 'v', 'w']
string2 = string1
string3 = list(string1)
print(string1 == string2)
# True
print(string1 == string3)
# True
print(string1 is string2)
# True
print(string1 is string3)
# False
print(id(string1))
# 139879412641216
print(id(string2))
# 139879412641216
print(id(string3))
# 139879412022144

Переменные string1 и string2 абсолютно идентичны и ссылаются на одни и те же объекты. Однако для string3 мы создали новый объект, и хотя значение string3 совпадает со значением string1, они ссылаются на разные объекты.

Адреса объектов определяются с помощью функции id(). Мы видим, что адреса объектов string3 и string1

действительно разные, в то время как адреса string2 и string1 совпадают.

Именно поэтому сравнение string1 и string2 обоими операторами возвращает True, поскольку они имеют не только одинаковое значение, но и одинаковый адрес.

Сравнение string1 и string3 оператором == дает True, а оператором is дает False, так как значения совпадают, но объекты и их адреса — разные.

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

Теперь рассмотрим ситуацию, когда мы получаем ввод от пользователя и выполняем различные операции сравнения с полученными данными .

Здесь мы берем три строковые переменные с именами

str_1, str_2, str_3. Значения str_1 и str_2 вводятся пользователем. Значение str_3 приравнивается к значению str_1. Дальше мы сравниваем строки разными операторами сравнения: ==, !=, <= ,>=.

str_1 = input('Enter the value of str_1: ')
# Enter the value of str_1: chinese
str_2 = input('Enter the value of str_2: ')
# Enter the value of str_2: china
str_3 = str_1
print(str_1 == str_2)
# False
print(str_1 != str_2)
# True
print(str_1 <= str_2)
# False
print(str_1 >= str_2)
# True
print(str_1 is str_2)
# False
print(str_1 is str_3)
# True

Когда мы запускаем нашу программу, пользователя просят ввести значения str_1 и str_2. После присвоения значений переменным эти строки сравниваются разными операторами.

Введенное значение str_1 – «chinese», а str_2 – «china». Сначала мы сравниваем эти строки с помощью оператора

==. Поскольку значения не совпадают, мы получаем результат False. Затем мы сравниваем наши строки с помощью оператора !=. Поскольку значения не совпадают, мы получаем результат True.

Дальше мы сравниваем строки с помощью оператора <=. Поскольку str_1 больше str_2, мы получаем True. И, в конце, мы используем is для сравнения строк. str_1 и str_2 имеют разные значения и ссылаются на разные объекты, поэтому результат будет False. Значения str_2 и str_3 идентичны, а переменные ссылаются на один объект, поэтому мы получим True.

Заключение

В этой статье мы поговорили про сравнение строк в Python с помощью различных операторов: ==, !=, >, <, >= и <=. Вы узнали, как именно происходит сравнение, какие строки считаются большими, а какие — меньшими. Мы также разобрали, чем отличается применение == и is, и показали разницу на примерах.

Надеемся, эта статья была вам полезна. Успехов в написании кода!

Перевод статьи «Python string comparison».

Как сравнить строки в Python? Операторы сравнения строк

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

Основные операторы сравнения в Python

Итак, в языке программирования Python для сравнения строк используют следующие операторы:

  • оператор <, «меньше»;
  • оператор <=, «меньше или равно;
  • оператор ==, «равно»;
  • оператор !=, «не равно»;
  • оператор >, «больше»;
  • оператор >=, «больше или равно».

Использование оператора «больше/меньше»

Ниже вы увидите простейший пример сравнения строк в Python с помощью соответствующих операторов: > и <. Давайте сравним строки со словами banana и apple:

print("apple" > "banana")
False
print("apple" < "banana")
True

Так как буква «a» находится перед «b», слово apple будет находиться перед словом banana, что логично (то есть banana больше, чем apple). Однако всё сложнее, чем может показаться на первый взгляд. Давайте для наглядности сравним, равны ли слова Apple и apple:

print("apple" == "Apple")
False
print("apple" > "Apple")
True

Мы увидим отсутствие равенства, а всё потому, что в Python одинаковые буквы, имеющие разный регистр, считаются разными символами, и компьютер их различает по присвоенным им уникальным значениям.

Что касается нашей ситуации, то здесь латинская «А» имеет значение 65, в то время как значение строчной «а» равно 97.

Кстати, если хотите узнать уникальное значение какого-нибудь символа, используйте функцию ord:

print(ord("A"))
65

При сравнении символов или строк, Python конвертирует символы в их соответствующие порядковые значения, после чего сравнивает слева направо.

Существует функция chr, преобразовывающая порядковое значение в символ. Пример:

print(chr(1040))
А

Например, кириллическая А соответствует значению 1040. Есть свои значения у цифр, а также вспомогательных знаков, включая «?», «=», пробел.

В принципе, вы всегда можете выполнить сравнение строк в Python, предварительно конвертировав строки в один формат, к примеру, в нижний регистр (используем метод lower):

str1 = "apple"
str2 = "Apple"
str2.lower()
print(str1 == str1)
True

Применение оператора «равенство»

Мы можем проверить, равны ли строки, посредством оператора ==:

print("строка1" == "строка2")
False

Естественно, строки не являются равными, т. к. выполняется точное сравнение в Python. Неравными будут и те строки, которые содержат одинаковые, но переставленные местами символы. В последнем случае есть выход: превратить нашу строку в список, отсортировать, сравнить и вывести содержимое:

strA = "abcde"
strB = "abdec"
print(sorted(list(strA)) == sorted(list(strB)))
print(sorted(list(strA)))
print(sorted(list(strB)))
True
['a', 'b', 'c', 'd', 'e']
['a', 'b', 'c', 'd', 'e']

Использование оператора «не равно»

Оператор != выполняет проверку неравенства:

print("abc" != "zxc")
True

Разумеется, результат True, ведь abc не равно zxc.

Применение операторов «больше или равно/меньше или равно»

Если при использовании оператора <= одна строка будет меньше или равна другой, мы получим True.

print("abc" <= "bcd")
True

В нашем случае «abc» меньше.

Аналогично работает и оператор >=:

print("abc" >= "abc")
True

В этой ситуации очевидно, что строки равны.

Инструмент для создания похожих струн

Выберите строку сравнения Черный черный бриллиант 16 -alpha кишечник 2000 16ashaway Dynamite 17ashaway Liberty 16ashaway Monogut 16lashaway Monogut 17Ashaway MONOGUT ZX 16ASHAWAY SYNTHETIC GUT 16BABOLAT ADDICTION 16BABOLAT ADDINGE 17BABOLAT M7 16 (1,30) BABOLAT 16 (1,30) BABOLAT ORINAL 17BALAT Hurricane Tour 17Babolat RPM Blast 15L (1.35)Babolat RPM Blast 16Babolat RPM Blast 17/1.25Babolat RPM Blast 18 (1.20)Babolat RPM Blast Orange 16 (1.30)Babolat RPM Blast Rough 15LBabolat RPM Blast Rough 16Babolat RPM Blast Rough 17Babolat RPM Soft 1. 30)Babolat RPM Team 16 BlackBabolat RPM Team 17 (1.25)Babolat SG SpiralTek 16Babolat SpiralTek 17Babolat Synthetic Gut 16 (1.30)Babolat Synthetic Gut 17 (1.25)Babolat VS Natural ThermoGut 16 TouchBabolat VS Touch 15L (1.35)Babolat Xcel French Open Черный 16Babolat Xcel French Open Черный 17Boris Becker Bomber 16Boris Becker Bomber NYC 16 (1.28)Boris Becker Bomber NYC 17 (1.23)Boris B ecker Pulse 16 (1,32)Diadem Elite XT 16Diadem Elite XT 17Diadem Impulse 17 (1,25)Diadem Solstice Power 15L (1,35)Diadem Solstice Power 16 (1,30)Diadem Solstice Power 16L (1,25)Diadem Solstice Power 17 (1,20)Diadem Solstice Pro 15L (1.35)Diadem Solstice Pro 16L (1.25)Двойной AR 666 (1.30)Двойной AR Diablo (1.24)Двойной AR Diablo (1.31)Двойной AR Raptor 1.27Двойной AR Twice Dragon(1.30)Двойной AR Twice Shark (1.25)Двойной AR WTS 25 (1.25)Dunlop Black Widow 16Dunlop Black Widow 17Dunlop Black Widow 18 (1.21)Dunlop Explosive 16Dunlop Explosive 17 (1.26)Dunlop Explosive 18 (1.20)Dunlop Hexy Fiber 16Dunlop Hexy Fiber 17Dunlop Pearl Ice 16 (1. 30)Dunlop Ice 5)Dunlop Ice 17 (1.20)Dunlop Hexy Fiber 16Dunlop Hexy Fiber 17 16 (1,30)Dunlop Pearl 17 (1,25)Dunlop S-Gut 16 (1,32)Dunlop S-Gut 17Dunlop S-Gut 18 (1,19))Dunlop Silk 16 (1.30)Dunlop Silk 17Forten Sweet 16Gamma FXT 16 (1.30)Gamma FXT 17 (1.24)Gamma Glide Cross String 16Gamma IO 17 (1.23)Gamma IO 18 (1.18)Gamma IO Soft 15L (1.40)Gamma IO Soft 16 (1.28)Gamma IO Soft 17 (1.23)Gamma Jet 16L (1.28)Gamma Live Wire 16Gamma Live Wire 17 (1.27)Gamma Live Wire XP 16Gamma Live Wire XP 17 (1.27)Gamma Marathon DPC 15 (1.40)Gamma Marathon DPC 16 ( 1,32)Гамма Мото 16Гамма Мото 17 (1,24)Гамма Мото Софт 16 (1,29)Гамма Мото Софт 17 (1,24)Гамма Очо 16 (1,30)Гамма Очо 17 (1,25)Гамма Очо ТНТ 16 (1,30)Гамма Очо ТНТ 17 (1,25) Gamma Ocho XP 16 (1.32)Gamma Ocho XP 17 (1.27)Gamma Poly Z 16Gamma Prodigy 16Gamma Professional 16Gamma Professional 17Gamma Professional 18 (1.22)Gamma Professional Spin 16Gamma Revelation 17 (1.27)Gamma RZR Rx 16Gamma RZR Rx 17Gamma1 Solace 16 () Gamma Solace 17 (1.27)Gamma Synthetic Gut 16Gamma Synthetic Gut 17 (1. 25)Gamma Synthetic Gut 17 W/wearguard (1.22)Gamma Synthetic Gut 18 (1.18)Gamma Synthtic Gut 15L W/wearguard (1.38)Gamm a TNT2 15L (1.40)Gamma TNT2 16Gamma TNT2 17 (1.27)Gamma TNT2 18 (1.17)Gamma TNT2 Pro Plus 17L (1.24)Gamma TNT2 Rx 16Gamma TNT2 Rx 17 (1.25)Gamma TNT2 Touch 16Gamma TNT2 Touch 17 (1.27)Gamma TNT Tour 16 (1.32)Gamma TNT2 Tour 17 (1.27)Gamma WearGuard Synthetic Gut 16Gamma Zo Dart 17 (1.25)Gamma Zo Twist 16Gamma Zo Verve 16 (1.32)Gamma Zo Verve 17Genesis Black Magic 16 (1.29))Гозен А.К. Control 16Gosen AK Control 17 (1.24)Gosen AK Pro 16Gosen AK Pro 17Gosen AK Pro CX 16 (1.30)Gosen AK Pro CX 17 (1.24)Gosen AK Pro Spin 15L (1.38)Gosen G-Tour 16 (1.30)Gosen Lumina Spin 16L (1.26)Gosen Multi CX 16 (1.30)Gosen Multi CX 17 (1.24)Gosen Nanocubic 16Gosen Nanosilver 17Gosen OG Sheep Micro 17Gosen OG Sheep Micro 18Gosen OG Sheep Micro Super 16LGosen OG-Sheep Micro 16Gosen Poly Professional 16 (1.29)Gosen Poly Professional 17 (1,24)Gosen Polylon 17 (1,24)Gosen Polylon PolyBreak 17 (1,24)Gosen Polylon PolyBreak 18 (1,20)Gosen Polylon Premium 16 (1,32)Gosen Polylon Premium 16L (1,27)Gosen Sidewinder 16 (1,31)Gosen Sidewinder 17Gosen Tecflex 16 (1,30) )Gosen TecGut Remplir 16Head FXP Power 16Head FXP Power 17Head FXP Tour 16Head Hawk 16 (1. 30)Head Hawk 17 (1.25)Head Hawk 18 (1.20)Head Hawk Rough 17Head Hawk Touch 18 (1.20)Head Hawk Touch 19(1.15)Head Lynx 16 (1.30)Head Lynx 17 (1.25)Head Lynx 18 (1.20)Head Lynx Touch 16g (1.30)Head Lynx Tour 16 (1.30)Head Lynx Tour 17 (1.25)Head Reflex MLT 16 (1.30)Head Reflex MLT 17 (1.25)Head RIP Control 16Head Rip Control 17 (1.25)Head Sonic Pro 16Head Sonic Pro 17Head Sonic Pro Edge 16Head Synthetic Gut PPS 16Head Synthetic Gut PPS 17 (1.25)Head Velocity MLT 17 (1.25)IsoSpeed ​​Axon Mono 16LIsoSpeed ​​Axon Multi 16LIsoSpeed ​​Black Fire 17IsoSpeed ​​Control Classic 16IsoSpeed ​​Energetic 17IsoSpeed ​​Energetic Plus 16IsoSpeed ​​Professional Classic 17IsoSpeed ​​Pulse 16IsoSpeed ​​Pyramid 16IsoSpeed ​​V18 19(1.12)Kirschbaum Black Shark 16 (1.30)Kirschbaum Competition 16/1.30Kirschbaum Competition 17 (1.25)Kirschbaum Competition 17L (1.20)Kirschbaum Max Power 16 (1.30)Kirschbaum Max Power 17 (1.25)Kirschbaum Max Power 18 (1.20)Kirschbaum Max Power Rough 16 (1,30)Kirschbaum Max Power Rough 17 (1,25)Kirschbaum Max Power Rough 18 (1,20)Kirschbaum Pro Line Evolution 17 (1,25)Kirschbaum Pro Line II 1,30Kirschbaum Pro Line II 17 (1,25)Kirschbaum Pro Line II 17L (1,20) )Kirschbaum Pro Line II 18 (1,15)Kirschbaum Pro Line X 16 (1,30)Kirschbaum Pro Line X 17 (1,25)Kirschbaum Spiky Shark 16Kirschbaum Spiky Shark 17Kirschbaum Super Smash 16/1,30Kirschbaum Super Smash 17 (1,25)Kirschbaum Touch Multifibre 16Kirschbaum Touch Multifibre 17 (1. 25)Kirschbaum Xplosive Speed ​​1.25Kirschbaum Xplosive Speed ​​1.30Klip Hardcore 16/1.30Klip K-Boom 18 (1.20)Klip Kicker 16Klip Legend 16 UncoatedKlip Legend 17 (1.25)Klip Scorcher 17 (1.27)LaserFibre 1200 JBLaser 16 (1.30)Fibre Tour 100 17g (1.25) LaserFibre Native Tour 1 7 (1.25)LaserFibre Vorso 16 (1.28)LaserFibre Vorso 17 (1.23)Luxilon 4G 16L (1.25)Luxilon 4G Rough 16LLuxilon 4G Soft 1.25Luxilon Adrenaline 16Luxilon Adrenaline 16L/1.25Luxilon Adrenaline Rough 16L/1.25Luxilon ALU Power 125/16LLuxilon ALU Power Feel 18/1.20Luxilon ALU Power Rough 16L (1.25)Luxilon Alu Power Soft 1.25Luxilon Alu Power Vibe 16 (1.25)Luxilon Big Banger Ace 18 (1.12)Luxilon Big Banger ALU Power Spin 127/16Luxilon Big Banger Original 130/16Luxilon Big Banger Rough 130/16Luxilon Big Banger TiMO 17L (1.17)Luxilon Element 1.30Luxilon Element 16L (1.25)Luxilon Element Rough 16 (1.30)Luxilon LXN Smart 16L (1.25)Luxilon M2 Pro 125/16Luxilon Natural Gut 1.25Luxilon Savage 16/1.27MSV -Focus 17L (1.18)MSV Co.-Focus 16LMSV Focus Evo 16MSV Focus Evo 17MSV Focus Hex 17L (1. 18)MSV Focus Hex Soft 17 (1.25)MSV Focus Hex Soft 17L (1.20)MSV Focus-Hex +38 16L (1.25) MSV Focus-Hex 16 (1,23)MSV Focus-Hex 16 (1,27)MSV Hepta-Twist 17Pacific Classic Natural Gut 16Pacific PMX 16LPacific Poly For ce 16LPacific Poly Force 17Pacific Poly Power Pro 16 (1,30)Pacific Poly Power Pro 16L (1,25)Pacific Premium Power X 16LPacific Prime Gut Orange Bull 16 (1,30)Pacific Prime Gut Orange Bull 16L (1,25)Pacific Prime Natural Gut 16Pacific Tough Gut 16Pacific X Force 16 л (1,29)Pacific X Force 17Pacific X Force 18Pacific XCite 16 (1,30)Pacific XCite 16L (1,25)Polyfibre Black Venom 16 (1,30)Polyfibre Black Venom Rough 16L (1,25)Polyfibre Cobra 17/1,20Polyfibre Hexablad 16L (1,25)Polyfibre Hexablad 187L (187L) )Поливолокно Hightec Premium 16/1.30Поливолокно Hightec Premium 16LПоливолокно Hightec Premium 17Поливолокно Panthera 16 (1.30)Поливолокно Poly Hightec 16/1.30Поливолокно Poly Hightec 16LПоливолокно Poly Hightec 17Поливолокно Poly Hightec 18Поливолокно TCS 16/1.30Поливолокно TCS 16LПоливолокно 16LПоливолокно Rapid12L TCS 17Поливолокно TCS 17Поливолокно Viper 17/1. 20Prince Beast XP 16Prince Lightning Pro 16 (1.30)Prince Lightning XX 16Prince Lightning XX 17Prince Perfection 16 (1.30)Prince Premier Control 15LPrince Premier Control 16Prince Premier Control 17Prince Premier Power 16Prince Premier Power 17Prince Premier Touch 16Prince Premier Syn Gut 17Prince Premier Touch Original 16Prince Syn Gut Original 17Prince Topspin W/ Duraflex 15LPrince Tour XC 15LPrince Tour XC 16LPrince Tour XC 17LPrince Tour XP 15LPrince Tour XP 16Prince Tour XP 17 (1.25)Prince Tour XR 15L (1.35)Prince Tour XR 16 (1.30)Prince Tour XR 17 (1.25)Prince Tour XS 1.35Prince Tour XS 16Prince Tour XT 18Prince Tournament Nylon 15LPrince Vortex 16 (1.30) )RS RS Lyon 17RS RS Lyon 17L (1.20)Signum Pro Firestorm 1.25Signum Pro Firestorm 16 (1.30)Signum Pro Hyperion 16Signum Pro Hyperion 17 (1.24)Signum Pro Hyperion 18 (1.18)Signum Pro Plasma HEXtreme 16 (1.30)Signum Pro Plasma HEXtreme 16L/1.25Signum Pro Poly Megaforce 16Signum Pro Poly Megaforce 17 (1.19)Signum Pro Poly Plasma 17 (1. 23)Signum Pro Poly Speed ​​Spin 1.28Signum Pro Poly-Plasma 16LSignum Pro Poly-Plasma 17L (1.18)Signum Pro Poly-Plasma Pure 16LSignum Pro Poly-Plasma Pure 17 (1.23)Signum Pro Tornado 16Signum Pro Tornado 17 (1.23)Signum Pro Tornado 18 (1.17)Signum Pro X-Perience 17 (1.24)Signum Pro Yellow Jacket 17g (1.22)Solinco Barb Wire 16Solinco Barb Wire 16L (1.25)Solinco Barb Wire 17 (1.20)Solinco Confidential 16 ( 1.30)Solinco Hyper-G 16Solinco Hyper-G 16L (1.25)Solinco Hyper-G 17 (1.20)Solinco Hyper-G 18 (1.15)Solinco Hyper-G-Soft 16L (1.25)Solinco Outlast 16Solinco Outlast 16L (1.25)Solinco Outlast 17Solinco Outlast 18 (1.15)Solinco Revolution 16Solinco Revolution 16L (1.25)Solinco Revolution 17Solinco Revolution 18 (1.16)Solinco Tour Bite 15L (1.35)Solinco Tour Bite 16Solinco Tour Bite 16 SoftSolinco Tour Bite 16L (1.25)Solinco Tour Bite 17Solinco Tour Bite 18 (1.15)Solinco Tour Bite 19(1.10)Solinco Tour Bite 20 (1.05)Solinco Tour Bite Diamond Rough 16 (1.30)Solinco Tour Bite Diamond Rough 17 (1. 20)Solinco Tour Bite Soft 16L (1.25)Solinco Tour Bite Soft 17 (1.20)Solinco Tour Bite Soft 18 ( 1.15)Solinco Vanquish 16Solinco Vanquish 17 (1.20)Solinco X-Natural 16 (1.30)Solinco X-Natural 17 (1.20)Tecnifibre Black Code 15L (1.32)Tecnifibre Black Code 17Tecnifibre Black Code 18Tecnifibre Black Code 4S 16 (1.30)Tecnifibre Black Code 4S 17 (1,25)Tecnifibre Black Code 4S 18 (1,20)Tecnifibre Duramix HD 16Tecnifibre Duramix HD 17Tecnifibre E-Matrix 16Tecnifibre E-Matrix 17Tecnifibre HDX Tour 16 (1,30)Tecnifibre HDX Tour 17 (1,24)Tecnifibre Ice Code 16 (1,30)Tecnifibre Multi -Feel 16Tecnifibre Multi-Feel 17 (1.25)Tecnifibre Multifeel 16 Черный (1.30)Tecnifibre NRG2 16Tecnifibre NRG2 17/1.24Tecnifibre NRG2 18 (1.18)Tecnifibre Pro Red Code 16Tecnifibre Pro Red Code 17Tecnifibre Pro Red Code 18Tecnifibre Pro Red Code Wax 17Tecnifibre 16 (1,30)Tecnifibre Razor Code 17 (1,25)T ecnifibre Razor Code 18 (1.20)Tecnifibre Ruff Code 16 (1.30)Tecnifibre TGV 16Tecnifibre TGV 17/1.25Tecnifibre Triax 16 (1. 33)Tecnifibre X-One Biphase 16Tecnifibre X-One Biphase 17Tecnifibre X-One Biphase 18Toalson Cyber ​​Leoina 77 (1.30)Topspin Синий 16Topspin Cyber ​​Blue 17Topspin Cyber ​​Blue 17L (1.20)Topspin Cyber ​​Delta 17 (1.26)Topspin Cyber ​​Flash 16Topspin Cyber ​​Flash 17Topspin Cyber ​​Flash 17LTopspin Cyber ​​Whirl 17 (1.24)Tourna Big Hitter Black 7 16 (1.25)Tourna Big Hitter Black 7 17Tourna Big Нападающий Синий 17Tourna Big Hitter Blue Rough 16Tourna Big Hitter Blue Rough 17Tourna Big Hitter Silver 16Tourna Big Hitter Silver 17Tourna Big Hitter Silver Rough 16Tourna Big Hitter Silver Rough 17Tourna Black Zone 16Tourna Black Zone 17Tourna Облученный 16Tourna Arm Облученный 17Tourna Quasi Gut 17Gutourna Quasi-1 -Кишечная броня 17Tourna Синтетическая кишечная броня 16Tourna Синтетическая кишечная броня 17Volkl Cyclone 16Volkl Cyclone 17Volkl Cyclone 18Volkl Cyclone 18L (1.15)Volkl Cyclone 19(1.10)Volkl Cyclone Tour 16 (1.30)Volkl Cyclone Tour 17 (1.25)Volkl Cyclone Tour 18 (1.20)Volkl Power-Fiber II 16Volkl Power-Fiber II 17Volkl V-Pro 16Volkl V-Pro 17Volkl V-Pro 18Volkl V-Square 16 (1. 30)Volkl V-Star 16 (1.30)Volkl V-Star 18L (1.15)Volkl V-Star 19 (1.10)Volkl V-Torque 16Volkl V-Torque 18 (1.18)Volkl V-Torque Tour 16 (1.30)Weiss Cannon 6 Star 16 (1.30)Weiss Cannon Black 5 Edge 17 (1.24)Weiss Cannon Blue Rock N PowerWeiss Cannon Explosiv 1.30Weiss Cannon MatchPower 1.25Weiss Cannon Mosquito Bite 18 (1.16) Weiss Cannon Red Ghost 17L (1.18) Weiss Cannon Scorpion 1.22Weiss Cannon Scorpion 1.33Weiss Cannon Scorpion 16L (1.28)Weiss Cannon Silverstring 1.25Weiss Cannon Silverstring 120Weiss Cannon Turbotwist 17 (1.24) Weiss Cannon Turbotwist 17L (1.18) Weiss Cannon Ultra Cable 17 (1.23) Wilson Natural Gut 16 (1.30) Wilson Natural Gut 17Wilson NXT 15L (1,35)Wilson NXT 16Wilson NXT 17Wilson NXT Control 16 (1,32)Wilson NXT Duramax 15 (1,40)Wilson NXT Duramax 16 (1,32)Wilson NXT Max 15L (1,35)Wilson NXT Max 16Wilson NXT Power 17 (1,26)Wilson Optimus 16 (1,30)Wilson Revolve 15 (1,35)Wilson Revolve 16 (1,30)Wilson Revolve 17 (1,25)Wilson Revolve Spin 16Wilson Sensation 15 (1,35)Wilson Sensation 16Wilson Sensation 16 17Wilson Sensation Control 16 (1,30)Wilson Synthetic Gut Control 17 (1,25)Wilson Synthetic Gut Power 16 (1,30)Wilson Synthetic Gut Power 17 (1,25)Y-Tex Quadro Twist 16LYonex Mono Preme 16 (1,30)Yonex Poly Tour Air 16LYonex Poly Tour Drive 16L (1. 25)Yonex Poly Tour Fire 16L (1.25)Yonex Poly Tour HS 16 (1.30)Yonex Poly Tour HS 16L (1.25)Yonex Poly Tour Pro 17 (1.20)Yonex Poly Tour Pro Yellow 16 (1.30)Yonex Poly Tour Spin 16 л (1,25) Yonex Poly Tour Spin G 1,25 Yonex Poly Tour Strike 16 л (1,25) Yonex Poly Tour Tough 16LYonex Polytour Rev 16 л (1,25) Yonex Rexis 16 (1,30) Yonex Rexis Comfort 16 л (1,25) Yonex Rexis Speed ​​16 л (1,25) Yonex Tour Super 850 16 (1,30)Yonex Tour Super Pro 850 16 (1,32)

НАЖМИТЕ на строки, чтобы отобразить сравнение (отображается НИЖЕ)
12 похожих строк с разницей +/- 10%
Уилсон NXT Control 16 (1.32)
SuperString VooDoo Tour V9 17
Принц Premier LT 17
Госен TecGut Remplir 16
Tecnifibre Дюрамикс HD 17
Уилсон Противоударный щит 16
Принц Premier LT 18
Solinco Tour Bite 19 (1. 10)
Wilson Hollow Core Pro 16
Solinco Tour Bite Soft 18 (1,15)
Solinco Hyper-G-Soft 16 л (1,25)
Dunlop ДНК 17 (1,22)

Как сравнить строку в Python? (Сравнение строк 101)

В этой статье мы узнаем, как сравнивать строки в Python. Мы обсудим, зачем нам нужно сравнивать строки и какие есть операторы сравнения строк в python, с примерами и исходным кодом!

Что такое строки?

Строка обычно представляет собой последовательность символов. Символ является структурным элементом строки. Это может быть буква, цифра или символ. Например, в английском языке у нас есть 26 алфавитов, каждый из которых является алфавитом.

Но компьютерная система не понимает символов и поэтому имеет дело с двоичными числами. Все символы, которые мы видим на нашем экране, хранятся внутри и обрабатываются как комбинация нулей и единиц.

Преобразование символов и двоичных чисел называется кодированием, а обратное — декодированием. Некоторые из популярных кодировок — ASCII и Unicode. В языке программирования Python

Таким образом, мы можем определить строку как последовательность символов Unicode или, говоря простым языком, комбинацию букв, цифр или символов, заключенных между двумя кавычками.

Зачем сравнивать строки?

Это та самая операция, которую должен изучить каждый программист на Python. Сравнение строк важно для проверки, являются ли две строки одинаковыми или нет. Мы можем использовать его, чтобы проверить, равны ли две строки, и выполнить определенную задачу, только если они равны. Это очень важно для функциональности поиска.

Допустим, вы создали базу данных студентов для университета. Если вы хотите получить доступ к записям конкретного студента, вам придется искать их в базе данных. Чтобы подтвердить, что найденная вами запись является той, которую вы хотели, вам нужно будет сопоставить имя записи с именем, которое вы имели в виду.

В таких случаях необходимо сравнить две строки. Аналогично для таких ситуаций, как проверка действительного адреса электронной почты, проверка имени, существующего в записи, и т. д.; мы требуем сравнения строк.

Операторы сравнения строк Python

В языке Python мы можем сравнивать две строки, например, определять, эквивалентны ли две строки друг другу или нет, или даже какая строка больше или меньше друг друга. Давайте проверим некоторые операторы сравнения строк, используемые для этой цели ниже:

  • == Этот оператор проверяет, равны ли две строки.
  • !=:  Этот оператор проверяет, не равны ли две строки.
  • <:  Этот оператор проверяет, меньше ли строка слева, чем строка справа.
  • <=:  Этот оператор проверяет, является ли строка слева меньше или равна строке справа.
  • >: Этот оператор проверяет, больше ли строка слева, чем строка справа.
  • >=:  Этот оператор проверяет, больше ли строка слева, чем строка справа.

Давайте рассмотрим пример, чтобы понять эти операторы:

 string1 = "Абрар"
строка2 = "Ахмед"
строка3 = "ABCD"
строка4 = "ABCD"
если строка1 <= строка2:
    print(string1," меньше ",string2," больше")
если строка2 >= строка4:
    print(string4,"меньше",string2,"больше")
если строка3 == строка4:
    печать (строка3," равна ",строка4)
если строка1 != строка3:
    print(строка1," не равно ", строка3) 

 

Вывод:

 Абрар меньше Ахмед больше
ABCD меньше Ахмед больше
АВСD равно АВСD
Абрар не равен ABCD 

 

Проверка равенства строк в Python

В python мы можем проверить, равны строки или нет, используя два метода. Первый способ заключается в использовании оператора относительного равенства «==» для выполнения сравнения строк.

Второй метод заключается в использовании специальной строковой функции для выполнения сравнений, функции __eq__(). Это волшебная функция, определенная в классе string, которая сравнивает две строки и возвращает True, если они равны, или Fale, если они не равны.

Пример:

 s1 = 'Строка'
s2 = 'Строка'
s3 = 'строка'

# проверка равенства с учетом регистра
если s1 == s2:
    print('s1 и s2 равны.')

если s1.__eq__(s2):
    print('s1 и s2 равны.') 

 

Здесь мы проверяем, равны ли строки s1 и s2, а затем используем условный оператор «если» с комбинацией оператора равенства.

Вывод:

 s1 и s2 равны.

 s1 и s2 равны. 

 

Как насчет сравнения без учета регистра?

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

Регистр строк можно изменить с помощью трех встроенных функций: casefold(), upper() и lower(). Оба метода casefold() и lower() преобразуют строку в нижний регистр.

Но отличие состоит в том, что casefold() более агрессивен и может преобразовывать в нижний регистр больше букв, чем lower(). Метод upper() можно использовать для преобразования всех символов строки в верхний регистр.

 s1 = 'Строка'
s2 = 'Строка'
s3 = 'строка'  если s1.casefold() == s3.casefold():
 печать (s1.casefold())
 печать (s3.casefold())
 print('s1 и s3 равны при сравнении без учета регистра')  если s1.lower() == s3.lower():
 печать (s1.lower())
 печать (s3.lower())
 print('s1 и s3 равны при сравнении без учета регистра')  если s1.upper() == s3.upper():
 печать (s1.upper())
 печать (s3.