我创建了一个python程序,用户在其中输入一个单词,然后该程序将该单词转换为一个列表。然后用户输入一个字母,然后程序会告诉你这个字母出现了多少次。现在我需要添加更多的程序来检查它,在开始输入的单词是一个回文。如果是,就会有一条好消息,如果不是,就会有一条假消息。我真的不知道该怎么开始。有什么帮助吗?
发布于 2016-03-01 08:31:09
您可以reverse the string并检查它是否等于输入字符串:
def palindrome(s):
return s == s[::-1]
发布于 2016-03-01 08:30:25
在python中有一个众所周知的“诀窍”,就是使用[::-1]
颠倒单词。虽然不是最有效的:
>>> "racecar" == "racecar"[::-1]
True
>>> "racecars" == "racecars"[::-1]
False
发布于 2016-03-01 09:31:22
你可以使用一个简单的条件语句。对于初学者来说,这应该更容易理解。例如:
text = "Rapport"
def palindrome(text)
if text[::-1] == text:
return True
else:
return False
我相信这应该很容易理解。text::-1是最快的方法。一种慢得多的方法是使用''.join(reversed( list )),其中list是您将文本拆分成的列表。您可以通过使用timeit对代码进行计时来验证您希望采用哪种方法。
不过,对代码切片进行计时被认为是一个糟糕的基准测试,所以对整个代码计时。希望我解释得够好了。祝好运!
编辑:您的代码很好,但您需要记住,函数接受参数作为值,这是您在函数本身中操作的值。
最终的代码应该如下所示: text = StrVar()
def getPalindrome(word):
if word == word[::-1]:
return True
else :
return False
palindrome = getPalindrome(text)
请注意,该函数的参数与文本本身不同,我为其分配了一个字符串变量,以显示您不需要立即为其赋值。让你的代码优雅。
https://stackoverflow.com/questions/35717918
复制相似问题