python编程快速上手办公自动化_关于疯狂填词(Mad Libs)程序的解答

题目

创建一个疯狂填词的程序,它将读入文本文件,并让用户在该文本文件中出现ADJECTIVE\NOUN\ADVERB\VERB等单词的地方,加上它们自己的文本.


例如:
The ADJECTIVE panda walked to the NOUN and then VERB. A nearby NOUN was unaffected by these events.
程序将找到这些出现的单词,并提示用户取代它们,打印出来并输入新文件中.
Enter an adjective:
silly
Enter a noun:
chandelier
Enter a verb:
screamed
Enter a noun:
pickup truck

提示:小白文章,仅以参考为主,若有问题或建议欢迎提出.

代码

#! python3
# Mad libs.py - 给一段文本,通过输入替换

import re
#打开并读取文本
file = open('oldSentence.txt','rt')
source = file.read()
#使用正则表达式编译文本
pattern = re.compile(r'\b[A-Z][A-Z]+\b')            #省略A为大写且单独的情况
WORD = pattern.findall(source)                      #findall方法返回一个列表WORD
print(WORD)
for word in WORD:                                   #word遍历每个WORD大写字母
    new_word = input('Enter an %s:\n'%word)         #用户交互输入
    source = re.sub(word,new_word,source)           #替换并获取每一次修改后的文本

print(source)										#打印新文本
file.close()                                       
open('newSentence.txt','wt').write(source)          #把新文本写入新txt文件

注意:词性单词不是只出现一次,可能会重复出现,所以做此题要注意源文本的通用,而不是题目给什么套什么.要做到把源文本换成什么,程序也可以执行替换!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值