UPDATE:Благодаря ответам ниже я теперь знаю, что это ошибка в функции и не имеет ничего общего с поведением Python. (Мой фол) Я с тех пор изменил название с «Может ли Python пропускать пробелы при повторении строки?» на «Что не так с этой функцией?» поэтому будущие читатели будут знать, что ответы, которые они найдут здесь, относятся к функции, а не к Python.Что не так с этой функцией Palindrome?
Я создал функцию на Python, которая определяет, является ли строка палиндром или нет. В принципе, он выполняет итерацию слева и справа одновременно и проверяет, не совпадают ли какие-либо символы. Если это так, он возвращает False. После того, как он достигнет середины, он прекратит итерацию и вернет True.
def isPalindrome(string):
l = 0
r = -1
while(l < r+2):
if string[l] != string[r]:
return False
l += 1
r -= 1
return True
palin = raw_input("Enter string: ")
if(isPalindrome(palin)):
print "\""+palin+"\"","is a Palindrome."
else:
print "\""+palin+"\"","isn't a Palindrome."
Он работает
, но по какой-то причине он также определяет строки, как «pythonnoh ти р» как палиндром. Хотя иногда это может быть хорошо, мне интересно, почему функция пропускает пробелы в строке. Он должен возвращать False, так как '' не равен 'y', но это не так.
Есть ли проблема в моем коде или поведение Python?
Вы только сравнить первую и последнюю букву. Также «pythonp» является палиндром в соответствии с вашей функцией. Ничего общего с пробелами. – Hyperboreus