本项目采用的是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
