当前位置: 当前位置:首页 > 娱乐 > Python编程基础:实验4——组合数据的综合实验 正文

Python编程基础:实验4——组合数据的综合实验

2024-04-29 16:42:08 来源:口口声声网 作者:娱乐 点击:392次

Python编程基础:实验4——组合数据的综合实验

Python编程基础:实验4——组合数据的编程综合实验

文章目录

  • Python编程基础:实验4——组合数据的综合实验
    • 一、前言
    • 二、基础我的实验数据环境
    • 三、实验目的组合与要求
    • 四、实验任务
      • 1、合实程序填空
      • 2、编程程序编程
    • 五、基础最后我想说

一、实验数据前言

在前面一段时间里,组合我们学习了Python中字符串、合实列表、编程元组、基础字典以及集合的实验数据相关知识,也对它们分别进行了单独的组合题目训练,本期博客我们将前面所学知识点灵活贯通起来,合实进行组合数据的综合实验练习,加深我们所学习的基础知识。

注意:代码仅供参考,还请大家多多思考!

二、我的环境

  • 电脑系统:Windows 11
  • 语言版本:Python 3.10.4
  • 编译器:VSCode

三、实验目的与要求

  1. 掌握元组、列表与字典的系列操作函数及相关方法
  2. 了解3类基本组合数据类型;理解列表概念并掌握Python中的列表使用;理解概念并掌握Python中的字典使用;运用列表管理采集的信息,构建数据结构;运用字典处理复杂的数据信息;运用组合数据结构进行文本词频统计
  3. 熟练使用第三方库jieba

四、实验任务

1、程序填空

【填空11-1】有一个列表students如下:

students = [{‘No’: ‘2021003’, ‘语文’: 90, ‘数学’: 95, ‘体育’: 92}, {‘No’: ‘2021001’, ‘语文’: 80, ‘数学’: 85, ‘体育’: 82}, {‘No’: ‘2021002’, ‘语文’: 70, ‘数学’: 75, ‘体育’: 72}]

将列表students的数据内容提取处理,放到一个字典scores里,在屏幕上按学号从小到大的顺序显示输出scores的内容。输出内容例如下:

2021001: [80, 85, 82]

2021002: [70, 75, 72]

2021003: [90, 95, 92]

请完善代码。

students = [{'No': '2021002', '语文': 70, '数学': 75, '体育': 72}]scores = {}for stud in students:    sv = stud.items()    v = []    for it in sv:        if it[0] == 'No':            k = it[1]        else:            v.append(it[1])    scores[k] = vso = list(scores.items())so.sort(key=lambda x: x[0], reverse=False)for l in so:   print('{}:{}'.format(l[0], l[1]))

它运行的结果是:

2021001:[80, 85, 82]2021002:[70, 75, 72]2021003:[90, 95, 92]

【填空11-2】从键盘输入一个列表,计算输出列表元素的均方差。请完善下面的代码。

def mean(numlist):    s = 0    for num in numlist:        s = s + num    return s / len(numlist)def dev(numlist, mean):    sdev = 0    for num in numlist:        sdev = sdev + (num - mean) ** 2    return (sdev / (len(numlist) - 1)) ** 0.5# 请输入一个列表:ls = eval(input(""))print("均方差为:{:.2f}".format(dev(ls, mean(ls))))

它运行的结果是:

[1, 45, 98, 145, 198, 243]均方差为:91.75

【填空11-3】a和b是两个列表变量,列表a为[3, 6, 9]已给定,键盘输入列表b,计算a中元素与b中对应元素指数幂的累加和。例如:键盘输入列表b为[1, 2, 3],累加和为13+26+39=42,因此,屏幕输出计算结果为42.

a = [3, 6, 9]b = eval(input())s = 0for i in range(3):    s += pow(a[i], b[i])print(s)

它运行的结果是:

[1, 2, 3]768

【填空11-4】键盘输入一句话,用jieba分词后,将切分的词组按照在原话中逆序输出到屏幕上,词组中间没有空格。示例:输入:我爱祖国 输出:祖国爱我。

import jiebatxt = input("请输入一段中文文本:")ls = jieba.lcut(txt)for i in ls[::-1]:    print(i, end="")

它运行的结果是:

请输入一段中文文本:我爱祖国国祖爱我

