python教程:利用python基础知识取出对应诗句

python教程 seo教程 8702℃ 0评论
《python教程:利用python基础知识取出对应诗句》由【张国维seo】于2020年05月09日整理发布!
当今科技蓬勃发展的今天,我们学习一门编程语言是很有必要的。随着人工智能行业的兴起,python语言成为当今最热门的一门编程语言之一,同时,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。要求能够在终端展示结果如下所示:

python
......

"""
二:要题题目:

# 利用字典、列表、元组组合的方式进行嵌套诗句
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”,共同学习,共同进步!


转载请注明:张国维seo » python教程:利用python基础知识取出对应诗句

喜欢 (3)or分享 (0)
头像
发表我的评论
取消评论
表情