Форум сайта python.su
В задании сказано, что нужно проверить не является ли слово палиндромом, я накатал простенький код
print(“Проверим не палиндром, ли это”)
a = input(“Введите что-то: ”)
c = reversed(a)
if a == c:
print(“Это палиндром”)
else:
print(“Это не палиндром”)
print(a)
print( c )
Проблема в следующем когда я ввожу палиндром допустим топот, программа выдает мне что это не палиндром, я долго не мог понять почему исходя из логики в коде все верно.
Начал вертеть проблему и добавил в код print(a) и print © чтобы посмотреть а что реально выводит программа.
И понял, что проблема в том что после использования функции reversed, он мне возвращает вместо значения в перевернутом виде, место где он его сохранил.
Примерно так ——-
Проверим не палиндром, ли это
Введите что-то: топот
Это не палиндром
топот
<reversed object at 0x0086FCD0>
Вопрос к знатокам помогите вообще отдуплить как в подобных ситуациях разрешить проблему, то есть
сменить возвращение места в памяти на реальное перевернутое значение.
Я понимаю что это программу можно написать по другому, но вопрос сейчас в том , что я часто сталкиваюсь с этой проблемой и не знаю как ее решить. И не понимаю а можно ли ее вообще решить.
И что самое главное я не понимаю, а правильно ли я вообще осознал проблему.
С ув. начинающий питонист Томат.
Отредактировано ToMaTkuH (Окт. 9, 2019 21:26:36)
Офлайн
немного понять что строки неизменяемы а reversed() возвращает обратный итератор по указанной последовательности
>>> a = 'Введите' >>> for i in reversed(a): print(i,end = '') етидевВ >>>
Отредактировано marvellik (Окт. 9, 2019 22:28:30)
Офлайн
marvellik
немного понять что строки не изминяемы а reversed() возвращает обратный итератор по указанной последовательности
Офлайн
>>> s = 'text' >>> s == s[::-1] False >>> s = 'wow' >>> s == s[::-1] True >>>
>>> s = 'wow' >>> reversed(s) <reversed object at 0x7f59ebd844e0> >>> list(reversed(s)) ['w', 'o', 'w'] >>> ''.join(reversed(s)) 'wow' >>>
Отредактировано py.user.next (Окт. 10, 2019 10:06:49)
Офлайн
py.user.nextСпасибо,большое, да я вчера вчитался в статью - понял свои ошибки.
Офлайн