Программа-палиндром с использованием функции в Python

В этом руководстве по Python мы поймем как написать программу Python, чтобы проверить, является ли это палиндромом или нет. Кроме того, мы поговорим о палиндромах и программе для поиска палиндромов от 1 до 100.
Что такое палиндром в Python
Палиндром — это слово, фраза, число или другая последовательность символов, которая читается так же, как в прямом, так и в обратном направлении, игнорируя пробелы, знаки препинания и заглавные буквы. Примеры палиндромов включают «мадам», «гоночная машина» и «уровень».
Функция палиндрома в Python
В Python мы можем написать функцию для проверки того, является ли данная строка палиндромом. Для этого мы сначала нормализуем строку, преобразовав ее в нижний регистр. Это связано с тем, что функция должна рассматривать «мадам» и «мадам» как идентичные.
Затем мы перевернем строку и сравним ее с исходной строкой. Если они совпадают, строка является палиндромом; в противном случае это не так. Давайте посмотрим, как это работает с реальным кодом Python:
def is_palindrome(s):
s = s.lower() # Convert to lower case
reversed_s = s[::-1] # Reverse the string
return s == reversed_s # Compare original and reversed strings
print(is_palindrome('racecar'))
print(is_palindrome('Python'))
Код Python создает функцию is_palindrome(s)
чтобы определить, является ли строка s
то же самое вперед и назад, игнорируя регистр. Функция преобразует строку в нижний регистр, переворачивает ее и проверяет, равна ли перевернутая строка оригиналу. ‘racecar’ возвращает True (это палиндром), а ‘Python’ возвращает False (не палиндром).
Выход:

Функция палиндрома в Python для игнорирования пробелов и пунктуации
Однако приведенная выше функция работает только для палиндромов из одного слова без пробелов и знаков препинания. Если вам нужна функция для проверки того, является ли фраза палиндромом, игнорируя пробелы, знаки препинания и регистр, мы можем изменить функцию следующим образом:
import string
def is_palindrome(s):
# Remove punctuation and convert to lower case
s="".join(c for c in s.lower() if c not in string.punctuation)
# Remove spaces
s = s.replace(' ', '')
# Reverse the string
reversed_s = s[::-1]
# Compare original and reversed strings
return s == reversed_s
print(is_palindrome('Able was I ere I saw Elba'))
print(is_palindrome('A man, a plan, a canal, Panama'))
Этот скрипт Python определяет функцию is_palindrome(s)
который проверяет, является ли фраза s
является палиндромом, игнорирующим регистр, пробелы и знаки препинания.
Функция преобразует фразу в нижний регистр, удаляет знаки препинания и пробелы, а затем проверяет, одинаково ли читается полученная строка вперед и назад. Если да, то фраза является палиндромом.
Затем с помощью этой функции проверяются две фразы: «Я был способен, прежде чем увидел Эльбу» и «Человек, план, канал, Панама». Оба должны возвращать True, поскольку они являются палиндромами, если не учитывать регистр, пробелы и знаки препинания.
Выход:

Число палиндрома от 1 до 100 в Python
Чтобы найти все числа палиндрома от 1 до 100 в Python, мы можем написать цикл, который перебирает эти числа, а затем использовать функцию для проверки, является ли каждое число палиндромом. Вот простой скрипт, который делает это:
def is_palindrome(n):
# Convert the number to a string
str_n = str(n)
# Reverse the string
reversed_str_n = str_n[::-1]
# Compare the original and reversed strings
return str_n == reversed_str_n
# Iterate over numbers from 1 to 100
for i in range(1, 101):
if is_palindrome(i):
print(i)
Сценарий Python определяет функцию с именем is_palindrome
который проверяет, является ли данное число палиндромом. Число считается палиндромом, если оно читается так же, как в прямом, так и в обратном направлении. Эта функция преобразует число в строку, переворачивает эту строку, а затем проверяет, равна ли перевернутая строка исходной строке.
Затем сценарий выполняет цикл по числам от 1 до 100. Для каждого числа он проверяет, является ли число палиндромом, используя is_palindrome
функция. Если число является палиндромом, оно распечатывается.
Выход:

Заключение
Как мы видим, мощные возможности Python для обработки строк позволяют нам легко написать функцию для проверки того, является ли строка палиндромом. Гибкость языка позволяет нам настроить эту функцию для учета регистра, пробелов и пунктуации. Даже это также работает для чисел.
Вы также можете прочитать:

Я Биджай Кумар, Microsoft MVP в SharePoint. Помимо SharePoint, последние 5 лет я начал работать над Python, машинным обучением и искусственным интеллектом. За это время я приобрел опыт работы с различными библиотеками Python, такими как Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn и т. д. для различных клиентов в США, Канаде, Великобритании, Австралии, Новая Зеландия и т. д. Проверьте мой профиль.
Ссылка на источник