Почему Python Палиндром терпит неудачу - PullRequest
0 голосов
/ 26 апреля 2020
import sys

for line in sys.stdin:
    if line == line[::-1]:
        print('true')
    else :
        print('false')    

Я набираю abba

, но получил false

Я печатаю строку [:: - 1], что это было 'abba'

, почему результат равен false?

Ответы [ 2 ]

2 голосов
/ 26 апреля 2020

Когда вы вводите код с использованием стандартного ввода, строка имеет escape-символ \ n, что означает новую строку. Лучше использовать оператор ввода. Если вы хотите сохранить это, вот как это исправить.

for line in sys.stdin:
line = line.strip()
if line == line[::-1]:
    print('True')
else:
    print('False')
1 голос
/ 26 апреля 2020

В основном пробелы и \ n объединяются с вашей строковой переменной, поэтому она не соответствует, используйте функцию line.strip (), эта функция удалит все пробелы в строке. import sys

for line in sys.stdin:
    line = line.strip()
    if line == line[::-1]:
        print('true')
    else :
        print('false')   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...