Python练手项目0012

    xiaoxiao2021-03-26  28

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

    转载请注明原文地址: https://ju.6miu.com/read-660761.html

    最新回复(0)