Python 如何检查字符串是否是另一个字符串的回文

Python 如何检查字符串是否是另一个字符串的回文,python,string,Python,String,我试图检查传入函数的字符串是否是传入的第二个字符串的回文。谷歌将回文定义为向前或向后拼写相同的单词 def palindrome(strA, strB): if (strA == strB and strA[::1] == strB): print "true" else: print "false" if __name__ == '__main__': palindrome("sirap", "paris") 在上面的代码中,我试图检查给定的字符串是否前后等于

我试图检查传入函数的字符串是否是传入的第二个字符串的回文。谷歌将回文定义为向前或向后拼写相同的单词

def palindrome(strA, strB):
  if (strA == strB and strA[::1] == strB):
    print "true"
  else:
    print "false"


if __name__ == '__main__':
  palindrome("sirap", "paris")

在上面的代码中,我试图检查给定的字符串是否前后等于第二个字符串,但我在main中给出的测试返回false。有什么想法吗?

你可以检查
'sirap'
是否与
'paris'
相同,也可以检查
'sirap'
是否与
'paris'
相同。您的
中有太多的内容,如果

if strA[::-1] == strB:
    print "true"
else:
    print "false"
如果你在回文中传递回文以及回文的反面,同样的事情,你所拥有的将会起作用。例如,
回文(“stats”,“stats”)
会打印出
“true”
,但我认为这不是你想要的。您还会注意到,我使用了
strA[::-1]
而不是
strA[::1]
。这是因为
strA[::1]
从开头开始,一直到结尾,但是您想向后走,所以应该使用
-1

您甚至可以在一行中完成:

print ("false", "true")[str[::-1] == strB]

我用“100个项目”做了一个类似的测试来学习python(对学习任何语言都很有用)

您可以这样做,然后运行脚本。为此,我对我写的原始回文脚本做了一些修改

print "This will check if its a palindrome"
inputstring = raw_input("String1: ")
inputstring2 = raw_input("String2: ")
inputstring = inputstring.lower()
inputstring2 = inputstring.lower()
revstring = inputstring[::-1] #Reverses the string

if revstring == inputstring2:
    print "Yes: " + revstring
else:
    print "No: " + revstring

strA[::1]
strA
相同。你想要
strA[:-1]
什么是一个回文字符串?据我所知,一个字符串是回文的,如果它是同一个字符串,那么它就是回文的?也许-
return strA[:-1]==strB
这不是一回事。目前,它打印而不是返回。但是你确实让我想到了一些事情。。。请参阅我的编辑。在
inputstring[:-1]
周围不需要括号。