《Python编程快速上手》疯狂填词

题目如下:

  • 创建一个疯狂填词程序,它将读入文件,并让用户在该文本文件中出现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

思路如下:

  • 程序需要做以下事情:
    读入文本文件
    在相应单词的地方让用户输入替换
    保存修改后的文本文件,并将结果打印到屏幕
  • 代码需要做以下事情:
    导入模块re
    编写函数,创建正则表达式对象
    函数内调用Regex.findall()方法,返回匹配到的所有结果列表
    打开文本文件,导入到变量
    for循环控制输入
    字符串replace方法进行替换
    print()显示更改后的文本到屏幕
    open.write()保存到新文件

代码如下:

import re
def madLibs(longStr):
    madLibsRex = re.compile(r'ADJECTIVE|NOUN|ADVERB|VERB') #正则表达式对象
    print(madLibsRex.findall(longStr)) #验证是否模式匹配正确
    return madLibsRex.findall(longStr)

openFile = open('123.txt','r')
longStr = openFile.read() #将文本内容读入变量longStr
print("源文本如下:",longStr)
for i in madLibs(longStr): #循环遍历函数返回的匹配对象列表
    print("Enter an {0}:".format(i))
    longStr = longStr.replace(i,input()) #调用字符串的replace()方法输入替换,再赋值给longStr
print(longStr)
resultFile = open('new123.txt','w') #在当前工作目录创建一个新的文件
resultFile.write(longStr) #将字符串变量写入resultFile对象
openFile.close()
resultFile.close()

结果如下:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值