Python练手项目0012

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



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值