Найти - Пользователи
Полная версия: Очень легкая задача "палиндром"
Начало » Центр помощи » Очень легкая задача "палиндром"
1
ToMaTkuH
В задании сказано, что нужно проверить не является ли слово палиндромом, я накатал простенький код
print(“Проверим не палиндром, ли это”)
a = input(“Введите что-то: ”)
c = reversed(a)
if a == c:
print(“Это палиндром”)
else:
print(“Это не палиндром”)
print(a)
print( c )
Проблема в следующем когда я ввожу палиндром допустим топот, программа выдает мне что это не палиндром, я долго не мог понять почему исходя из логики в коде все верно.
Начал вертеть проблему и добавил в код print(a) и print © чтобы посмотреть а что реально выводит программа.
И понял, что проблема в том что после использования функции reversed, он мне возвращает вместо значения в перевернутом виде, место где он его сохранил.
Примерно так ——-
Проверим не палиндром, ли это
Введите что-то: топот
Это не палиндром
топот
<reversed object at 0x0086FCD0>
Вопрос к знатокам помогите вообще отдуплить как в подобных ситуациях разрешить проблему, то есть
сменить возвращение места в памяти на реальное перевернутое значение.
Я понимаю что это программу можно написать по другому, но вопрос сейчас в том , что я часто сталкиваюсь с этой проблемой и не знаю как ее решить. И не понимаю а можно ли ее вообще решить.
И что самое главное я не понимаю, а правильно ли я вообще осознал проблему.
С ув. начинающий питонист Томат.
marvellik
немного понять что строки неизменяемы а reversed() возвращает обратный итератор по указанной последовательности
 >>> a = 'Введите'
>>> for i in reversed(a):
	print(i,end = '')
етидевВ
>>>
лучше сами прочитайте Обзор трех основных способов перевернуть строку Python
ToMaTkuH
marvellik
немного понять что строки не изминяемы а reversed() возвращает обратный итератор по указанной последовательности

Класс, спасибо, пролистал бегло, то что нужно!
Теперь понятно reversed пишет мой текст (топот) и даже не пишет а просто отображает как я понял!
т
о
п
о
т
Сейчас в общем буду вчитываться и решать проблему.
Еще раз огромное спасибо! очень помогли!
py.user.next
  
>>> s = 'text'
>>> s == s[::-1]
False
>>> s = 'wow'
>>> s == s[::-1]
True
>>>

А по твоей проблеме - reversed() возвращает не строку, а объект, итерируемый по символам в обратном порядке.
  
>>> s = 'wow'
>>> reversed(s)
<reversed object at 0x7f59ebd844e0>
>>> list(reversed(s))
['w', 'o', 'w']
>>> ''.join(reversed(s))
'wow'
>>>
ToMaTkuH
py.user.next
Спасибо,большое, да я вчера вчитался в статью - понял свои ошибки.
Но за то теперь я знаю три способа перевернуть слово)!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB