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

简介: Python编程基础:实验4——组合数据的综合实验代码练习

一、前言

在前面一段时间里,我们学习了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': '2021003', '语文': 90, '数学': 95, '体育': 92}, {'No': '2021001', '语文': 80, '数学': 85, '体育': 82}, {'No': '2021002', '语文': 70, '数学': 75, '体育': 72}]
scores= {}
forstudinstudents:
sv=stud.items()
v= []
foritinsv:
ifit[0] =='No':
k=it[1]
else:
v.append(it[1])
scores[k] =vso=list(scores.items())
so.sort(key=lambdax: x[0], reverse=False)
forlinso:
print('{}:{}'.format(l[0], l[1]))

它运行的结果是:

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

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

defmean(numlist):
s=0fornuminnumlist:
s=s+numreturns/len(numlist)
defdev(numlist, mean):
sdev=0fornuminnumlist:
sdev=sdev+ (num-mean) **2return (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=0foriinrange(3):
s+=pow(a[i], b[i])
print(s)

它运行的结果是:

[1, 2, 3]
768

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

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

它运行的结果是:

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

2、程序编程

【编程11-1】以习总书记在庆祝中国共产党成立100周年大会上的讲话中一句话作为字符串变量s,完善Python程序,分别用Python内置函数及jieba库中已有函数计算字符串s的中文字符个数及中文词语个数。

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

image-20220921190905533.png

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

它运行的结果是:

请输入一段字符串:今天,在中国共产党历史上,在中华民族历史上,都是一个十分重大而庄严的日子。我们在这里隆重集会,同全党全国各族人民一道,庆祝中国共产党成立一百周年,回顾中国共产党百年奋斗的光辉历程,展望中华民族伟大复兴的光明前景。中文字符数为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中的最后一行记录。

image-20220921191359254.png

total= [
    {"huawei":"HUAWEI-A", "quantity": 100},
    {"huawei":"HUAWEI-B", "quantity": 200},
    {"huawei":"HUAWEI-C", "quantity": 400},
    {"huawei":"HUAWEI-D", "quantity": 300},
]
nums= []
foriintotal:
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-A', 'quantity': 200}, {'huawei': 'HUAWEI-B', 'quantity': 200}, {'huawei': 'HUAWEI-C', 'quantity': 400}, {'huawei': 'HUAWEI-D', 'quantity': 300}]
----------------------------------------------------------------现在HUAWEI-E新品上市,要入库300件商品,请在total中新增一条相应记录更新后数据:[{'huawei': 'HUAWEI-A', 'quantity': 200}, {'huawei': 'HUAWEI-B', 'quantity': 200}, {'huawei': 'HUAWEI-C', 'quantity': 400}, {'huawei': 'HUAWEI-D', 'quantity': 300}, {'huawei': 'HUAWEI-E', 'quantity': 300}]
----------------------------------------------------------------现在HUAWEI-B要退市,请将HUAWEI-B这行记录删掉更新后数据:[{'huawei': 'HUAWEI-A', 'quantity': 200}, {'huawei': 'HUAWEI-C', 'quantity': 400}, {'huawei': 'HUAWEI-D', 'quantity': 300}, {'huawei': 'HUAWEI-E', 'quantity': 300}]
----------------------------------------------------------------使用切片方法显示total中的最后一行记录最后一行数据:[{'huawei': 'HUAWEI-E', 'quantity': 300}]

五、最后我想说

本期的实验到这里就结束了,后面要开始学习新内容了,怎么说呢,本期实验难度比之前的要难一点,比较考验基础知识的掌握情况,所以说想要学好一门语言还得是多学多练,结合起来学习得更快,希望大家都能从中学到知识,并转化成自己的,而不是直接复制粘贴解决任务。

最后,我很乐意跟大家分享知识并一起学习,和大家一起从零开始学习,我也希望得到大家的支持与肯定,谢谢!我也会继续努力的,一步步成为一个优秀的程序员,加油!

目录
相关文章
|
21天前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
403 1
|
22天前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
229 0
|
14天前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
23天前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
8天前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
74 3
|
8天前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
88 3
|
16天前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
165 3
|
8天前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
81 0
|
Java Python
Python基础 | 深浅拷贝问题、递归函数练习
在实际工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题。为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用。为了生成这个副本,就产生了拷贝。下面先了解一下几个概念:对象、可变类型、引用
397 0
Python基础 | 深浅拷贝问题、递归函数练习
|
Python
python——基础练习(五)
python——基础练习(五)
220 0
python——基础练习(五)

推荐镜像

更多
下一篇
开通oss服务