1

Тема: задача №50 з codeabbey

Ось задача - https://www.codeabbey.com/index/task_view/palindromes
Мій код

import string
s = input().lower()
for ch in string.punctuation:                                                                                                     
    s = s.replace(ch, "")
s = list(''.join(s.split()))
s_x = s.reverse() #!!!
if s_x == s:
    print("Y")
else:
    print("N")

Це код для одної ітерації. Пізніше додам цикл, но не в тому сенс.
Код наче б то нормальний, але стрічка

s_x = s.reverse()

чомусь норм не робить.
Вставляв для перевірки

print(s_x)

вибивало None
В чому може бути проблема?

2 Востаннє редагувалося leofun01 (28.12.2018 20:46:25)

Re: задача №50 з codeabbey

Я не знаю що має відбуватися при виконанні стрічки

s_x = s.reverse()

Можливо ви хотіли отримати список з оберненим порядком символів

s_x = list(reversed(s))
Подякували: Eff1c1

3

Re: задача №50 з codeabbey

Так, дякую.

4

Re: задача №50 з codeabbey

Код для перевірки на паліндром на Pyhton:

s==s[::-1]

І користуйтеся str.translate:

s=input().translate(None, string.punctuation+string.whitespace).lower()
Подякували: Eff1c, leofun012

5 Востаннє редагувалося koala (29.12.2018 09:57:05)

Re: задача №50 з codeabbey

І останнє розгалуження можна загнати в один рядок:

return 'Y' if s==s[::-1] else 'N'

Якщо треба скоротити код, можна навіть так зробити (True - 1, False - 0), але це явно надмірно:

 return 'NY'[s==s[::-1]]
Подякували: Eff1c, leofun01, /KIT\3