检查两个字符串是否是回文 - 忽略和使用大小写?

Checking whether two strings are a palindrome - ignoring and using case writing?

下面是一个简单的脚本。基本上,我正在试验字符串,我想检查一个字符串是否是回文(忽略小写字母),如果它与原始字符串(大写和小写)的相同写法相反:

input = "Repaper"
reverse = reversed(input)

if input == reverse:
    print(reverse)

我没有收到任何错误警告 - 只是没有输入?

首先,使用 input 作为变量是 不好的做法 因为它已经是一个内置函数(参见:https://docs.python.org/3/library/functions.html)。当然,它不会损害您的代码,但也不会以任何方式使您受益!为什么不调用字符串,例如input_stringin_str?


据我了解,您想比较两个字符串 - 忽略小写和大写字母:
in_str = 'Anna'

#Ignoring lower-/uppercase
in_str = in_str.casefold()

#Reversing the string
rev_str = reversed(in_str)

现在重要的是要知道我们现在一直在使用的内置函数 reversed(),returns 是一个反向迭代器,所以我们将(一个例子)通过 list():

#Comparing the string and check whether it's a palindrome
if list(in_str) == list(rev_str):
    #Outputting the reversed string; for example via slicing
    print(in_str[::-1])

-> 因此对于示例输入 Anna,输出将是 annA,这应该正是您想要的。

给定一个字符串 a 和一个字符串 b

return a == b[::-1] # would return True if a and b are palindromes