Проверка строки на палиндром

Палиндром — это строка, которая читается одинаково слева направо и справа налево. Например, слово "dad" или более длинный пример — "aibohphobia", что в шутку переводится как «боязнь палиндромов».

Что нужно знать

Перед изучением примера полезно понимать:

Пример

# 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() — это превращает их в списки символов, которые легко сравнить через ==.