“如何创建审查员”;翻译人员;python中的via函数

“如何创建审查员”;翻译人员;python中的via函数,python,Python,我正在尝试创建一个“翻译器”,如果原始输入有任何诅咒(预先确定,我可能列出6个测试诅咒),函数将输出一个带有诅咒的字符串*** 下面是我的代码: def censor(sequence): curse = ('badword1', 'badword2', 'badword3', 'badword4', 'badword5', 'badword6') nsequence = sequence.split() aword = '' bsequence = []

我正在尝试创建一个“翻译器”,如果
原始输入
有任何诅咒(预先确定,我可能列出6个测试诅咒),函数将输出一个带有诅咒的字符串
***

下面是我的代码:

def censor(sequence):
    curse = ('badword1', 'badword2', 'badword3', 'badword4', 'badword5', 'badword6')
    nsequence = sequence.split()
    aword = '' 
    bsequence = []
    for x in range(0, len(nsequence)):
        if nsequence[x] != curse:
            bsequence.append(nsequence[x])
        else:
            bsequence.append('*' * (len(x)))
        latest = ''.join(bsequence)
        return bsequence



if __name__ == "__main__":
    print(censor(raw_input("Your sentence here: ")))

一种简单的方法是简单地使用Python的原生字符串方法:
str.replace

def censor(string):
    curses = ('badword1', 'badword2', 'badword3', 'badword4', 'badword5', 'badword6')
    for curse in curses:
        string = string.replace(curse, '*' * len(curse))
    return string
为了提高效率,您可以尝试将诅咒列表编译成正则表达式,然后执行单个替换操作


一个简单的方法是简单地使用Python的原生字符串方法:
str.replace

def censor(string):
    curses = ('badword1', 'badword2', 'badword3', 'badword4', 'badword5', 'badword6')
    for curse in curses:
        string = string.replace(curse, '*' * len(curse))
    return string
为了提高效率,您可以尝试将诅咒列表编译成正则表达式,然后执行单个替换操作


首先,这里不需要迭代元素索引。Python允许您迭代元素本身,这对于这种情况非常理想

其次,您要检查给定句子中的每个单词是否等于潜在坏单词的整个
元组。您想检查每个单词是否都在
元组中(最好是
集合)

第三,当你做
len(x)
时,你把索引和元素混在一起了——这假设
x
是单词本身,但它实际上是索引,就像你在其他地方使用的那样

第四,在循环内和空字符串上加入序列。您应该在一个空间上连接它,并且只有在您检查了每个元素之后

def censor(sequence):
    curse = {'badword1', 'badword2', 'badword3', 'badword4', 'badword5', 'badword6'}
    nsequence = sequence.split()
    bsequence = []
    for x in nsequence:
        if x not in curse:
            bsequence.append(x)
        else:
            bsequence.append('*' * (len(x)))
    return ' '.join(bsequence)

首先,这里不需要迭代元素索引。Python允许您迭代元素本身,这对于这种情况非常理想

其次,您要检查给定句子中的每个单词是否等于潜在坏单词的整个
元组。您想检查每个单词是否都在
元组中(最好是
集合)

第三,当你做
len(x)
时,你把索引和元素混在一起了——这假设
x
是单词本身,但它实际上是索引,就像你在其他地方使用的那样

第四,在循环内和空字符串上加入序列。您应该在一个空间上连接它,并且只有在您检查了每个元素之后

def censor(sequence):
    curse = {'badword1', 'badword2', 'badword3', 'badword4', 'badword5', 'badword6'}
    nsequence = sequence.split()
    bsequence = []
    for x in nsequence:
        if x not in curse:
            bsequence.append(x)
        else:
            bsequence.append('*' * (len(x)))
    return ' '.join(bsequence)