试图用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