在判断一个单词或短语是否是回文时,如何删除所有空格和标点符号?(Python)

2024-04-25 21:19:07 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我键入“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.")

Tags: 答案in内容for键入ifisa1
3条回答

这应该规范化字符串:

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

给予

racecar

您可以改用s.isalnum将数字保留在字符串中

对于测试:

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

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

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

在Python中,您需要的实际上非常简单:

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

相关问题 更多 >