当今科技蓬勃发展的今天,我们学习一门编程语言是很有必要的。随着人工智能行业的兴起,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”,共同学习,共同进步!
学习了
博客