版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目4-监控实验室场地数据主讲:吴雪飞知识回顾项目3设计了网页版的工业温度数据处理器,但在工业实验室的实际场景中,环境参数的监测需求不仅限于单一数据类型。例如,不同实验场地的温度、湿度等数据需长期记录并统计分析,以确保实验条件的稳定性与可靠性。如何高效存储多维度数据,并通过编程实现自动化统计与可视化反馈,是工业软件开发中的关键问题。项目引入项目4将开发一个“实验室场地数据监控器”数据筛选支持“场地”筛选(深圳实验区、广州实验区)支持“监控类型”筛选(温度、湿度)统计分析点击“近五天情况测算”按钮后,系统自动统计工作日中各场地数据的正常次数与异常次数实时展示将上述分析结果以直观的方式在网页上实时呈现项目描述项目效果Python中的组合数据类型是指能够容纳多个数据项的数据结构。主要包括:序列类型(如字符串、列表、元组)。集合类型(如集合)。映射类型(如字典)。这些类型允许将不同或相同的数据项组合成一个整体,支持嵌套和灵活操作。列表可变且有序。元组不可变但高效。字典通过键值对存储数据。集合则用于无序且唯一的元素。相关知识:组合数据类型概念列表(List)属于组合数据类型中的序列类型,用中括号[]表示用于存储一系列有序的元素列表中的元素以逗号分隔,可以是不同类型的数据如整数、浮点数、字符串等。相关知识:列表my_list=[1,2,3,'a','b',[4,5],[33,66,44,21,33]]概念有正序和逆序两种访问方式。相关知识:列表my_list=[1,2,3,'a','b',[4,5],[33,66,44,21,33]]索引0123456print(my_list[0])print(my_list[5])print(my_list[3])1[4,5]a概念有正序和逆序两种访问方式。相关知识:列表my_list=[1,2,3,'a','b',[4,5],[33,66,44,21,33]]索引-6-4-2-1print(my_list[-6])print(my_list[-2])print(my_list[-4])1[4,5]a特点有序:元素按插入顺序排列。可变:可以修改、添加或删除元素。允许重复元素。列表的常用操作创建空列表列表的访问列表的切片...相关知识:列表列表的常用方法相关知识:列表方法说明示例append(x)将元素x添加至列表尾部lst=[1,2];lst.append(3)→[1,2,3]extend(iterable)将可迭代对象iterable中所有元素添加至列表尾部lst=[1,2];lst.extend([3,4])→[1,2,3,4]insert(index,x)在列表指定位置index处添加元素xlst=[1,3];lst.insert(1,2)→[1,2,3]remove(x)在列表中删除首次出现的指定元素xlst=[1,2,2];lst.remove(2)→[1,2]pop([index])删除并返回列表对象指定位置的元素,默认为最后一个元素lst=[1,2,3];lst.pop(1)→返回2,列表变为[1,3]clear()删除列表中所有元素,但保留列表对象lst=[1,2];lst.clear()→[]index(x)返回第一个值为x的元素的下标,若不存在值为x的元素,则抛出异常lst=[10,20,30];lst.index(20)→1count(x)返回指定元素x在列表中的出现次数lst=[1,2,2,3];lst.count(2)→2reverse()对列表元素进行原地翻转lst=[1,2,3];lst.reverse()→[3,2,1]sort(key=None,reverse=False)对列表元素进行原地排序lst=[3,1,2];lst.sort()→[1,2,3]copy()返回列表对象的浅复制lst=[1,2];new_lst=lst.copy()→new_lst为[1,2]任务描述创建6个元素的列表,元素类型包含整数、字符串、列表。索引访问:访问索引为2的值。访问倒序第1的值。切片操作:截取列表的前3个元素。按指定位置插入元素:在列表的末尾插入数字4。在末尾添加元素10。删除元素:删除列表中第1次出现的数字3,并删除索引为4的元素。打印修改后的完整列表示例4.1列表操作(4-ex-1.py)列表的排序两种默认排序方式原地排序:list.sort(),直接修改原列表生成新列表:sorted(list),返回排序后的新列表,原列表不变相关知识:列表列表的排序自定义排序规则通过key参数指定相应的排序规则lambda表达式lambda元素:返回值元素为列表中的每个数值;返回值为根据该值进行排序
相关知识:列表列表的赋值、浅复制和深复制列表的赋值是指给列表起一个新的名字,和原来的变量名都指向同一个列表,数据完全共享。最重要的应用函数参数传递相关知识:列表列表的赋值、浅复制和深复制浅复制是指创建一个新的列表对象,但其中的每个元素仍然引用原列表中对应元素的内存地址,即新旧列表共享相同的元素对象。解析a中的数据实际上为:[数字1,列表[2,3]的地址标签]b中的数据实际上为:[数字1,列表[2,3]的地址标签]若此时修改a中的数字1,b中的1是不受影响的但若修改列表[2,3]中的数据,由于a和b都是指向这个列表的地址标签,则a和b中的这个子列表是共享修改的相关知识:列表列表的赋值、浅复制和深复制深复制是指通过递归地复制对象的所有组成部分,创建出一个在结构和内容上与原对象完全相同、但在内存中完全独立的新副本。相关知识:列表列表推导式基本语法[expressionforiteminiterable]执行顺序逐个遍历iterable中的每个元素item对当前item执行expression表达式计算结果作为新列表的元素相关知识:列表列表推导式添加条件过滤[expressionforiteminiterableifcondition]执行顺序逐个遍历iterable中的每个元素item对当前item检查condition条件表达式对通过条件的item执行expression表达式计算结果作为新列表的元素相关知识:列表列表推导式多条件与复杂逻辑[expression1ifconditionelseexpression2foriteminiterable]执行顺序逐个遍历iterable中的每个元素item对当前item检查condition条件表达式若为True,则计算expression1表达式,结果加入新列表若为False,则计算expression2表达式,结果加入新列表相关知识:列表列表推导式嵌套循环[expressionforsublistinouter_listforiteminsublist]执行顺序外层循环:forsublistinouter_list内层循环:foriteminsublist计算表达式:expression(基于item)相关知识:列表任务描述某工业生产线使用激光扫描仪检测金属板材表面缺陷。每个缺陷记录存储为包含4个元素的列表:[X坐标,Y坐标,缺陷类型编码,严重等级]。其中:缺陷类型编码(1-3数字划分):1-划痕,2-裂纹,3-孔洞。严重等级(1-5数字划分):1-轻微缺陷,2-轻度缺陷,3-中度缺陷,4-严重缺陷,5-致命缺陷要求完成以下操作任务:初始化5个记录的缺陷列表。查询指定缺陷坐标,如获取第3个缺陷的坐标。提取前3条缺陷记录数据。在索引1位置插入新的紧急缺陷。删除严重等级<3的缺陷(反向遍历删除)。按严重等级降序排序(使用lambda表达式)试一试4.1工业缺陷数据检测(4-try-1.py)试一试4.1工业缺陷数据检测(4-try-1.py)拓展:统计各种缺陷类型出现的次数。概念Python中的集合(Set)是一种存储不重复元素的无序容器类似于数学中的集合概念它可以自动去除重复值例如将{1,2,2,3}变为{1,2,3}。集合支持添加、删除元素,以及高效的成员检测能快速判断某个值是否存在。虽然集合本身可变,但其元素必须是不可变类型(如数字、字符串或元组)。集合还提供丰富的数学运算如求并集、交集和差集等,非常适合用于数据去重、关系测试等场景相关知识:集合创建集合直接赋值s1={1,2,3}#创建非空集合s2=set()#创建空集合(不能用{},因为{}是空字典)从可迭代对象转换s3=set([1,2,2,3])#输出:{1,2,3}(自动去重)s4=set("hello")#输出:{'h','e','l','o'}(字符串转为字符集合)相关知识:集合集合的常用操作相关知识:集合操作类型方法/运算符功能描述示例添加元素
add(element)添加单个元素到集合s={1,2}
s.add(3)→{1,2,3}update(iterable)添加多个元素(接受列表、集合等可迭代对象)s={1,2}
s.update([3,4])→{1,2,3,4}删除元素remove(element)删除指定元素,元素不存在时报错
KeyErrors={1,2,3}
s.remove(2)→{1,3}discard(element)删除指定元素,元素不存在时不报错s={1,2,3}
s.discard(4)→无变化pop()随机删除并返回一个元素(集合无序)s={1,2,3}
s.pop()→可能返回1,剩余{2,3}clear()清空集合s={1,2,3}
s.clear()→set()成员检查in/notin判断元素是否在集合中s={1,2,3}
2ins→True
4notins→True集合的基本运算相关知识:集合运算类型运算符等效方法功能描述示例并集|set1.union(set2)返回两个集合的所有唯一元素{1,2}|{2,3}→{1,2,3}交集&ersection(set2)返回两个集合共有的元素{1,2}&{2,3}→{2}差集-set1.difference(set2)返回属于set1但不属于set2的元素{1,2}-{2,3}→{1}对称差集^set1.symmetric_difference(set2)返回仅存在于其中一个集合的元素(非共有部分){1,2}^{2,3}→{1,3}集合的应用场景去重:快速从列表中删除重复项lst=[1,2,2,3,4,4]unique=list(set(lst))#输出:[1,2,3,4](顺序可能变化)成员检查:高效判断元素是否存在valid_users={"Alice","Bob","Charlie"}user="Bob"ifuserinvalid_users:print("Accessgranted")相关知识:集合集合的应用场景关系测试:快速比较两组数据的交集、差集等a={1,2,3}b={3,4,5}common=a&b#交集:{3}相关知识:集合概念元组是Python中的不可变有序序列,元素通过下标访问(如tuple[0])。支持索引、切片、拼接(+)、重复(*)等操作,但不允许增删改元素。若含可变对象(如列表),其内部数据仍可修改。常用于存储稳定数据(如坐标、配置项),因其不可变性,亦可作为字典键。相关知识:元组基本特性不可变性创建后不能修改(增删改元素),但可以包含可变对象(如列表)。有序性元素按插入顺序存储,可通过索引访问。可重复性允许包含重复元素。异构性可存储不同类型的数据。可哈希性若元素均为不可变类型,元组本身可作为字典的键或集合的元素。相关知识:元组创建元组直接创建t1=(1,2,3)#标准方式t2=1,2,3#括号可省略(逗号是关键)t3=()#空元组t4=(42,)#单元素元组(必须有逗号)使用tuple()构造函数t5=tuple([1,2,3])#从列表转换
→(1,2,3)t6=tuple("abc")#从字符串转换
→('a','b','c')相关知识:元组元组的基本操作相关知识:元组元组的常用方法相关知识:元组方法描述示例count()统计元素出现次数(1,1,2).count(1)
→2index()返回元素首次出现的索引('a','b','a').index('a')
→0元组解包元组解包是Python中一种将元组的元素自动拆分并赋值给多个变量的语法特性。可使用星号(*)前缀的变量来捕获元组(或其他可迭代对象)中任意数量的剩余元素并存储在一个列表。但一个赋值语句只能有一个星号变量。相关知识:元组元组解包如果不关心某些元素,可以使用下划线_作为“垃圾”变量名。这是一个广泛遵循的约定。相关知识:元组元组解包在循环遍历复杂数据结构时,元组解包可以让代码非常清晰。关于星号(*)在Python中有多种用途,上述内容是在变量赋值时的"解包"功能。在后续的函数章节中,还会介绍一个重要的"打包"功能。它们其实是同一个运算符的两种不同表现形式。相关知识:元组元组和列表的比较相关知识:元组特性元组(Tuple)列表(List)可变性不可变可变语法使用圆括号()使用方括号[]性能创建和访问更快增删操作更方便内存占用通常更小通常更大适用场景数据保护、字典键、函数多返回值需要频繁修改的数据集合任务描述创建4个元素的学生信息列表,元素为元组,形如(ID,名字)。如[(1,'Alice'),(2,'Bob'),(3,'Charlie'),(4,'David')]。创建优秀学生ID集合如{1,3}。找出优秀学生ID对应的学生名字并存储。遍历输出优秀学生名字。试一试4.2找出并打印优秀学生的名字列表概念字典是Python中的可变、无序键值对集合,通过唯一键快速访问值。形如{键1:值1,键2:值2,...}键必须为不可变类型(如字符串、数字、元组),值可为任意对象。支持增删改查(如dict[key]、update())、遍历(items())、成员检测(in)等操作。适用于高效映射和动态数据存储,典型场景如JSON数据处理或缓存实现。相关知识:字典my_dict={'name':'John','age':30,'city':'NewYork'}键key值value基本特性可变性字典创建后可以修改(增删改)。无序性Python3.6+后字典保持插入顺序,但本质仍是无序结构。键的唯一性每个键必须是唯一的,重复键会覆盖旧值。键的可哈希性键必须是不可变类型(如字符串、数字、元组),不能是列表、集合或字典。值的灵活性值可以是任意Python对象(包括列表、字典等)。相关知识:字典字典的创建方式方式1:直接赋值d1={'name':'Alice','age':25}方式2:使用dict()构造函数d2=dict(name='Bob',age=30)方式3:从键值对序列创建d3=dict([(1,'Alice'),(2,'Bob'),(3,'Charlie'),(4,'David')])输出:{1:'Alice',2:'Bob',3:'Charlie',4:'David'}方式4:字典推导式d4={x:x**2forxinrange(5)}#{0:0,1:1,2:4,3:9,4:16}相关知识:字典字典的基本操作相关知识:字典字典的常用方法相关知识:字典方法描述示例keys()返回所有键的视图person.keys()→dict_keys(['name','age'])values()返回所有值的视图person.values()→dict_values(['Alice',25])items()返回所有键值对的视图person.items()→dict_items([('name','Alice'),('age',25)])update()合并字典person.update({'age':26,'job':'Engineer'})popitem()移除并返回最后插入的键值对(Python3.7+)person.popitem()→('age',25)del语句直接删除指定键值对(键不存在时抛出KeyError)delperson['age']pop(key[,default])删除指定键值对并返回其值,若键不存在则返回default或抛出KeyErrorperson.pop('age')→25person.pop('x','N/A')→'N/A'遍历输出字典的元素遍历键forkeyinperson:print(key,end=‘’)#输出:nameage遍历值forvalueinperson.values():print(value,end=‘’)#输出:Alice25遍历键值对fork,vinperson.items():print(f"{k}:{v}",end=‘’)#输出:name:Aliceage:25相关知识:字典任务描述初始化一个字典student,包含以下键值对:键“id”,值为整数1001。键“name”,值为字符串“张三”。键“scores”,值为字典{"Math":85,"English":92}。键“courses”,值为列表["Python","DataScience"]。基本操作:访问键“scores”中的“Math”成绩并输出。使用get()方法安全访问键“age”,若不存在返回"未知"。添加新键值对"gender":"男"。修改与合并:使用update()方法,更新“student”字典,添加"Physics":88。使用update()方法,将字典{"email":"zhangsan@","department":"CS"}合并到student打印输出更新后的字典。示例4.2字典操作(4-ex-2.py)删除操作:使用remove()删除键“courses”对应的值列表中的“DataScience”。使用pop()删除键“department”,若不存在则返回默认值“无部门”。使用popitem()删除最后插入的键值对。字典方法:遍历输出所有键。遍历输出所有值。使用字典推导式生成新字典score_desc,将scores中的分数转换为评级(≥90为"优秀",≥80为"良好",其他为"及格")。最终输出:打印修改后的完整字典student。打印生成的score_desc字典输出结果示例4.2字典操作(4-ex-2.py)示例4.2字典操作(4-ex-2.py)任务描述已知缺陷数据字典为product_info={"轴承":(["表面磨损","裂纹"],"振动检测"),"电路板":(["短路","虚焊"],"红外扫描"),"齿轮":(["断齿","磨损"],"噪声分析")}结构为{产品类型:(缺陷列表,检测方案)}试一试4.3工业产品缺陷检测系统(4-try-3.py)提示用户输入产品类型如:轴承、电路板、齿轮。根据输入的产品类型查询数据库若存在:提取缺陷列表和检测方案;格式化输出检测报告,包含产品类型标题;推荐检测方法;常见缺陷列表(逐项标记为*缺陷项)。若不存在:提示用户输出“未收录该产品,请联系工程师”。试一试4.3工业产品缺陷检测系统(4-try-3.py)概念字符串(str)是Python中表示Unicode字符序列的不可变有序容器,专门用于存储和处理文本数据。默认采用UTF-8编码,完整支持全球各种语言的字符集(包括中文、emoji等)。字符串支持类似元组的索引访问和切片操作(如s[0]、s[1:5]),但不支持直接修改单个字符。作为不可变类型,所有字符串操作(如拼接、替换)都会生成新字符串。字符串提供丰富的文本处理方法(如split()、join()、format()),并支持转义字符和原始字符串(r-string)等特殊语法,是Python文本处理的核心数据类型。相关知识:字符串字符串的创建单引号str1='HelloWorld'双引号str2="PythonProgramming"交替使用str3="It'sOK"三引号(可以跨越多行)str4='''Thisisamulti-linestring'''相关知识:字符串字符串的基本操作相关知识:字符串字符串的常用方法查找和替换大小写转换相关知识:字符串字符串的常用方法字符串分割和连接去除空白字符相关知识:字符串字符串的常用方法常用判断方法相关知识:字符串转义字符一种特殊的字符序列,以反斜杠\开头,用于表示无法直接输入的字符或特殊功能相关知识:字符串转义字符说明ASCII值示例输出\\反斜杠92C:\\→C:\\'单引号39'It\'s'→It's\"双引号34"Hesaid\"Hi\""→Hesaid"Hi"\n换行符10Line1\nLine2→两行文本\t水平制表符(Tab键)9Name:\tAlice→Name:Alice\r回车符(光标回行首)13Progress\rDone→覆盖显示\b退格符(删除前一个字符)8ab\bc→ac\xhh十六进制字符(2位)-\x41→A\ooo八进制字符(最多3位)-\101→A\uXXXXUnicode16位字符-\u03A9→Ω转义字符的应用场景路径处理相关知识:字符串引号嵌套格式控制任务描述完成一个用户注册信息处理程序,通过字符串操作实现以下功能:用户信息创建:创建变量user_name值为“user_2023”(带前后空格)。创建变量raw_email值为“ALICE@EXAMPLE.COM”。创建变量birth_date值为“1995-07-20”。创建变量hobby_str值为“篮球,游泳,阅读”。基本操作与格式化:去除user_name前后空格并转为小写。将raw_email转为全小写格式。从birth_date中提取年份(前4位字符)。使用“+”拼接欢迎语句:“欢迎用户[处理后的用户名]!”。示例4.3用户注册信息处理(4-ex-3.py)字符串验证与分割:检查处理后的邮箱是否包含@和.。将hobby_str按逗号分割成列表。验证birth_date是否为xxxx-xx-xx格式(检查长度和分隔符)。信息重构与替换:将爱好列表用/重新连接成字符串。在用户信息中查找“20”的首次出现位置。将原始邮箱域名“EXAMPLE.COM”替换为“”。安全校验与展示:检查用户名是否以字母开头。使用f-string生成最终信息展示如下图所示。高级判断:验证处理后的用户名是否同时包含字母和数字。检查生日年份是否全为数字。运行结果示例4.3用户注册信息处理(4-ex-3.py)参考代码示例4.3用户注册信息处理(4-ex-3.py)任务描述某工厂使用视觉系统检测产品表面缺陷,需对检测数据进行分析。请完成以下数据处理任务数据初始化:创建列表detections,包含5个字典,每个字典代表一个缺陷记录,键值对如下:“缺陷类型”(字符串):如“划痕”、“气泡”。“位置”(元组):坐标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (完整版)重污染天气应急预案
- 消防评估质量控制管理办法
- 2026年智慧交通商业模式创新探索
- 2026年模板工程安全规范题库及答案
- 2026年村级医保政策宣传员经典试题及答案
- 排泄护理中的继续教育
- 护理文书书写常见问题及改进措施
- 护理诊断的科学依据
- 护理肿瘤护理与姑息治疗
- 不良资产跨境转让中的对外质押转让规定
- 文本信纸(A4横条直接打印版)模板
- 森林灾害防护知识讲座
- 环卫清扫保洁、垃圾清运及绿化服务投标方案(技术标 )
- 国家义务教育质量监测科学四年级创新作业测试卷附答案
- 米糠的综合利用教学
- 造船企业管理 造船成本组成
- 应用光学(吉林联盟)知到章节答案智慧树2023年长春理工大学
- 2023可持续发展追踪-产业系列:智能手机制造商-妙盈研究院
- 起重机司机Q2(限桥式起重机)题库题库(1727道)
- 疼痛的基础理论与知识图片
- 《产业基础创新发展目录(2021年版)》(8.5发布)
评论
0/150
提交评论