python中的回文函数未返回预期结果



试图用for循环定义一个回文函数,如下所示:

def is_palindrome(input_string):
new_string = ""
reverse_string = ""
for i in input_string.lower(): 
if input_string.strip():
new_string = new_string.join(reverse_string)
reverse_string = reverse_string.join(new_string)
# Compare the strings
if new_string == reverse_string:
return True
return False
print(is_palindrome("Never Odd or Even")) # Should be True
print(is_palindrome("abc")) # Should be False
print(is_palindrome("kayak")) # Should be True

我一直都是真的。有人能发现为什么会这样吗?

您正在对input_string进行迭代,但没有使用变量i。以您尝试的方式使用str.join也没有意义,似乎您有一个想法,但使用了错误的工具

要检查input_string是否为回文,可以使用:

def is_palindrome(input_string):
l = input_string.lower().replace(' ', '')
return l == l[::-1]

print(is_palindrome("Never Odd or Even"))
print(is_palindrome("abc"))
print(is_palindrome("kayak"))

输出:

True
False
True

最新更新