现在,我所拥有的是一个代码,我可以测试一个单词是否是Palindrome。我必须输入这个词,它会告诉我它是Palindrome(True)还是不是(False)
我需要创建一个要求单个单词的单词,然后根据键入的单词提供True of False。这就是我到目前为止所拥有的。
我真的不知道如何做到这一点,任何帮助将不胜感激。
def isPalindrome(s):
if len(s) <= 1:
return True
else:
if s[0] != s[len(s)-1]:
return False
else:
return isPalindrome(s[1:len(s)-1])
print(isPalindrome("poop"))
答案 0 :(得分:19)
只需创建一个反向字符串并检查两者是否相等。
def isPalindrome(s):
return s == s[::-1]
print isPalindrome('poop')
答案 1 :(得分:2)
也使用反向字符串,但也可以在线使用(即不需要函数)。
def is_palindrome(word):
return word == ''.join(reversed(word))
print is_palindrome('hello') #False
print is_palindrome('racecar') #True
答案 2 :(得分:2)
如果您正在询问如何让Python接受用户输入,那么您可以使用几种选项。一种选择是使脚本从命令行运行并使用命令行参数,另一种选择是使用raw_input函数。两者都在以下代码中实现。
import sys
def isPalindrome(word):
...
if __name__ == '__main__':
if len(sys.argv) > 1:
inp = sys.argv[1]
else:
inp = raw_input("Type a word: ") # Which you might want to strip for white space
if isPalindrome(inp):
print inp,"is a palindrome"
else:
print inp,"is not a palindrome"
其他几个人已经建议使用isPalindrome的替代实现可能更好,但是如果你这样做是作为一个赋值并且应该使用递归,那么继续使用你的。此外,raw_input函数可以在脚本中方便的任何地方调用,并且在从命令行调用时不必使用。
答案 3 :(得分:2)
您可以尝试此功能:
def is_palindrome(text):
return text[:len(text)//2] == text[:(len(text)-1)//2:-1]
以下是参考的示例用法:
>>> is_palindrome('')
True
>>> is_palindrome('a')
True
>>> is_palindrome('b')
True
>>> is_palindrome('aa')
True
>>> is_palindrome('ab')
False
>>> is_palindrome('ba')
False
>>> is_palindrome('bb')
True
>>> is_palindrome('aaa')
True
>>> is_palindrome('aab')
False
>>> is_palindrome('aba')
True
答案 4 :(得分:1)
这是我的:
def isPalindrome(word):
word=str(word)
a=word[::-1]
if a!=word:
return False
elif word=='':
return False
else: return True
答案 5 :(得分:1)
使用字符串下标
def is_palindrome(string):
return all(char == string[-i - 1] for i, char in enumerate(string))
使用列表反转
def is_palindrome(string):
to_list = list(string)
# reverse to_list now
to_list.reverse()
# our reversed list should be equal string as a list
# if string is a palindrome
return to_list == list(string)
答案 6 :(得分:0)
这是我的:
def palindrome_checker(word):
return True if len(word) < 2 else (word[0] == word[-1]) and palindrome_checker(word[1:-1])
答案 7 :(得分:0)
这应该有效。
return (s[:1+len(s)//2]==s[len(s)//2:][::-1])
答案 8 :(得分:0)
对于从testdome.com进行回文测试的人来说,考虑到肠衣,这是我的解决方案:
def is_palindrome(word):
wordoriginal = []
wordreversed = []
for i in reversed(word):
i = i.lower()
wordreversed.append(i)
for i in word:
i = i.lower()
wordoriginal.append(i)
return wordoriginal == wordreversed
答案 9 :(得分:-1)
这就是我提出的,希望它适合你:
def palindrome_(word):
word = input("enter your word Here ")
return word == word[::-1]
print palindrome_("word")