文章目录

  • 8.9.2疯狂填词
  • 一、思路
  • 二、程序
  • 三、结果
  • 四、改进

8.9.2疯狂填词

创建一个疯狂填词(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

以下的文本文件将被创建:

The silly panda walked to the chandelier and then screamed. A nearby pickup truck was unaffected by these events.

结果应该打印到屏幕上,并保存为一个新的文本文件。


一、思路

第1步:
读入文本文件
第2步:
匹配出现的单词并取代它们
第3步:
保存为新的文本文件


二、程序

#! python3
import remad_libs = open('mad_libs', 'r')
sentence = mad_libs.read()
mad_libs.close()
print(sentence)
adjective_regex = re.compile('ADJECTIVE')
noun_regex = re.compile('NOUN')
adverb_regex = re.compile('ADVERB')
verb_regex = re.compile('VERB')
for i in range(len(list(adjective_regex.findall(sentence)))):  # 遍历文本找到出现的单词并逐个取代adjective = input('Enter an adjective:\n')sentence = adjective_regex.sub(adjective, sentence, 1)  # 可选参数count,对于匹配到的内容,只处理第一个
for i in range(len(list(noun_regex.findall(sentence)))):noun = input('Enter a noun:\n')sentence = noun_regex.sub(noun, sentence, 1)
for i in range(len(list(adverb_regex.findall(sentence)))):adverb = input('Enter an adverb:\n')sentence = adverb_regex.sub(adverb, sentence, 1)
for i in range(len(list(verb_regex.findall(sentence)))):verb = input('Enter a verb:\n')sentence = verb_regex.sub(verb, sentence, 1)
mad_libs = open('mad_libs', 'w')
mad_libs.write(sentence)
mad_libs.close()
mad_libs = open('mad_libs', 'r')
sentence = mad_libs.read()
print(sentence)
mad_libs.close()

三、结果

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 noun:
pickup truck
Enter a verb:
sceamed
The silly panda walked to the chandelier and then sceamed. A nearby pickup truck was unaffected by these events.Process finished with exit code 0

四、改进

1.读写文件可以通过调整指针来避免重复操作
2.可以通过通道匹配同时匹配出现的单词


Python编程快速上手——让繁琐工作自动化第8章8.9.2:疯狂填词相关推荐

  1. 《python编程快速上手 让繁琐工作自动化》第一章习题答案

    1.*,-,/,+是操作符:'hello',-88.8是值 2.spam变量,'spam'值 3.整型.浮点型.字符串 4.表达式包含值和操作符,作用:求值(归约)为单个值 5.赋值语句将值保存在变量 ...

  2. Python编程快速上手 让繁琐工作自动化 | 第三章 :实践项目

    本题来自 1.Collatz 序列 编写一个名为 collatz()的函数,它有一个名为 number 的参数.如果参数是偶数,那么 collatz()就打印出 number // 2,并返回该值.如 ...

  3. 导入python标准数学函数模块的语句_《Python编程快速上手——让繁琐工作自动化》——2.8 导入模块...

    本节书摘来自异步社区<Python编程快速上手--让繁琐工作自动化>一书中的第2章,第2.8节,作者[美] Al Sweigart,王海鹏 译,更多章节内容可以访问云栖社区"异步 ...

  4. 《Python编程快速上手——让繁琐工作自动化》——第一部分 Python编程基础 第1章 Python基础 1.1 在交互式环境中输入表达式...

    本节书摘来自异步社区<Python编程快速上手--让繁琐工作自动化>一书中的第1章,第1.1节,作者[美] Al Sweigart,王海鹏 译,更多章节内容可以访问云栖社区"异步 ...

  5. python快速上手 让繁琐工作自动化 英文版_入门python:《Python编程快速上手让繁琐工作自动化》中英文PDF+代码...

    入门推荐学习<python编程快速上手>前6章是python的基础知识,通俗易懂地讲解基础,初学者容易犯错的地方,都会指出来.从第三章开始,每章都有一个实践项目,用来巩固前面所学的知识. ...

  6. 《Python编程快速上手 让繁琐工作自动化》pdf

    <div id="article_content" class="article_content tracking-ad" data-mod=" ...

  7. python编程快速上手 让繁琐工作自动化 豆瓣_2019年,这些豆瓣评分9.0以上的8本程序员好书你都知道吗?...

    豆瓣这些9.0以上的高评分程序员好书你都知道有哪些吗?小编去豆瓣看了一下,推荐这8本最适用的程序员好书给你. 1.UNIX环境高级编程(第3版)(豆瓣评分9.6)UNIX编程圣经 与Linux相结合的 ...

  8. python编程快速上手自动化_《Python编程快速上手 让繁琐工作自动化》完整版PDF...

    image.png <Python编程快速上手 让繁琐工作自动化>完整版PDF 提取码:7qm4 3.jpg 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 ...

  9. 《Python编程快速上手——让繁琐工作自动化》——2.5 控制流的元素

    本节书摘来自异步社区<Python编程快速上手--让繁琐工作自动化>一书中的第2章,第2.5节,作者[美] Al Sweigart,王海鹏 译,更多章节内容可以访问云栖社区"异步 ...

  10. 近期开通《Python编程快速上手-让繁琐工作自动化》视频教学

    <Python编程快速上手-让繁琐工作自动化>视频教学,包括课件.PDF.代码.视频.思维导图等相关内容,敬请期待.

最新文章

  1. matlab ufunc,ufunc函数
  2. Day 12 你离开家时最想念的东西
  3. android photopicker怎么修改状态栏,有没有办法阻止UIImagePickerController更改状态栏样式?...
  4. 服务器存档修改,云服务器存档修改器
  5. 有人说:轻量级锁一定比重量级锁快!我忍不住笑了
  6. 解决string字符串关于copy函数的C4996错误
  7. 如何使Session永不过期
  8. 因云而生,阿里云全面进入云原生时代
  9. teigha开发从入门到精通(3)-- 编译drawings sdk示例
  10. 去掉IE里的Alexa工具条(转)
  11. mzy git学习,git协同开发忽略文档配置以及一些杂点(九)
  12. Android 获取位置信息
  13. 支付宝开发问题-“您当前注册的企业账号风险等级过高,根据国家相关法律法则及《支付宝服务协议》规定,我司无法为您提供支付服务”
  14. 基于C语言的个人所得税计税系统
  15. 淘宝API关键词搜索接口调用示例
  16. word,excel,ppt在线预览功能
  17. 益聚星荣:网易有道、沪江小D等词典错误频现 莫让词典类APP误人子弟
  18. 【安全测试】数据安全性
  19. Word2010 下划线字体距离的调整方法
  20. consistent equation

热门文章

  1. android wear iphone7,多款 Android Wear 智能手表不兼容iPhone 7
  2. C语言猜数字游戏及关机程序
  3. 计算机二级vbf资源百度云,2018年计算机二级考试考前冲刺卷
  4. 零基础如何从零开始运营微信公众号
  5. python3 安装 pillow报错
  6. 通过LeecodeAnimation学习数据结构与算法(0)上
  7. 绘制网络组建拓扑图方法分享
  8. 使用fontforge精简字体文件
  9. 通过文件流转加密压缩文件并下载
  10. 计算机网络安全技术实践总结,网络安全实训总结.doc