Python小程序练习---敏感词替换成*星号

本文介绍了一种简单的方法来过滤并替换文本中的敏感词。通过读取敏感词列表,并使用Python的replace方法来实现敏感词的星号替换,有效地处理包含多个敏感词的句子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小程序需求说明:

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

思路及程序编写

#流程以及思路确定
"""
1. 用户输入一串文字 ,保存到user_input中
2.检查文字是否有敏感词,以及敏感词的具体位置。
        2.1 文件迭代器读取敏感词
        2.2 使用 str.find() 找到敏感词的位置
        2.3 使用format方式替换掉敏感词???  此方案pass
        2.3  直接使用relpace方式替换掉敏感词!
3.一句话中可能含有多个敏感字,这个时候就要重复2的步骤。
4.使用 ** 替换掉敏感词对应的个数。
"""

user_input=input('Leave your comments:  ')
for filter_word in open('filtered_words.txt'):
    fw=filter_word.rstrip()
    if fw in user_input:
        fw_len=len(fw)
        user_input=user_input.replace(fw,'*'*fw_len)  #将user_input在原处进行修改,进行下一次循环查找。

else:
           print(user_input)

执行后的输出:

Leave your comments:  北京是个好城市
**是个好城市
RESTART:
Leave your comments:  你妈妈在北京是一个公务员
**妈在**是一个***

小结(always continue…)

整个小程序的重点:

敏感词的替换
对比上一题,这一题多出来的一个操作就是敏感词的替换!而针对敏感词的替换我们可能会想到使用find方法,找到该敏感词所在的地方,然后再格式化替换;不过这样过于繁琐了。
针对字符串,直接使用replace()方法就可以轻松实现。

敏感词替换多少个星号?
我们直到,在Python的多态特性中:

数据类型星号的作用
数值类型numberic乘法
字符串文本类型重复次数

所以多少个星号我们只需要使用
len(敏感词)就可以了
在替代的时候:

user_input.relpace(敏感词,'*'*len(敏感词))

如果用户一句话中有多个敏感词呢?
我们上一题中的程序只要检测到一个敏感词,就会替换然后break出来。因为上一题的需求是检测是否含有敏感词。

这一次的需求是要将敏感词替换。所以要考虑的问题是 ,如果用户的一句话中有多个敏感词呢?
例如:你妈妈在北京是一个公务员
含有三个敏感词。所以针对上面进行修正。
这里的修改需要针对用户输入的那个语句的原处进行修改

小程序来自于

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值