《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基础知识取出对应诗句相关推荐

  1. python打印古诗_python打印古诗_python教程:利用python基础知识取出对应诗句

    <python教程:利用python基础知识取出对应诗句>由[张国维博客]于2020年05月09日整理发布! 当今科技蓬勃发展的今天,我们学习一门编程语言是很有必要的.随着人工智能行业的兴 ...

  2. python的使用说明_Python教程:Python中__init__.py的使用用法说明

    Python中的Module是比较重要的概念.常见的情况是,事先写好一个.py文 件,在另一个文件中需要import时,将事先写好的.py文件拷贝 到当前目录,或者是在sys.path中增加事先写好的 ...

  3. python dict遍历_Python教程:Python数据类型之字典(附学习教程)

    字典是另一种可变容器模型,且可存储任意类型对象,是除列表以外python之中最灵活的内置数据结构类型.查找速度非常快,一个元素和10W个元素没有什么区别. 堆栈的词典 字典的无序特性和创建: 列表是有 ...

  4. 用python画皮卡丘教程-利用Python绘制萌萌哒的皮卡丘

    '''Python学习交流群:960410445''' importturtle#画鼻子 defdrawNose(): turtle.penup() turtle.seth(90) turtle.fd ...

  5. python编程中常用的12种基础知识总结

    python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  6. python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  7. python编程基础知识点总结_【转载】Python编程中常用的12种基础知识总结

    Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  8. Python 编程中常用的12种基础知识总结

    Python 编程中常用的12 种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出 ...

  9. 全国计算机等级考试二级教程——公共基础知识(2013年版)pdf,全国计算机等级考试2级教程:公共基础知识(2013年版)...

    <全国计算机等级考试2级教程:公共基础知识(2013年版)>是根据教育部考试中心颁布的<全国计算机等级考试二级公共基础知识考试大纲<2913年版)>的要求,在2012年版 ...

  10. excel宏计算机,excel宏教程_电脑基础知识_IT计算机_专业资料.doc

    excel宏教程_电脑基础知识_IT计算机_专业资料 Excel宏教程 一.?? 选中单个单元格 Range("").Select ? 例:Range("C9" ...

最新文章

  1. 第十六届全国大学生智能汽车竞赛设想
  2. MATLAB读取写入文本数据最佳方法 | Best Method for Loading Saving Text Data Using MATLAB
  3. 【Windows 逆向】OD 调试器工具 ( CE 工具通过查找访问的方式找到子弹数据基地址 | 使用 OD 工具附加游戏进程 | 在 OD 工具中查看 05869544 地址数据 | 仅做参考 )
  4. PPT(五)-让你的图片靓起来!
  5. STM32调试过程中,读保护,写保护造成的无法擦写芯片问题的解决办法和相关讨论
  6. HTTPS性能分析小工具HTTPStat
  7. 《敏捷敬业度》作者访谈
  8. 50个常用sql语句
  9. c语言检查密码是否出现回文,C程序检查数字是否为回文
  10. 【华为云技术分享】mongos-sharding连接池配置
  11. c语言表达式amp;amp;,C语言中的运算符及其优先级
  12. Java改环境变量把path修改了,CentOS查看和修改PATH环境变量的方法
  13. Bailian4096 信号转换【密码】
  14. 华为服务器pxe装系统,pxe启动服务器
  15. 2020认证杯第二阶段选提建议
  16. 电子面单打印结果通知回调API接口
  17. 事务故障、介质故障、系统故障恢复方法及区别
  18. 水桶理论——联想国际化的奇特哲学
  19. 什么是资本运营的核心?
  20. 愤怒的小鸟AR 版终于正式上架!场景超逼真

热门文章

  1. SQL SERVER RBAC权限管理表
  2. 机器学习笔记 - 单位矩阵和逆矩阵
  3. 应用宝shangjia安全评估报告_【开发者必看】APP《安全评估报告》怎么写?附填写范例...
  4. MMO手游地图同步方案总结
  5. CentOS 7中利用Snapper快照进行系统备份与恢复
  6. 在openSUSE下使用Snapper实现快照…
  7. 【科研数据处理】[实践]类别变量频数分析图表、数值变量分布图表与正态性检验(包含对数正态)
  8. 2020 前端必看 20个最好的前端Web开发工具
  9. IT4IT 标准助力 IT 经理控制乱局
  10. Androidx跟Android的区别