Python 不包括ASCII字符

Python 不包括ASCII字符,python,Python,我正在创建一个回文检查器,它可以工作,但是我需要找到一种方法来替换/删除给定输入中的标点符号。我正在尝试为32,47范围内的chr(I)I执行,然后用“”替换其中的值。我需要排除的字符是32-47。我尝试过使用字符串模块,但我只能让它排除空格或标点符号,无论出于何种原因,两者都不能 我已经尝试了字符串模块,但无法同时删除空格和标点符号 def is_palindrome_stack(string): s = ArrayStack() for character in string

我正在创建一个回文检查器,它可以工作,但是我需要找到一种方法来替换/删除给定输入中的标点符号。我正在尝试为32,47范围内的chr(I)I执行,然后用“”替换其中的值。我需要排除的字符是32-47。我尝试过使用字符串模块,但我只能让它排除空格或标点符号,无论出于何种原因,两者都不能

我已经尝试了字符串模块,但无法同时删除空格和标点符号

def is_palindrome_stack(string):
    s = ArrayStack()
    for character in string:
    s.push(character)

    reversed_string = ''
while not s.is_empty():
    reversed_string = reversed_string + s.pop()

if string == reversed_string:
    return True
else:
    return False


def remove_punctuation(text):
    return text.replace(" ",'')
    exclude = set(string.punctuation)
    return ''.join(ch for ch in text if ch not in exclude)

这是因为您从方法的第一行返回,在
返回文本中。替换(“,”)
。将其更改为
text=text。替换(“,”)
,它应该可以正常工作

另外,在你的文章中,缩进可能是乱七八糟的,可能是在复制粘贴过程中

完整方法片段:

def remove_punctuation(text):
    text = text.replace(" ",'')
    exclude = set(string.punctuation)
    return ''.join(ch for ch in text if ch not in exclude)

您可以使用
str
方法以以下方式去除不需要的字符:

import string
tr = ''.maketrans('','',' '+string.punctuation)
def remove_punctuation(text):
    return text.translate(tr)
txt = 'Point.Space Question?'
output = remove_punctuation(txt)
print(output)
输出:

PointSpaceQuestion

maketrans
create replacement table,它接受3个
str
-s:第一个和第二个长度必须相等,第一个的第n个字符将替换为第二个的第n个字符,第三个
str
是要删除的字符。您只需删除(而不是替换)字符,使前两个参数为空。strs。

欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确指定问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您指定的问题。StackOverflow不是一个设计、编码、研究或教程资源。展示你已经尝试过的内容,并记下它到底有什么地方不起作用,以及你需要什么帮助。请发布你的代码对不起,各位,我以为我一开始就包括了这些。希望这有帮助。为什么要执行
返回文本。替换顶部的(“,”)
?它下面的两条线永远不会走<代码>返回导致函数退出。我想你的意思是
text=text.replace(“,”)
。缩进肯定是复制和粘贴的结果。这解决了我的问题,但现在我的回文返回false,而实际上它不是false。