Python练习册(十二)——敏感词过滤

problem0012敏感词过滤

第 0012 题: 敏感词文本文件 ffilterwords.txt,里面的内容 和 0011题一样,当用户输入敏感词语,则用 星号 * 替换,例如当用户输入「北京是个好城市」,则变成「**是个好城市」。

  • 读取文件获取敏感词,去除多余字符,并存入链表
  • 采用脚本获取输入,遍历对比打印输出
  • 完全是C语言处理数组的思路,缺陷:只能识别第一次出现的敏感词,同一敏感词多次出现只处理第一个

demo:


#!/usr/bin/python3
from sys import argv

scripts,Input = argv

def getFilterwords():
    filterwords = []
    f=open('filterwords.txt')
    for word in f:
        filterwords.append(word[:-1])
    f.close()
    return filterwords

def checkFilterwords(filtWord,Input):
    for w in filtWord:  
        wlen=len(w)
        slen=len(Input)
        Input = list(Input)        
        if slen == wlen and w == "".join(Input):                       
            print('*'*wlen)               
            return
        elif slen > wlen:
            for i in range(slen):
                if w == "".join(Input[i:i+wlen]): 
                    j=i                   
                    while (wlen):
                        Input[j]='*'
                        j+=1
                        wlen-=1
    print("".join(Input))                      
    return 

if __name__ == '__main__':
    checkFilterwords(getFilterwords(),Input) 

效果:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_30650153/article/details/80879775