本项目采用的是https://github.com/Yixiaohan/show-me-the-code中所提供的练习项目,所有代码均为原创,转载请注明,谢谢。
问题描述:敏感词文本文件 filtered_words.txt,里面的内容 和 0011题一样,当用户输入敏感词语,则用 星号 * 替换,例如当用户输入「北京是个好城市」,则变成「**是个好城市」
其具体代码如下:
# -*- coding: utf-8 -*-
"""
Created on Sat Feb 04 19:54:51 2017
@author: sky
"""
import string
class senseWord():
def __init__(self):
self.list=[]
self.word=[]
inputfile=file('word.txt','r')
for lines in inputfile.readlines():
self.list.append(lines.decode('utf-8').encode('gbk'))#I've set the file coding type as utf-8
inputfile.close()
self.list=map(string.strip,self.list);
def checkWord(self,word):
flag=False
for words in self.list:
if words in word:
self.word.append(words)
flag= True
return flag
def getWord(self):
return self.word
if __name__=='__main__':
myCheck=senseWord()
while True:
ipstr=str(raw_input())
if ipstr:
if(myCheck.checkWord(ipstr)):
senseList=myCheck.getWord()
for items in senseList:
length=len(items.decode('gbk'))
torep='*';
for i in range(1,length):
torep+='*'
ipstr=ipstr.replace(items,torep)
print ipstr
else:
print ipstr
else:
break
详细代码和结果,可以参考https://github.com/g8015108/exercise-for-python
map相当于一个迭代器
map(a,b,c)可以解释为:
for i,j in b,c:
a(i,j)
具体应用可以参考https://my.oschina.net/zyzzy/blog/115096