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]
周围不需要括号。