我正在尝试创建一个“translator”,其中如果raw_input
有任何诅咒(预先确定的,我可能列出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允许您迭代元素本身,这对于这种情况非常理想。你知道吗
第二,你要检查给定句子中的每一个单词是否等于潜在的坏单词的整个
tuple
。您想检查每个单词是否在中,tuple
(aset
更好)。你知道吗第三,当你做
len(x)
的时候,你把索引和元素混在一起了——假设x
是单词本身,但它实际上是索引,就像你在其他地方使用的那样。你知道吗第四,在循环内和空字符串上加入序列。只有在检查了每个元素之后,才应该将它连接到一个空格中。你知道吗
一种简单的方法是简单地使用Python的原生字符串方法:
str.replace
为了提高效率,可以尝试将诅咒列表编译成正则表达式,然后执行单个替换操作。你知道吗
Python Documentation
相关问题 更多 >
编程相关推荐