Проверка строки на палиндром
Палиндром — это строка, которая читается одинаково слева направо и справа налево. Например, слово "dad" или более длинный пример — "aibohphobia", что в шутку переводится как «боязнь палиндромов».
Что нужно знать
Перед изучением примера полезно понимать:
Оператор if…else в Python — условный оператор
if...elsePython: строки — строки в Python
Методы строк Python — методы строк
Пример
# Program to check if a string is palindrome or not
my_str = 'aIbohPhoBiA'
# make it suitable for caseless comparison
my_str = my_str.casefold()
# reverse the string
rev_str = reversed(my_str)
# check if the string is equal to its reverse
if list(my_str) == list(rev_str):
print("The string is a palindrome.")
else:
print("The string is not a palindrome.")
Вывод
The string is a palindrome.
Примечание
Чтобы проверить программу на других строках, замените значение переменной my_str.
Как это работает
В переменной my_str хранится исходная строка. Метод casefold() приводит её к нижнему регистру, чтобы сравнение не зависело от регистра букв.
Далее встроенная функция reversed() возвращает развёрнутый итератор по строке. Чтобы корректно сравнить исходную и развёрнутую строки, обе оборачиваются в list() — это превращает их в списки символов, которые легко сравнить через ==.