Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python l Является ли предложение палиндромом.

........ Ученик (190), на голосовании 2 недели назад
Является ли заданное предложение палиндромом. Например; «А в Енисее – синева»,
да является.
Уже час не могу решить, пришел к этому варианту. Хоть ошибку не выдаёт, но ответ всё равно "Нет, не является".

a='А в Енисее - синева'
a=a.lower()
b=0
for i in a:
if i.isalpha():
b=str(b)+i
if b[::-1]==b:
print('Да, является')
else:
print('Нет, не является')

Написание надо именно такого формата. По возможности без других функций, пока мало прошли боюсь не буду знать.
Голосование за лучший ответ
Татьяна Просветленный (36345) 1 месяц назад
 a = ''.join(c.lower() for c in 'А в Енисее - синева' if c.isalpha()) 
print('Да, является' if a == a[::-1] else 'Нет, не является')
Результат
........Ученик (190) 1 месяц назад
Спасибо, но я не понимаю как мне исправить в своём коде, что бы вышел правильный ответ
Татьяна Просветленный (36345) ........,
 a = 'А в Енисее - синева' 
a = a.lower()  # Приводим строку к нижнему регистру 
b = ''  # Инициализируем пустую строку для хранения букв 
 
# Проходим по каждому символу в строке 
for i in a: 
    if i.isalpha():  # Проверяем, является ли символ буквой 
        b += i  # Добавляем букву к строке b 
 
# Проверяем, является ли строка b палиндромом 
if b == b[::-1]: 
    print('Да, является') 
else: 
    print('Нет, не является') 
ТатьянаПросветленный (36345) 1 месяц назад
в более понятном для тебя
........ Ученик (190) Татьяна, Огромное вам спасибо, понял где моя ошибка
Nikassaiop End Просветленный (41045) 1 месяц назад
Ответ правильный, вопрос неправильный. У тебя в нем дефис. Человек выше удалил знаки и цифры из предложения, поэтому у него получилось.
Unknown Unknown Гуру (4904) 1 месяц назад
Я бы так решал
 import re 

def foo(s):
res = ''.join(re.findall(r'[a-zA-Z]', s)).lower()
i = 0
j = len(res) - 1
while i < j:
if(res[i] != res[j]):
return False
i+=1
j-=1
return True
Похожие вопросы