如何在确定单词或短语是回文时,如何删除所有空格和标点符号? (蟒蛇)

时间:2016-05-15 03:43:01

标签: python palindrome

我想知道一个单词或短语是否是回文。

当我输入" racecar"。

时,我得到了正确的答案

但每当我输入一些包含标点符号的内容时,如果它是一只猫,我看到了吗?",我得错了答案。

这是我到目前为止的编程。

请看一看并告诉我错误。

提前致谢。

a1=input("Enter a word or phrase: ") 
a=a1.lower()
b=len(a)
c=[]
for i in range(1,b+1):
    d=b-i 
    c.append(a[d])
e="".join(c for c in a1 if c not in ("!",".",":","?"," "))
if e==a:
print (a1,"is a palindrome.")
else:
print (a1,"is not a palindrome.")

4 个答案:

答案 0 :(得分:1)

这应该规范化字符串:

s="race. car, "
"".join(x for x in s if x.isalpha())
print s

给出

racecar

您可以使用s.isalnum代替字符串

对于测试:

if e == e[::-1]: print "palindrome"

答案 1 :(得分:0)

对于字符串的反转,您可以使用反向方法

c= a.reverse()
c.replace (' ','')
a.replace(' ','')
If a == c :
    Print ("pallindrome ")
Else :
    Print("not a pallindrome !! ) 

答案 2 :(得分:0)

你想要的实际上在Python中非常简单:

a = [c for c in input() if c.isalpha()]
if list(reversed(a)) == a:
    print('palindrome')
else:
    print('not palindrome')

答案 3 :(得分:0)

一种选择是使用str.translate并将要删除的字符作为参数传递:

web/index?searchkey='something'