Latest posts on Очень легкая задача "палиндром" topichttp://python.su/forum/topic/37892/2019-10-10T11:42:21+03:00Общий :: Центр помощи :: Очень легкая задача "палиндром"
2019-10-10T11:42:21+03:00ToMaTkuH204871<blockquote><em>py.user.next</em><br/></blockquote>Спасибо,большое, да я вчера вчитался в статью - понял свои ошибки. <br/>Но за то теперь я знаю три способа перевернуть слово)!
Общий :: Центр помощи :: Очень легкая задача "палиндром"
2019-10-10T10:06:35+03:00py.user.next204868<div class="code"><pre>
<span class="o">>>></span> <span class="n">s</span> <span class="o">=</span> <span class="s1">'text'</span>
<span class="o">>>></span> <span class="n">s</span> <span class="o">==</span> <span class="n">s</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="bp">False</span>
<span class="o">>>></span> <span class="n">s</span> <span class="o">=</span> <span class="s1">'wow'</span>
<span class="o">>>></span> <span class="n">s</span> <span class="o">==</span> <span class="n">s</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="bp">True</span>
<span class="o">>>></span>
</pre></div><br/>А по твоей проблеме - reversed() возвращает не строку, а объект, итерируемый по символам в обратном порядке.<br/><div class="code"><pre>
<span class="o">>>></span> <span class="n">s</span> <span class="o">=</span> <span class="s1">'wow'</span>
<span class="o">>>></span> <span class="nb">reversed</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
<span class="o"><</span><span class="nb">reversed</span> <span class="nb">object</span> <span class="n">at</span> <span class="mh">0x7f59ebd844e0</span><span class="o">></span>
<span class="o">>>></span> <span class="nb">list</span><span class="p">(</span><span class="nb">reversed</span><span class="p">(</span><span class="n">s</span><span class="p">))</span>
<span class="p">[</span><span class="s1">'w'</span><span class="p">,</span> <span class="s1">'o'</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">]</span>
<span class="o">>>></span> <span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">reversed</span><span class="p">(</span><span class="n">s</span><span class="p">))</span>
<span class="s1">'wow'</span>
<span class="o">>>></span>
</pre></div>
Общий :: Центр помощи :: Очень легкая задача "палиндром"
2019-10-09T22:37:47+03:00ToMaTkuH204854<blockquote><em>marvellik</em><br/>немного понять что строки не изминяемы а reversed() возвращает обратный итератор по указанной последовательности</blockquote><br/>Класс, спасибо, пролистал бегло, то что нужно! <br/>Теперь понятно reversed пишет мой текст (топот) и даже не пишет а просто отображает как я понял!<br/>т<br/>о<br/>п<br/>о<br/>т<br/>Сейчас в общем буду вчитываться и решать проблему. <br/>Еще раз огромное спасибо! очень помогли!
Общий :: Центр помощи :: Очень легкая задача "палиндром"
2019-10-09T22:26:57+03:00marvellik204853немного понять что строки неизменяемы а reversed() возвращает обратный итератор по указанной последовательности<br/><div class="code"><pre> <span class="o">>>></span> <span class="n">a</span> <span class="o">=</span> <span class="s1">'Введите'</span>
<span class="o">>>></span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="n">a</span><span class="p">):</span>
<span class="k">print</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="n">end</span> <span class="o">=</span> <span class="s1">''</span><span class="p">)</span>
<span class="err">етидевВ</span>
<span class="o">>>></span>
</pre></div>лучше сами прочитайте <a href="https://python-scripts.com/reversed">Обзор трех основных способов перевернуть строку Python</a>
Общий :: Центр помощи :: Очень легкая задача "палиндром"
2019-10-09T21:25:16+03:00ToMaTkuH204852В задании сказано, что нужно проверить не является ли слово палиндромом, я накатал простенький код<br/>print(“Проверим не палиндром, ли это”)<br/>a = input(“Введите что-то: ”)<br/>c = reversed(a)<br/>if a == c:<br/> print(“Это палиндром”)<br/>else:<br/> print(“Это не палиндром”)<br/> print(a)<br/> print( c )<br/>Проблема в следующем когда я ввожу палиндром допустим топот, программа выдает мне что это не палиндром, я долго не мог понять почему исходя из логики в коде все верно. <br/>Начал вертеть проблему и добавил в код print(a) и print © чтобы посмотреть а что реально выводит программа. <br/>И понял, что проблема в том что после использования функции reversed, он мне возвращает вместо значения в перевернутом виде, место где он его сохранил.<br/>Примерно так ——- <br/> Проверим не палиндром, ли это<br/> Введите что-то: топот<br/> Это не палиндром<br/> топот<br/> <reversed object at 0x0086FCD0><br/>Вопрос к знатокам помогите вообще отдуплить как в подобных ситуациях разрешить проблему, то есть <br/>сменить возвращение места в памяти на реальное перевернутое значение.<br/>Я понимаю что это программу можно написать по другому, но вопрос сейчас в том , что я часто сталкиваюсь с этой проблемой и не знаю как ее решить. И не понимаю а можно ли ее вообще решить.<br/>И что самое главное я не понимаю, а правильно ли я вообще осознал проблему.<br/> С ув. начинающий питонист Томат.