Программирование python. не могу разобраться в некоторых строчках кода.
Добрый день. Решил попытаться освоить язык программирования Python.
Начал читать книгу и параллельно практиковаться. в книге была программа.
def reverse(text):
return text[::-1]
def is_palindrome(text):
return text == reverse(text)
something = input('Введите текст: ')
if (is_palindrome(something)):
print("Да, это палиндром")
else:
print("Нет, это не палиндром").
ее надо было доработать
""Проверка, является ли текст палиндромом должна также игнорировать знаки пунктуации, пробелы и регистр букв. Например, «А роза упала на лапу Азора» также является палиндромом, нонашатекущаяпрограмматакнесчитает. Попробуйтеулучшитьеётак, чтобы она распознала этот палиндром.""
у меня к сожалению нечего не вышло самостоятельно и я путем взятия из интернета частичных строк команды наугад собрал, что-то и оно даже работает (вроде). но мне непонятны некоторые детали не могли бы объяснить.
import re
def reverse(text):
return text[::-1]
def is_palindrome(text):
return text == reverse(text)
something = input('Введите текст: ')
pattern = r'\,|\s|\:|\!|\-|\_'
something = re.sub(pattern, '', something.lower())
if list(something) == list(reversed(something)):
print('Палиндром')
else:
print('Не палиндром')
pattern = r'\,|\s|\:|\!|\-|\_'
something = re.sub(pattern, '', something.lower()) что происходит в этих двух строчках? получается я заменяю все символы на что-то другое или они просто удаляются?
и что делает команда lower в этой строке?
Можно найти в интернете, что делает функция re.sub. Прочитать, а не гадать. Вся информация доступна.
Да, замена на «что-то другое». «Что-то другое» в данном случае – это пустая строка. Получается, что символы просто удаляются.