Python

Программа-палиндром с использованием функции в 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

Функция палиндрома в 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, поскольку они являются палиндромами, если не учитывать регистр, пробелы и знаки препинания.

Выход:

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

Число палиндрома от 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 функция. Если число является палиндромом, оно распечатывается.

Выход:

Число палиндрома от 1 до 100 в Python

Заключение

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

Вы также можете прочитать:


Ссылка на источник

Похожие статьи

Кнопка «Наверх»