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

Palindrome function in python not returning expected results

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