Python编程快速上手——疯狂填词程序实现方法分析

 更新时间:2020年02月29日 17:12:33   作者:授我以驴  
这篇文章主要介绍了Python疯狂填词程序实现方法,结合具体案例形式分析了Python填词算法相关的文件读写、正则匹配、数据遍历等操作技巧,需要的朋友可以参考下

本文实例讲述了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()

结果如下:

在这里插入图片描述

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python实现二叉堆

    Python实现二叉堆

    二叉堆是一种特殊的堆,二叉堆是完全二元树(二叉树)或者是近似完全二元树(二叉树)。二叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。
    2016-02-02
  • tensorflow pb to tflite 精度下降详解

    tensorflow pb to tflite 精度下降详解

    这篇文章主要介绍了tensorflow pb to tflite 精度下降详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python中itertools库的四个函数介绍

    Python中itertools库的四个函数介绍

    这篇文章主要介绍了Python中itertools库的四个函数,主要讨论itertools库中的十分使用的几个函数,并重点介绍什么时候我们应该考虑使用它们,需要的朋友可以参考一下
    2022-04-04
  • Python超有用的多版本管理工具pyenv

    Python超有用的多版本管理工具pyenv

    使用不同的Python版本,如果我们把需要的不同版本的Python都下载到服务器上,管理起来会非常困难,多版本并存又容易互相干扰,接下来就来介绍一个Python环境管理工具:pyenv,就可轻松的在多个版本的Python之间自由切换,需要的朋友可以参考下
    2021-09-09
  • 关于python selenium 运行时弹出窗口问题

    关于python selenium 运行时弹出窗口问题

    最近在做一个网页代填项目,用到了python的selenium知识,经过了各种尝试与搜索最后终算是较完美的解决了,下面小编给大家带来了python selenium 运行时弹出窗口问题,感兴趣的朋友一起看看吧
    2021-11-11
  • python中zip()函数遍历多个列表方法

    python中zip()函数遍历多个列表方法

    在本篇文章里小编给大家整理的是一篇关于python中zip()函数遍历多个列表方法,对此有兴趣的朋友们可以学习下。
    2021-02-02
  • 使用Python进行视频相似度比较实例

    使用Python进行视频相似度比较实例

    这篇文章主要介绍了使用Python进行视频相似度比较实例,本文通过汉明距离算法与图片比较等方法对比两个视频流的相似度,文中提供了部分实现代码与解决思路,需要的朋友可以参考下
    2023-07-07
  • python 日志增量抓取实现方法

    python 日志增量抓取实现方法

    下面小编就为大家分享一篇python 日志增量抓取实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python中的with语句与上下文管理器学习总结

    Python中的with语句与上下文管理器学习总结

    在Python中作为上下文管理器的对象可以使用with语句,提供上下文管理器的contextlib模块的使用则是Python编程中的高级技巧,下面我们就来详细整理一下Python中的with语句与上下文管理器学习总结:
    2016-06-06
  • Pandas 缺失数据处理代码汇总

    Pandas 缺失数据处理代码汇总

    这篇文章主要介绍了Pandas 缺失数据处理代码汇总,在pandas中,缺失数据显示为NaN。缺失值有3种表示方法,np.nan,none,pd.NA,更多相关介绍需要的朋友可以参考下面文章内容
    2022-06-06

最新评论