2、程序编程

【编程11-1】在网上任意找一个人的讲话中一句话作为字符串变量s,完善Python程序,分别用Python内置函数及jieba库中已有函数计算字符串s的中文字符个数及中文词语个数。
(CSDN显示我涉政,所以不得将原题目修改,但代码一样)

提示:注意,中文字符包含中文标点符号。(提交的代码应包含题目中给出的部分)

在这里插入图片描述

import jiebas = input("请输入一段字符串:")n = len(s)m = len(jieba.lcut(s))print("中文字符数为{},中文词语数为{}。".format(n, m))

它运行的结果是:

请输入一段字符串:#这里CSDN显示我涉政,无法发出博客,所以我将字符串删掉了,你们自行添加就行中文字符数为106,中文词语数为53。

【编程11-2】你现在是仓库的负责人,仓库数格式是这样的:

total = [

{“huawei”:“HUAWEI-A”, “quantity”: 100},

{“huawei”:“HUAWEI-B”, “quantity”: 200},

{“huawei”:“HUAWEI-C”, “quantity”: 400},

{“huawei”:“HUAWEI-D”, “quantity”: 300},

]

请统计仓库的物品总数量(quantity)

现在HUAWEI-A要入库100件商品,请更新HUAWEI-A的库存记录

现在HUAWEI-E新品上市,要入库300件商品,请在total中新增一条相应记录

现在HUAWEI-B要退市,请将HUAWEI-B这行记录删掉 #此题可选

使用切片方法显示total中的最后一行记录。

在这里插入图片描述

total = [    {"huawei":"HUAWEI-A", "quantity": 100},    {"huawei":"HUAWEI-B", "quantity": 200},    {"huawei":"HUAWEI-C", "quantity": 400},    {"huawei":"HUAWEI-D", "quantity": 300},]nums = []for i in total:    nums.append(i["quantity"])all_quantity = sum(nums)print("请统计仓库的物品总数量(quantity)")print("仓库的物品总数量:{}".format(all_quantity))print("---------------------------------------------------------------- ")print("现在HUAWEI-A要入库100件商品,请更新HUAWEI-A的库存记录")total[0]["quantity"] = 200print("更新后数据:{}",format(total))print("---------------------------------------------------------------- ")print("现在HUAWEI-E新品上市,要入库300件商品,请在total中新增一条相应记录")E = {"huawei":"HUAWEI-E", "quantity": 300}total.append(E)print("更新后数据:{}".format(total))print("---------------------------------------------------------------- ")print("现在HUAWEI-B要退市,请将HUAWEI-B这行记录删掉")total.remove({"huawei":"HUAWEI-B", "quantity": 200})print("更新后数据:{}".format(total))print("---------------------------------------------------------------- ")print("使用切片方法显示total中的最后一行记录")last = total[(len(total) - 1): (len(total) - 2): -1]print("最后一行数据:{}".format(last))

它运行的结果是:

请统计仓库的物品总数量(quantity)仓库的物品总数量:1000---------------------------------------------------------------- 现在HUAWEI-A要入库100件商品,请更新HUAWEI-A的库存记录更新后数据:{'huawei': 'HUAWEI-D', 'quantity': 300}]---------------------------------------------------------------- 现在HUAWEI-E新品上市,要入库300件商品,请在total中新增一条相应记录更新后数据:[{'huawei': 'HUAWEI-E', 'quantity': 300}]---------------------------------------------------------------- 现在HUAWEI-B要退市,请将HUAWEI-B这行记录删掉更新后数据:[{'huawei': 'HUAWEI-E', 'quantity': 300}]---------------------------------------------------------------- 使用切片方法显示total中的最后一行记录最后一行数据:[{'huawei': 'HUAWEI-E', 'quantity': 300}]

五、最后我想说

本期的实验到这里就结束了,本期实验难度比之前的要难一点,比较考验基础知识的掌握情况,希望大家都能从中学到知识,并转化成自己的知识储备,而不是直接复制粘贴解决任务。

最后,我很乐意跟大家分享知识并一起学习,和大家一起从零开始学习,我也希望得到大家的支持与肯定,谢谢!

在这里插入图片描述

作者:休闲
------分隔线----------------------------
头条新闻
图片新闻
新闻排行榜