python打印古诗_python打印古诗_python教程:利用python基础知识取出对应诗句
《python教程:利用python基础知识取出对应诗句》由【张国维博客】于2020年05月09日整理发布!
当今科技蓬勃发展的今天,我们学习一门编程语言是很有必要的。随着人工智能行业的兴起,python语言成为当今最热门的一门编程语言之一,同时,python也是所有编程语言中比较好掌握的一门语言,当然学习一门编程语言的基础知识是第一个门槛。
我张国维本人在这就给大家分享下我出的一道练习题,方便刚入门学习python语言的小白们建立自己一套写代码的逻辑思路,这道题主要围绕列表和字典的知识,方便大家以后对这块有更深入的理解。题目要求如下所示:
一:如下注释部分:
"""
温馨提醒:解题有以下5个步骤:
1.取出Verse里面对应的诗句,拼接成总诗句
2.定义total_list列表,找到name_list人名对应的类型,进行拼接处理,然后保存到total_list列表
3.定义total_dict字典,找到name_list人名对应的类型,进行赋值处理,然后保存到total_dict字典
4.定义Total_lists列表和Total_dicts字典,找到name_list人名对应的类型,进行赋值处理,然后保存到Total_dicts字典,字典的键为“Verse”,值为“Total_lists列表”
5.把结果得到的数据写入命名为write.txt的文本文档里
题目要求:取出对应诗句的句子,把取出来的句子做拼接处理,同时并按要求以7字诗的方式打印在终端上,和效果图展示一样。
并且“一定要”在打印完总诗句的基础上,再取出诗句中的人名,并对人名找到“人名对应的类型”进行拼接,然后保存到列表和字典里,
有需要格式化的必须要用格式化。最后,把得到结果的数据执行“一千遍”保存到txt文本文档中,命名为write.txt。要求能够在终端展示结果如下所示:
......
"""
二:要题题目:
# 利用字典、列表、元组组合的方式进行嵌套诗句
Verse = {"verse_dict": [[{"verse_dict2": [{"verse1": [{"verse_1": "莫娶美娇娘"}, {"verse_2": "无钱"}]}, ["verse_3", "有钱"],
{"verse2": ["verse_5", "钱多"], "verse_4": "娇娘"}, "某某练,"]}],
[{"verse_dict3": ["我在这里,调皮一下,诗句不关我的事,我是吃瓜群众,看热闹的!",
[{"verse_dict4": [{"verse_9": {"verse_6": "可人要人命",
"verse_7": ("也要", ("人帅", "也够呛"), "注意防")}}]}],
[{"verse4": ["西门庆,", {"verse_8": ["武大郎,", "某某钱,"]}]}]]}]],
"verse_dict1": ["我又出现了,来凑热闹的", {"verse_10": "不信你看"}]}
# 人名对应的类型
name_list = ["喜剧演员", "理刑千户", "武松的哥哥", "演员"]
三:在这里说明下,答案并没有标准答案,有多种实现方法,答案如下:
num = Verse["verse_dict1"][1]["verse_10"] # 获取“不信你看”
num_1 = Verse["verse_dict"][0][0]["verse_dict2"][0]["verse1"][1]["verse_2"] # 获取“无钱”
num_2 = Verse["verse_dict"][0][0]["verse_dict2"][0]["verse1"][0]["verse_1"] # 获取“莫娶美娇娘”
num_3 = Verse["verse_dict"][1][0]["verse_dict3"][2][0]["verse4"][1]["verse_8"][0].split(",")[0] # 获取“武大郎”
sentence_1 = num_1 + num_2 + "," + num + num_3 # 获取第一行诗句
num_4 = Verse["verse_dict"][0][0]["verse_dict2"][1][1] # 获取“有钱”
num_5 = Verse["verse_dict"][1][0]["verse_dict3"][1][0]["verse_dict4"][0]["verse_9"]["verse_7"][0] # 获取“也要”
num_6 = Verse["verse_dict"][1][0]["verse_dict3"][1][0]["verse_dict4"][0]["verse_9"]["verse_7"][2] # 获取“注意防”
num_7 = Verse["verse_dict"][1][0]["verse_dict3"][2][0]["verse4"][1]["verse_8"][1].split(",")[0] # 获取“某某钱”
sentence_2 = num_4 + num_5 + num_6 + "," + num + num_7 # 获取第二行诗句
num_8 = Verse["verse_dict"][0][0]["verse_dict2"][2]["verse2"][1] # 获取“钱多”
num_9 = Verse["verse_dict"][1][0]["verse_dict3"][1][0]["verse_dict4"][0]["verse_9"]["verse_7"][1][0] # 获取“人帅”
num_10 = Verse["verse_dict"][1][0]["verse_dict3"][1][0]["verse_dict4"][0]["verse_9"]["verse_7"][1][1] # 获取“也够呛”
num_11 = Verse["verse_dict"][0][0]["verse_dict2"][3].split(",")[0] # 获取“某某练”
sentence_3 = num_8 + num_9 + num_10 + "," + num + num_11 # 获取第三行诗句
num_12 = Verse["verse_dict"][0][0]["verse_dict2"][2]["verse_4"] # 获取“娇娘”
num_13 = Verse["verse_dict"][1][0]["verse_dict3"][1][0]["verse_dict4"][0]["verse_9"]["verse_6"] # "可人要人命”
num_14 = Verse["verse_dict"][1][0]["verse_dict3"][2][0]["verse4"][0].split(",")[0] # “西门庆”
sentence_4 = num_12 + num_13 + "," + num + num_14 # 获取第四行诗句
# 使用while循环执行一千遍
n = 0
while n < 1000:
n += 1
# 定义total_list保存对应的数据到列表
total_list = []
# 定义total_dict保存对应的数据到字典
total_dict = {}
# 定义Total_dicts保存Total_lists列表对应的数据作为字典的“值”
Total_dicts = {}
# 定义Total_lists保存对应的数据到列表,作为Total_dicts字典的值
Total_lists = []
# 定义total变量保存总诗句
total = ("{0}\n{1}\n{2}\n{3}".format(sentence_1, sentence_2, sentence_3, sentence_4)).splitlines()
# 遍历total
for i in total:
print(i) # 打印总诗句
# 定一个变量totals,来保存遍历total分割后的数据
totals = i.split(",")[1]
# 把totals分割后的数据添加到total_list列表中
total_list.append(totals)
# 把总诗句的数据写入文件
files = open(file="write.txt", mode="a", encoding="utf-8")
files.write("{0}\n".format(i)) # 写入数据并换行处理
files.close() # 关闭文件
# 遍历取数值范围
for y in range(len(total_list)):
if y == 0:
total_list[0] = total_list[y].split("看")[1] + ":" + name_list[2]
elif y == 1:
total_list[1] = total_list[y].split("看")[1] + ":" + name_list[0]
elif y == 2:
total_list[2] = total_list[y].split("看")[1] + ":" + name_list[3]
else:
total_list[3] = total_list[y].split("看")[1] + ":" + name_list[1]
# 以下三行代码是total_dict字典的操作
names = total_list[y].split(":")[0]
name_type = total_list[y].split(":")[1] # 定义name_type变量,保存人名对应的类型
total_dict[names] = name_type # 判断字典键值对,相同则成立
# 追加储存到Total_lists列表中,结果得到的是列表嵌套列表的数据
Total_lists.append(total_list[y].splitlines())
# 判断字典键值对,相同则成立
Total_dicts["Verse"] = Total_lists
# 最后以列表和两个字典形式打印“人名”对应的类型
print("{0}\n{1}\n{2}".format(total_list, total_dict, Total_dicts))
# 把存储人名对应类型为列表形式\字典形式的数据写入文件
file = open(file="write.txt", mode="a", encoding="utf-8")
file.write("{0}\n{1}\n{2}\n".format(total_list, total_dict, Total_dicts)) # 写入数据并把列表和两个字典转为字符串类型存入wirte.txt文本文档中
file.close() # 关闭文件
最终保存到write.txt文本文档的结果效果图如下所示:
好了,如果有不懂的可以一起交流探讨,本人愿意和大家分享经验,如若您愿意,可以加我QQ联系我,加QQ时候麻烦备注下,“学习交流python”,共同学习,共同进步!
No related posts.
喜欢 (3)or分享 (0)
python打印古诗_python打印古诗_python教程:利用python基础知识取出对应诗句相关推荐
- 全国计算机等级考试二级教程——公共基础知识(2013年版)pdf,全国计算机等级考试2级教程:公共基础知识(2013年版)...
<全国计算机等级考试2级教程:公共基础知识(2013年版)>是根据教育部考试中心颁布的<全国计算机等级考试二级公共基础知识考试大纲<2913年版)>的要求,在2012年版 ...
- excel宏计算机,excel宏教程_电脑基础知识_IT计算机_专业资料.doc
excel宏教程_电脑基础知识_IT计算机_专业资料 Excel宏教程 一.?? 选中单个单元格 Range("").Select ? 例:Range("C9" ...
- php插入js教程,JavaScript_JavaScript入门教程(2) JS基础知识,在什么地方插入 JavaScript Ja - phpStudy...
JavaScript入门教程(2) JS基础知识 在什么地方插入 JavaScript JavaScript 可以出现在 HTML 的任意地方.使用标记,你可以在 HTML 文档的任意地方插入 Jav ...
- 计算机基础outlook知识,outlook配置教程_电脑基础知识_IT计算机_专业资料
outlook配置教程_电脑基础知识_IT计算机_专业资料 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 Outlook配置教程直接点 ...
- python编程基础知识点上的问题_python编程入门之二:必备基础知识
大家在上一章中已经可以自己敲出一个猜数字小游戏了,先不要删掉它,以后我们慢慢来改进它.接下来呢,我们再继续学习一些必须要学的基础知识. 2.1 变量 说到变量,就是可以改变的量,它并不是一个值,而是内 ...
- python计算wav的语谱图_Python实现电脑录音(含音频基础知识讲解)
前言 今天开始进入近期系列文章的第一篇,如何用 Python 来实现录音功能. 在开始"造轮子"之前,个人一直强调一个观点,如果有些东西已经有了,不妨直接去 github 上搜,用 ...
- python实现录音并去燥_Python实现电脑录音(含音频基础知识讲解)
Python实现电脑录音(含音频基础知识讲解) 前言 今天开始进入近期系列文章的第一篇,如何用 Python 来实现录音功能. 在开始"造轮子"之前,个人一直强调一个观点,如果有些 ...
- python网络编程知识_python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- python人像录制加声音_Python实现电脑录音(含音频基础知识讲解)
Python实现电脑录音(含音频基础知识讲解) 前言 今天开始进入近期系列文章的第一篇,如何用 Python 来实现录音功能. 在开始"造轮子"之前,个人一直强调一个观点,如果有些 ...
最新文章
- 关于SQL语言的初步认识
- Apache+tomcat+mysql安装步骤
- 【pmcaff】搞清楚产品经理的6大问题,街边卖煎饼也能火
- 深度学习(二十六)——VAE
- 设计模式笔记零:设计模式简介
- Latex排列图片:自由定义N行M列的排列方式
- python实现的摩斯电码解码\编码器
- 区块链app源码_区块链app商城系统开发适用于哪些企业
- 龙飞船再次发射成功!马斯克无缘现场,因疑似感染新冠……
- 3D视频的质量评价报告 (MSU出品)
- OpenRefine使用教程
- SpringBoot整合Sharding-JDBC实现水平分库分表
- jeeplus框架简介
- html 表格设置图片背景透明,table标签怎么实现内容不透明,背景图片透明
- H264/AVC-基本概念和码流结构
- 关于小米笔记本Pro内部风扇异响问题解决方法
- Windows键和Delete键不能用解决方法
- Linux系统开机无限重启的解决办法
- shell脚本之AWK-AWK的详细介绍
- 利用opencv-python对绿色植物的颜色进行提取