版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目5升级实验室监控系统知识回顾项目引入项目4设计了不同场地的温度和湿度的网页版数据监控器,随着工业检测参数的增加(如响度、明亮度等),不同数据类型的存储与统计逻辑也会呈现出显著的差异。若直接沿用原有代码结构,会导致大量重复性操作(如数据验证、异常标记、结果计算等),极大降低代码的可维护性。如何通过函数封装公共逻辑,实现多类型数据的统一处理,是提升系统扩展性与代码效率的关键问题。项目描述项目5将在项目4原有数据监控系统的基础上,通过函数化重构实现功能扩展功能扩展新增响度(声压值)和明亮度(光照强度)的监测与统计;函数封装定义通用函数处理公共逻辑(如数据范围校验、异常次数统计、结果格式化输出);通过函数参数传递数据类型差异(如温度单位为℃、响度压力单位为pa),实现逻辑复用;模块化调用针对不同数据类型调用统一函数接口,避免代码冗余。项目效果相关知识:函数定义函数(Function)是程序设计的核心单元之一,它是一段可重复调用的代码块,用于封装特定功能,通过接收输入(参数)、执行逻辑操作并返回结果。通过“def”关键字定义。包含函数名、函数参数、函数体和返回值。相关知识:函数名的命名规则命名规则描述字符限制只能使用字母(A-Z,a-z)、数字(0-9)和下划线(_),不能包含空格、特殊字符或中文。开头规则必须以字母或下划线开头,不能以数字开头。大小写敏感Python区分大小写,functionName和functionname被视为不同的函数名。禁止使用保留字不能使用Python的保留字和关键字,如def、if、for等。简洁描述函数名应简洁且能清晰描述函数的功能,避免模糊或冗长。命名风格推荐使用小写字母和下划线(snake_case)来命名函数,例如:calculate_sum。相关知识:函数调用函数的调用:函数定义完成以后,可以通过函数名加上括号来调用函数相关知识:参数传递位置参数按参数定义的顺序传递值,是最基础的传参方式关键字参数调用时通过参数名指定值,无需考虑顺序相关知识:参数传递默认参数参数可设置默认值,当函数调用没有传递参数时,会启用默认参数,可以有多个默认参数,但必须放在参数列表末尾相关知识:参数传递可变参数*args接收任意数量位置参数参数以元组形式存储,常用于处理不定长输入可变参数**kwargs接收任意数量关键字参数参数以字典形式存储,用于处理命名键值对元组解包中星号(*)是“解包”的功能,此处是“打包”功能相关知识:参数传递参数解包序列解包与*操作符参数解包字典解包与**操作符相关知识:参数传递参数传递机制Python的参数传递属于“按对象引用传递”(即“按共享传递”)不可变对象(如整数、字符串)在函数内修改时会创建新对象,不影响原变量。可变对象(如列表、字典)在函数内修改时会直接影响原对象。相关知识:返回值与作用域返回单个值函数通过return语句返回单个值,该值可以是任意数据类型。返回多个值函数可通过return返回多个值,以元组形式呈现。相关知识:返回值与作用域无返回值如果函数没有return语句,或者return后面不跟任何值,函数默认会返回None。相关知识:返回值与作用域变量作用域全局变量在整个模块可见,函数内部需用global显示声明。局部变量仅在定义它们的函数或代码块内有效。相关知识:高阶函数高阶函数是指那些满足以下任一条件的函数:能够接受其他函数作为输入参数或将函数作为返回值输出甚至能够操作或生成函数通过抽象函数行为,高阶函数将代码逻辑提升到更高层次的组合与复用,从而显著增强了代码的灵活性和表达力,成为提升编程效率和质量的重要工具。相关知识:高阶函数map函数用于对可迭代对象中的每个元素应用指定的函数,返回一个迭代器。语法格式map(function,iterable)iterable:一个或多个可迭代对象(如列表、元组等);functionfunction:要对每个元素执行的函数;返回值:一个map对象(迭代器)。相关知识:高阶函数filter函数用于从可迭代对象中筛选出满足条件的元素,返回一个迭代器。语法格式filter(function,iterable)functionfunction:判断函数,返回True或False;用于筛选元素(若为None,则直接过滤掉假值);iterable:可迭代对象(如列表、元组等);返回值:一个filter对象(迭代器),包含所有使function返回True的元素。相关知识:高阶函数reduce函数用于对可迭代对象中的元素进行累积计算(需从functools模块导入)。语法格式fromfunctoolsimportreducereduce(function,iterable[,initial])function:用于接收两个参数的累积函数(如lambdax,y:x+y);iterable:可迭代对象(如列表、元组等);initial(可选):初始值,若提供则作为第一次计算的第一个参数;返回值:最终的累积结果。相关知识:高阶函数应用场景map——“变”你有一筐东西,你想把筐里的每一个东西都一对一地变成另一种形态。输入和输出元素的个数不变。filter——“筛”你有一筐东西,你想根据某种条件筛选出你想要的那些。输出元素的个数可能减少,但元素本身不变。reduce——“合”你有一筐东西,你想把它们聚合成一个单一的总结结果。比如求和、求积、拼接成一个字符串等。相关知识:递归函数递归(Recursion)函数是指一个自己会调用自己的函数。就像俄罗斯套娃打开一个娃娃,里面还有一个更小的同类娃娃,直到遇到最小的那个为止。递归函数必须包含两个关键要素基准条件(BaseCase)必须有明确的终止条件,比如最小的套娃;递归步骤(RecursiveStep)每次调用都要让问题变得更小。相关知识:递归函数相关知识:递归函数应用场景处理树状结构比如文件夹遍历;解决分步骤的问题比如汉诺塔;当问题可以分解成相同的小问题时但需要注意的是忘记终止条件会导致无限循环;递归层数太深可能让程序崩溃;有些问题用循环解决效率更高。示例5.1输出小于m的最大孪生素数对任务描述编写函数is_prime(n),判断一个数n是否为素数,函数参数为n从键盘输入m,调用函数寻找比m小的最大孪生素数对,并打印该素数对。所谓孪生素数即相差为2的一对素数。示例5.1输出小于m的最大孪生素数对思路分析判断素数(is_prime(n))如果n<=1,直接返回False。遍历2到sqrt(n)(包含),检查是否能整除n。如果发现任何能整除的数,n不是素数,返回False。否则,n是素数,返回True。思路分析寻找比m小的最大孪生素数对孪生素数定义:两个素数(p,p+2),例如(3,5)、(5,7)从m-1开始向下遍历,检查每个数i和i-2是否都是素数。找到的第一个满足条件的(i-2,i)就是最大的孪生素数对。如果遍历到i=5仍未找到,说明不存在比m小的孪生素数对。示例5.1输出小于m的最大孪生素数对试一试:能否把寻找小于m的最大孪生素数对的功能也写成一个函数?任务描述:某工厂视觉检测系统采集到一批产品表面瑕疵数据,需通过编程实现以下功能:数据预处理函数(preprocess_data(raw_data))输入:原始检测数据(列表,元素为字典,格式如[{"id":1,"defects":3},...])处理:过滤掉defects字段缺失或为负数的无效数据输出:返回有效数据列表(valid_data)缺陷等级判断函数(judge_defect_level(defect_num))输入:单个产品的缺陷数量(整数)规则:0个缺陷
→"合格"1~2个缺陷
→"轻微瑕疵">=3个缺陷
→"严重缺陷"输出:返回等级字符串试一试5.1工业视觉缺陷数据检测分析器统计报告生成函数(generate_report(valid_data))输入:有效数据列表处理:统计总检测数量、合格品数量、严重缺陷占比(百分比)输出:返回字典,格式如{"total":10,"passed":6,"serious_rate":"30.0%"}主函数整合(main())调用上述三个函数完成完整处理流程输出最终统计报告试一试5.1工业视觉缺陷数据检测分析器相关知识:库的使用标准库如os、sys、datetime、json随Python安装自带,提供基础功能支持第三方库如numpy、pandas、requests、Django等需额外安装,扩展了科学计算、数据分析、Web开发等高级能力项目拆解效果展示实现要求在“Python-code”文件夹中复制“项目5_原始素材”文件夹,并粘贴至同一目录下,重命名为“项目5”打开“项目5”文件夹,在“unit5.py”文件中实现以下要求定义4个函数分别处理4种类型信息,分别是温度temperature()、湿度humidity()、响度loudness()、明亮度lightness()。调用每个函数时,传入字典dict中对应的每天的数据。每个函数返回当天的信息。在main函数中取出相应类型的值,并传入各个函数中得到返回的结果。用列表result记录返回结果传入各个函数的参数实现要求-main函数实现要求-4个处理函数THANKYOU主讲:吴雪飞项目6存储实验室数据到云端主讲:吴雪飞知识回顾项目引入项目5设计了各种监测数据的处理器,通过控制结构处理复杂逻辑、用组合数据类型(列表、字典)组织结构化数据,并通过函数模块化代码。但在实际应用中,数据需要长期保存——比如环境监测系统中的温度、湿度数据,若程序关闭后数据丢失,将无法进行长期分析。实现数据的持久化存储是本项目的核心目标。项目描述项目6将设计一个网页版监测数据存储云盘,核心功能包括:文件与文件夹管理用户可通过网页界面创建文件(如sensor_2025.txt)或文件夹(如2025_data)。数据存储与读取在文本框中输入监测数据(如时间戳和温湿度值),点击保存后写入文件。可随时读取文件内容并在网页中显示。数据格式与持久化将用户输入的内容保存为本地文件(模拟“云存储”效果)。支持文本(.txt)和结构化数据(如.csv或.json)格式。项目效果相关知识:文件基本操作文件的概念文件是计算机中用于存储数据的基本单位,以特定格式保存在存储介质(如硬盘、U盘)中。它可以是文本文件,以字符编码存储可读内容;也可以是二进制文件,存储非文本数据。文件的类型文本文件如“.txt”,“.csv”,“.py”等文件二进制文件如“.exe”,“.dll”,“.mp4”等文件相关知识:文件基本操作文件操作流程打开文件→操作文件→关闭文件open()函数基本语法open(file,#文件路径(字符串或字节类型),必需参数mode='r',#打开模式(默认文本读模式)encoding=None,#文件编码(如'utf-8')**kwargs#其他可选参数)相关知识:文件基本操作文件操作流程打开文件→操作文件→关闭文件相关知识:文件基本操作文件打开模式值描述r只读模式(默认,可省略),文件指针指向文件头,若文件不存在则抛出异常w写模式,文件指针指向文件头,若文件已存在,则覆盖写入;若文件不存在,则创建x写模式,创建新文件,文件指针指向文件头,若文件已存在则抛出异常a追加模式,文件指针指向文件尾,不覆盖文件中原有内容+读写模式,与r/w/x/a一同使用,如r+、w+、x+、a+,在原功能基础上增加同时读写b二进制模式(可与其他模式组合使用),如rb、wb、ab、ab+t文本模式(默认,可省略)相关知识:文件基本操作上下文管理器(with语句)Python的with语句通过上下文管理器自动管理文件资源,确保文件操作后自动关闭,即使发生异常也能安全释放资源。相关知识:文件基本操作文本文件读写读取全部内容withopen("data.txt","r",encoding="utf-8")asf:content=f.read()#返回整个文件内容的字符串print(content)逐行读取withopen("data.txt","r",encoding="utf-8")asf:forlineinf:#逐行遍历,节省内存print(line.strip())#去除行尾换行符(如"Hello\n"→"Hello")相关知识:文件基本操作文本文件读写写入内容withopen("output.txt","w",encoding="utf-8")asf:#写入单个字符串(需手动添加换行符)f.write("Hello,Python!\n")
#写入多行内容(列表中的每个元素为一行)lines=["Line1\n","Line2\n","Line3\n"]f.writelines(lines)相关知识:文件基本操作文件读写常用方法方法描述read()一次读取文件所有内容,返回字符串read(size)从文件中读取size个字符作为结果返回readline()从文本文件中读取一行内容作为结果返回readlines()将文本文件中每行文本作为一个字符串存入列表,返回该列表seek(offset)将文件指针移到新位置,offset值:0-文件开头;1-当前位置;2-文件结尾write(s)把字符串s的内容写入文件wirtelines(l)将元素全为字符串的列表l写入文本文件,不添加换行符相关知识:文件编码基本概念文件编码是文本文件处理中的核心概念,它定义了字符(如字母、数字、符号)与二进制字节之间的映射规则,决定了数据如何存储和传输。常见编码类型相关知识:文件编码在Python中指定文件编码在Python中,推荐使用encoding参数显式指定文件编码,避免依赖系统默认设置,以确保跨平台一致性。示例6.1文件处理与异常捕获综合练习(6-ex-1.py)任务描述文件读取使用open()函数以只读模式打开文件,并指定UTF-8编码。使用with语句自动管理文件资源,确保异常时也能正确关闭。读取文件全部内容并计算其长度。根据文件内容长度进行相应计算,空文件会触发除零错误。异常处理捕获FileNotFoundError:处理文件不存在的场景。捕获ZeroDivisionError:处理空文件导致的除零错误。使用else块处理正常流程。使用finally块确保资源清理(演示用途)。状态反馈文件不存在时输出明确提示。计算错误时显示具体错误信息。操作成功时返回计算结果。示例6.1文件处理与异常捕获综合练习(6-ex-1.py)相关知识:面向对象程序设计(OOP)对比维度面向对象程序设计(OOP)面向过程程序设计编程思维模拟现实实体(对象为中心)线性步骤分解(函数为中心)数据与函数关系数据与方法绑定在对象内部(封装)数据与函数分离,通过参数传递核心概念类、对象、继承、多态、封装函数、变量、流程控制代码复用通过继承、组合复用已有类通过函数调用复用逻辑扩展性高(新增类或方法不影响旧代码)低(修改函数可能影响全局)复杂度管理天然模块化,适合大型项目适合简单逻辑,复杂项目易混乱典型场景GUI开发、游戏引擎、企业级系统脚本工具、数学计算、简单数据处理Python示例classDog:defbark(self):...defcalculate_sum(a,b):...相关知识:面向对象程序设计(OOP)几个重要概念的类比类设计图纸(汽车)对象根据图纸造出来的具体产品(一辆汽车)属性产品的特征(颜色、品牌等)方法产品的功能(驾驶、刹车等)相关知识:面向对象程序设计(OOP)类的定义与组成关键字class打头,类名采用大驼峰命名法类属性:所有实例共享的变量,和方法平级构造方法:第一个参数为self,初始化对象属性实例属性:每个实例独有的变量,通常在构造方法中赋值实例方法:第一个参数为self,用于操作实例的属性和行为类方法:第一个参数为cls,使用@classmethod装饰器,用于操作类属性或实现替代构造函数静态方法:使用@staticmethod装饰器,无self和cls参数,独立函数相关知识:面向对象程序设计(OOP)对象的创建与操作相关知识:面向对象程序设计(OOP)类属性和实例属性类属性是定义在类内部(与__init__平级)、被所有实例共享的公共数据成员,用于存储类级别的通用配置或共享状态。实例属性是绑定在具体对象上的独立数据,通过self在构造方法(__init__)中初始化,用于描述对象的个性化特征。相关知识:面向对象程序设计(OOP)类属性和实例属性通过类修改影响所有实例通过实例修改创建独立属性相关知识:面向对象程序设计(OOP)实例方法、类方法和静态方法实例方法通过创建的对象调用时,self参数会隐式传递,无需显式添加;若通过类去调用,则必须显式添加self参数。类方法使用@classmethod装饰,首参数为cls,调用主体是类本身,核心作用是操作类属性,实现类级别功能。类方法既可通过类直接调用,也可通过对象调用。静态方法使用@staticmethod装饰器声明,不自动接收self或cls,就像一个普通函数,但逻辑上与类相关。类名或对象实例均可调用,但不能访问或修改实例属性或类属性。相关知识:面向对象程序设计(OOP)面向对象程序设计三大特性类的封装打包+隐藏。将属性和方法组合在一起即为“打包”。通过访问控制保护数据完整性即为“隐藏”。类的继承继承是面向对象编程中实现代码复用和层次化设计的重要机制。它允许子类(派生类)自动获取父类(基类)的所有属性和方法,同时可以扩展新功能或重写现有方法。相关知识:面向对象程序设计(OOP)类的继承相关知识:面向对象程序设计(OOP)面向对象程序设计三大特性类的封装类和对象的定义。类的继承继承是面向对象编程中实现代码复用和层次化设计的重要机制。它允许子类(派生类)自动获取父类(基类)的所有属性和方法,同时可以扩展新功能或重写现有方法。类的多态同一操作作用于不同类的实例时,会产生不同的行为;通过统一的接口调用不同对象的方法。分为编译时多态(方法重载)和运行时多态(方法重写)。相关知识:面向对象程序设计(OOP)类的多态拓展知识:os库方法和属性功能说明chdir(path)把path设为当前工作目录getcwd()返回当前工作目录listdir(path)返回path中所有文件和文件夹名称组成的列表,不包含子文件夹中的文件mkdir(path)创建目录rmdir(path)删除目录,目录中不能有文件夹或子文件夹remove(path)删除指定的文件rename(src,dst)将文件名src重命名为dstsep文件路径中的分隔符walk(top,topdown=True,onerror=None,followlinks=False)目录树生成器,返回一个元组(dirpath,dirnames,filenames),其中dirpath为以top为根的整个目录树上的每个目录,dirnames为dirpath中所有子目录名称列表,filenames为dirpath中所有文件名列表拓展知识:os库拓展知识:os.path模块方法功能说明abspath(path)返回给定路径的绝对路径basename(path)返回指定路径的最后一个路径分隔符后面的部分dirname(path)返回指定路径的最后一个路径分隔符前面的部分exists(path)判断指定的路径是否存在,返回True或Falseisdir(path)判断指定的路径是否为文件夹,返回True或Falseisfile(path)判断指定的路径是否为文件,返回True或Falsejoin(path,*paths)连接两个或多个path,相邻路径之间插入路径分隔符,返回连接后的路径字符串normcase(path)把路径中所有字母改为小写,把所有斜杠改为反斜杠split(path)以路径中的最后一个斜杠为分隔符把路径分隔成两部分,返回元组splitext(path)从路径中分隔文件的扩展名,返回元组splitdrive(path)从路径中分隔驱动器的名称,返回元组拓展知识:os.path模块拓展知识:json模块JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,基于键值对(Key-Value)组织数据,支持嵌套结构(如对象、数组)。Python的json模块是标准库的一部分,无需额外安装,提供以下核心功能:序列化将Python对象(如字典、列表)转换为JSON格式的字符串。反序列化将JSON格式的字符串解析为Python对象。文件操作直接读写JSON文件,实现数据持久化。拓展知识:json模块序列化函数json.dumps(obj,**kwargs)indent:缩进空格数ensure_ascii:设为False保留非ASCII字符(如中文)拓展知识:json模块序列化函数json.dump(obj,fp,**kwargs)若将Python对象序列化并写入文件,参数与dumps()相同,需额外指定文件对象fp。拓展知识:json模块反序列化函数json.loads(s,**kwargs)将JSON字符串解析为Python对象。json.load(fp,**kwargs)从文件读取JSON数据并解析为Python对象,参数与loads()相同项目拆解效果展示实现要求类!!为“项目6-原始素材”文件夹创建一个副本“项目6”在file_info.py中实现以下要求封装已存在的文件信息类属性isdir、size、name、dirname、path方法read_content()、write_content()、print_info()实现要求实现要求在unit6.py中实现以下要求根据要求定义函数实现方法在main函数中根据操作类型,调用对应函数用result记录返回结果type值包含的参数实现要求result返回值get无读取根目录下所有子路径的信息返回所有子路径列表(单个信息包含:是否是文件夹、路径、名称、文件夹名称、文件大小)createDirdirname在根目录下创建dirname文件夹是/否成功(消息自定义)createFilefilename在根目录下创建filename文件是/否成功(消息自定义)readFilefilename读取根目录下filename文件的内容filename文件的内容writeFilefilename、text将text写入根目录下的filename文件是/否成功(消息自定义)实现要求实现要求实现要求THANKYOU主讲:吴雪飞项目7生成检测数据统计看板主讲:吴雪飞知识回顾项目引入项目6设计的云盘存储系统虽然实现了检测数据的安全归档,但缺乏有效的数据分析维度。项目7将构建可视化分析系统,通过数据可视化技术挖掘缺陷数据间的关联性,使质量管理人员能快速掌握缺陷分布特征。系统采用Matplotlib可视化库与Web技术结合,将建立缺陷类型与发生频次的可视化映射,为产线工艺改进提供数据支撑,实现质检数据从存储管理到智能分析的价值升级。项目描述项目7将设计一个网页版缺陷检测数据图表生成器,核心功能包括:数据解析Pandas库读取“缺陷检测数据.xlsx”文件。通过DataFrame结构精准提取“损坏、装配错误、缺失”三类缺陷记录。数据处理层运Pandas进行频次统计与数据清洗,建立结构化数据集。数据可视化可视化模块采用Matplotlib生成静态柱状图展示其各种缺陷记录的统计个数。最终在网页中显示包含缺陷分类统计、趋势分析的可视化看板。项目效果相关知识:NumPy库基本介绍NumPy是Python科学计算的核心库,提供高效的多维数组(ndarray)和矩阵运算功能,专为高性能数值计算设计。支持向量化操作、线性代数、随机数生成及傅里叶变换,底层由C语言实现,计算速度极快。在工业质检场景中,NumPy可快速处理图像数据(如像素矩阵)、执行缺陷检测的数值计算(如尺寸公差分析、强度分布统计),并与Pandas、OpenCV等库无缝协作,是进行大规模数值计算的“基石工具”。相关知识:NumPy库创建数组常用创建方式相关知识:NumPy库创建数组更多创建方式函数功能说明np.array(object,dtype=None)将Python序列转换为ndarray数组,可指定数据类型np.zeros(shape,dtype=float)创建指定形状的全0数组np.ones(shape,dtype=float)创建指定形状的全1数组np.arange([start,]stop,[step,],dtype=None)生成等差序列数组np.linspace(start,stop,num=50,endpoint=True)生成等间隔数列(可控制包含终点)np.random.rand(d0,d1,...,dn)生成[0,1)均匀分布的随机数组np.full(shape,fill_value,dtype=None)创建填充指定值的数组相关知识:NumPy库数组属性shape数组的维度,返回一个元组,表示各轴大小ndim数组的轴(维度)数量size数组元素的总数dtype数组元素的数据类型(如int64、float32)itemsize每个元素占用的字节数假设有一个3×4的数组,存储了3个缺陷的检测数据(每行代表一个缺陷,列分别为缺陷ID、长度、宽度、深度)相关知识:NumPy库数组常用方法函数描述numpy.append(arr,values,axis=None)将值添加到数组的末尾。arr:要添加值的目标数组;values:要追加的值;axis:指定沿哪个轴追加(如果为None,数组会先被展平)numpy.concatenate((a,b,...),axis=0)沿着指定的轴连接相同形状的两个或多个数组。(a,b,...):要连接的数组序列(必须是相同形状)numpy.insert(arr,obj,values,axis=None)沿指定轴在指定索引之前插入值。obj:插入位置的索引(可以是整数、列表或数组);values:要插入的值(可以是标量、数组或列表)numpy.delete(arr,obj,axis=None)删除数组指定位置的元素,并返回一个新数组。二维数组中,axis=0删除行;axis=1删除列。obj为索引,arr为数组名称numpy.where(condition[,x,y])返回元组,包含输入数组中满足条件元素的各维度索引数组。condition:布尔条件表达式;x(可选):满足条件时返回的值;y(可选):不满足条件时返回的值numpy.vstack(tup)按行拼接数组,tup:要堆叠的数组序列(元组或列表形式);返回值:堆叠后的新数组,原数组不变numpy.hstack(tup)按列拼接数组相关知识:NumPy库对缺陷检测数据数组defect_data进行如下数据操作相关知识:Pandas库基本介绍Pandas是Python数据分析的核心库,提供高效的DataFrame(二维表格)和Series(一维序列)数据结构,专为处理结构化数据(如Excel、CSV)设计。支持数据清洗、筛选、聚合、合并及可视化,无缝衔接NumPy、Matplotlib等科学计算库。在工业质检场景中,Pandas可快速解析海量检测日志,统计缺陷类型分布、批次合格率等关键指标,为质量优化提供结构化数据支撑,是进行表格数据分析的“瑞士军刀”。Pandas主要包括Series和DataFrame两种核心数据结构。这两种结构可以概括为“一维与二维的互补共生”相关知识:Pandas库Series结构一维数据结构,可视为带标签的数组。基础语法importpandasaspds=pd.Series(data=None,index=None,dtype=None,name=None,copy=False)参数说明data数据可以是列表、元组、NumPy数组、字典、标量值等;index为索引(标签),长度需与data一致,默认是0,1,2,...,n-1;dtype为数据类型(如int,float,str),自动推断时可省略;name为Series的名称(可用于某些操作,如DataFrame的列名);copy为是否复制输入数据(默认为False)。相关知识:Pandas库Series结构以缺陷检测数据为例,创建Series结构相关知识:Pandas库Series结构Series结构的基本属性相关知识:Pandas库Series结构Series结构的数据访问方式相关知识:Pandas库DataFrame结构二维表格数据结构,由行索引(index)、列标签(columns)和多列数据构成基础语法importpandasaspddf=pd.DataFrame(data=None,#数据(二维数组、字典、列表等)index=None,#行索引(默认0,1,2,...)columns=None,#列名(默认0,1,2,...)dtype=None,#数据类型copy=False#是否复制数据)相关知识:Pandas库DataFrame结构创建DataFrame常用从字典创建importpandasaspd#模拟缺陷检测数据data={'检测时间':['2023-08-01','2023-08-01','2023-08-02','2023-08-02','2023-08-03','2023-08-03','2023-08-04','2023-08-04','2023-08-05','2023-08-05'],'缺陷类型':['损坏','装配错误','缺失','损坏','划痕','装配错误','缺失','划痕','损坏','装配错误'],'产品批次':['A01','B02','C03','A01','D04','B02','C03','D04','A01','B02'],'严重程度':['高','中','低','高','中','高','低','中','紧急','中'],'生产线':['线1','线2','线1','线2','线1','线2','线1','线2','线1','线2']}df=pd.DataFrame(data)print(df)相关知识:Pandas库DataFrame结构创建DataFrame格式对齐pd.set_option('display.unicode.east_asian_width',True)pd.set_option('display.width',100)pd.set_option('display.max_columns',None)相关知识:Pandas库DataFrame结构DataFrame数据访问方式基本信息访问df.shape返回行数和列数((行,列))。df.columns返回所有列名(Index对象)。df.index返回行索引(RangeIndex或其他索引类型)。df.dtypes查看每列的数据类型。DataFrame结构DataFrame数据访问方式数据快速预览df.head(n)查看前n行数据(默认n=5)df.tail(n)查看后n行数据df.sample(n)随机抽取n行数据(默认n=1)相关知识:Pandas库DataFrame结构DataFrame数据访问方式列数据访问df['列名']/df.列名df[['列名1','列名2','列名3']]DataFrame结构DataFrame数据访问方式行数据访问(标签索引)df.loc[行标签]df.loc[[行标签1,行标签2,...]]df.loc[起始标签:结束标签]相关知识:Pandas库DataFrame结构DataFrame数据访问方式行数据访问(位置索引)df.iloc[行位置]df.iloc[[行位置1,行位置2,...]]df.iloc[起始位置:结束位置](半开区间)DataFrame结构DataFrame数据访问方式多维度交叉访问df.loc[行标签,列标签]df.iloc[行位置,列位置]相关知识:Pandas库DataFrame结构DataFrame数据常用操作数据增加pd.concat([原df,新数据df],其他参数)ignore_index设为True:创建新索引ignore_index默认为False:保留原索引相关知识:Pandas库DataFrame结构DataFrame数据常用操作数据修改DataFrame结构DataFrame数据常用操作数据查询相关知识:Pandas库DataFrame结构DataFrame数据常用操作数据分组统计DataFrame结构DataFrame数据常用操作数据删除len(x)为每个分组中的记录行数示例7.1缺陷检测数据维护实战任务描述在上述原始模拟缺陷检测数据的基础上进一步进行数据维护,具体需求为:数据筛选:找出“线2”生产线上的所有记录。数据修改:将所有“损坏”类型缺陷的严重程度改为“紧急”,输出修改后的损坏记录。数据添加:新增一列“处理状态”,所有记录默认设为“待处理”,显示前5行。数据删除:删除“缺陷类型”为“划痕”的所有记录,并统计删除后的记录数。分组统计:统计每个产品批次出现的缺陷数量。复合查询:找出“产品批次”为“A01”且“严重程度”为“高”的记录。显示最终数据。示例7.1缺陷检测数据维护实战相关知识:Pandas库数据清洗在Python数据分析中,借助Pandas库可实现高效数据清洗dropna()/fillna()处理缺失值replace()修正异常值drop_duplicates()去重通过astype()或str方法统一格式结合apply()或map()实现标准化。这些操作以DataFrame为核心,直接提升数据质量,为后续分析(如scikit-learn建模或Matplotlib可视化)奠定可靠基础。相关知识:Pandas库数据清洗读取数据文件read_excel是读取Excel文件的核心函数pd.read_excel(io,#文件路径或类文件对象(必填)sheet_name=0,#工作表名称或索引(默认第一个表)header=0,#列标题所在行(默认第0行)names=None,#自定义列名列表(替换原列名)dtype=None,#强制指定列数据类型(如{"温度记录":"float64"})parse_dates=False,#自动解析日期列(或指定列名列表)na_values=None,#定义缺失值标识(如["NA","NaN",""])engine=None#解析引擎(默认自动选择,可选"openpyxl"或"xlrd"))相关知识:Pandas库数据清洗读取数据文件相关知识:Pandas库数据清洗初步数据探索查看数据基本信息统计描述缺失值统计相关知识:Pandas库数据清洗数据清洗操作处理缺失值相关知识:Pandas库数据清洗数据清洗操作处理异常值通过调用apply()函数,将“温度记录”列的每个数据应用到lambda()自定义函数,该自定义函数的主要功能是通过简洁分支结构将大于100的数据替换成100,否则保持原数据不变。思考:1.当前代码只处理了大于100的情况,未处理下限(如x<0)。若需同时限制下限,应如何修改代码?2.对于大数据量而言,apply()函数可能性能较慢,若使用向量化操作,如前面提到的numpy.where()方法,应如何修改代码?相关知识:Pandas库数据清洗数据清洗操作处理重复数据标准化分类数据标准化时间格式相关知识:Pandas库数据清洗数据清洗操作清洗后验证保存清洗结果相关知识:Matplotlib库基本介绍Matplotlib是Python最基础的数据可视化库,支持生成静态、动态及交互式图表。通过简洁的API接口,用户可快速绘制折线图、柱状图、散点图等,可灵活调整图表样式(标题、轴标签、颜色、图例),并能将数据分布、趋势和异常值直观呈现。结合Pandas数据处理能力,可高效支持工业检测、统计分析等场景。相关知识:Matplotlib库折线图折线图展示数据随时间或其他连续变量的变化趋势,如销售额月度增长、温度日变化等,可以直观呈现趋势波动,识别周期性或异常波动点。语法格式相关知识:Matplotlib库折线图以绘制缺陷数量随时间变化趋势的折线图为例思路分析x轴是检测日期y轴是缺陷数量结论得出按日期分组的缺陷数量(Series结构)即可每日缺陷数量即为每日记录行数通过Series结构.index获取日期作为x轴数据通过Series结构.values获取缺陷数量作为y轴数据注意:日期需要提取“月-日”df['检测时间'].dt.strftime('%m-%d')相关知识:Matplotlib库折线图以绘制缺陷数量随时间变化趋势的折线图为例相关知识:Matplotlib库柱状图柱状图对比不同类别的数值差异,如产品销量排名、地区用户数量比较。通过高度差异快速定位优势或劣势类别,支持决策优化。语法格式相关知识:Matplotlib库柱状图以绘制各缺陷类型出现频率的柱状图为例思路分析理解原始数据结构找到DataFrame中“缺陷类型”列明确统计目标每种缺陷类型出现了多少次
例如:划痕-15次,裂纹-8次,变形-5次选择统计方法value_counts():最直接的方法,专门用于统计频次,返回Series结构groupby().size():分组后统计每组大小相关知识:Matplotlib库柱状图以绘制各缺陷类型出现频率的柱状图为例自定义颜色可通过复制多个相同的十六进制颜色值(如黑色“#000000”),再通过单击颜色值前面的颜色预览框,可调出颜色选择器进行颜色的选择,这是vscode的内置功能。相关知识:Matplotlib库饼图饼图显示整体中各部分的占比关系,如市场份额分配、成本构成分析。强调比例分布,突出主要贡献或消耗来源。语法格式相关知识:Matplotlib库饼图以绘制各种缺陷严重程度占比饼图为例思路分析数据形式x必须为分类数据,可求和x可为原始分类数据列,但需先用.value_counts()统计频次x亦可为已汇总的数值序列pd.Series([3,2,1],index=['高','中','低'])统计目标“严重程度”列每个严重程度出现的次数然后计算它们在总缺陷中的占比最后用饼图直观展示为什么先统计频次再计算占比?plt.pie()会自动根据输入值计算比例。相关知识:Matplotlib库饼图以绘制各种缺陷严重程度占比饼图为例相关知识:Matplotlib库箱线图箱线图通常用于比较不同组/类别的数据分布特征(中位数、四分位数、异常值),如测试结果稳定性评估。其核心价值在于揭示数据集中趋势和离散程度,辅助异常检测。plt绘制箱线图的x数据构建较为复杂,这里介绍Seaborn库绘制箱线图的方法Seaborn也是基于Matplotlib的高级Python数据可视化库,专注于统计图表绘制。它提供简洁的API、美观的默认样式,支持散点图、箱线图、热力图等,擅长展现数据分布与关系,是数据分析常用工具。相关知识:Matplotlib库箱线图语法格式相关知识:Matplotlib库箱线图以绘制不同严重程度的温度分布箱线图为例相关知识:Matplotlib库散点图散点图以坐标点形式展示两个连续变量的关系,直观呈现数据分布特征。每个点代表一个观测值,通过点的聚集形态可判断变量间的相关性(正/负/无)、异常值及聚类趋势。语法格式相关知识:Matplotlib库散点图以绘制温度与严重程度的散点图为例Series.map(arg,**kwargs)arg:映射关系(
function,dict,Series,orarray-like
)
返回Series结构相关知识:DataFrame绘图Matplotlib的pyplot模块(简称plt)是Python数据可视化的基础工具,提供完整的图形控制功能,但需要手动处理数据提取和图表元素配置。Pandas库在此基础上进行了高层封装,通过DataFrame.plot()方法实现了声明式可视化。该方法能够自动识别DataFrame的列名和索引,显著简化基础图表的生成流程。相关知识:DataFrame绘图DataFrame.plot()语法格式kind参数的图表类型有“line”、“bar”、“scatter”、“box”、“hist”、“pie”、“area”。默认为折线图“line”。相关知识:DataFrame绘图代码举例相关知识:DataFrame绘图代码举例相关知识:DataFrame绘图代码举例Pandas早期版本将箱线图作为独立方法实现(df.boxplot()),因为箱线图常用于统计描述,使用频率高且参数复杂,值得单独优化,后期才发展了统一接口plot(),为保留早期API设计,避免破坏现有代码,这个方法一直沿用至今。相关知识:可视化要素Matplotlib的可视化体系遵循清晰的层级架构:画布(Figure)作为基础容器,承载所有元素;子图(Subplot)通过网格化布局实现多视图协同分析;坐标系(Axes)作为核心绘图空间,管理数据映射与图形渲染。这一架构如同舞台(Figure)上的多个表演区(Axes),通过标准化座位表(Subplot)快速排布。相关知识:可视化要素画布(Figure)创建画布并设置尺寸其他方法相关知识:可视化要素子图(Subplot)批量创建fig,axes=plt.subplots(nrows,ncols)显示创建fig=plt.figure(figsize=(14,10))fig.add_subplot(nrows,ncols,index)ax1等价于批量创建方式中axes[0,0],以此类推相关知识:可视化要素坐标系(Axes)坐标系是Matplotlib的核心绘图单元,本质是一个包含完整绘图元素的数学平面。每个Axes对象(如前面的axes变量)包含一对正交坐标轴(X/YAxis)、标题、图例及数据可视化层,通过数据-像素映射系统将数值转换为图形元素。相关知识:可视化要素坐标系(Axes)如在上述画布的左上角(0,0)位置绘制折线图相关知识:可视化要素图例(Legend)图例是数据可视化中用于说明图形元素含义的核心组件,通过颜色、线型或标记符号的对应标注,帮助用户理解图表中不同数据系列的含义。语法格式相关知识:可视化要素图例(Legend)为各种图表添加图例的统一步骤在绘图时指定“label”参数,然后调用“legend()”方法生成图例但不是所有图表都需要图例当图表元素已自解释或信息重复时不需要用图例当存在多维分类、非直观编码或数据隐含逻辑时需要图例从工业优先级的角度出发,遵循“最小有效信息”原则能用标题、标签、注释等说明的,尽量不用图例相关知识:可视化要素图例(Legend)按照以上原则,可为温度与严重程度的散点图绘制图例相关知识:可视化要素图例(Legend)按照以上原则,可为温度与严重程度的散点图绘制图例为什么要分组绘制散点图?1.因为需根据“严重程度”这个分类变量来区分数据点。2.每个严重程度级别(高/中/低)需要用不同颜色表示。3.最终需要在图例中明确展示这种对应关系。需调用unique()方法获取所有不重复的严重程度级别,同时创建颜色字典,建立类别到颜色的映射关系。每次循环处理一个严重程度级别,使用布尔索引df[df['列']==值]筛选数据,label参数是图例显示的文字,必须为每组数据设置。相关知识:可视化要素标签(Labels)在Python数据可视化中,标签(Labels)也是图表的重要组成部分,它们帮助用户理解图表所呈现的信息状态。主要标签类型标题(Title)轴标签(AxisLabels)刻度标签(TickLabels)数据标签(DataLabels)等相关知识:可视化要素标签(Labels)数据标签的语法格式相关知识:可视化要素标签(Labels)用plt的方式在前面柱状图的基础上添加数据标签plt.bar()返回BarContainer对象,该对象是一个包含多个Rectangle对象的容器将带标签的柱状图、带图例的散点图、饼图统一绘制到前面的画布中。保存运行图片为“缺陷检测数据综合看板(学号姓名).png”课后作业编写一个Python程序,完成以下功能。(1)从sales_data.xlsx文件导入数据。其中,date表示销售日期;product表示产品名称;category表示产品类别;quantity表示销售数量;revenue表示销售收入;region表示销售区域。(2)读取并清洗数据(处理缺失值、转换数据类型等)。转换日期格式。用各列平均数填充“quantity”“revenue”这两列的缺失值。用各列众数(数据集中出现频率最高的值)填充“product”“category”“region”这三列的缺失值。(3)添加月份列用于分析。(4)使用matplotlib绘制4种不同类型的图表。图表1:水平柱状图——各产品类别的总销售额。图表2:折线图——每月销售趋势。图表3:箱线图——各地区收入分布。图表4:自选一种没讲过的图表类型进行数据统计(5)保存文件为“sales_visualizations_matplotlib_学号姓名.png”(6)上传.py文件和.png文件到CC网“作业上传——项目7课后作业”。项目拆解效果展示为“项目7-原始素材”文件夹创建一个副本“项目7”在unit7.py中实现以下要求根据要求定义函数实现方法在main函数中根据操作类型,调用对应函数使用异常包含运行程序,成功返回success,异常返回error实现要求THANKYOU主讲:吴雪飞项目8实现检测数据动态看板主讲:吴雪飞知识回顾项目引入在工业检测场景中,静态图表虽能直观呈现数据,但无法满足实时监控与交互分析的需求。为提升数据分析的灵活性与用户体验,本项目将基于Flask框架与ECharts可视化库,构建网页版动态缺陷数据展示系统。通过Flask后端搭建轻量级Web服务,整合路由控制与数据接口,结合ECharts的动态渲染能力,实现缺陷类型分布、数量统计的动态图表。用户可通过网页选择缺陷数据的柱状图或饼图,查看动态更新的可视化结果,突破静态报告的局限,为质量管理人员提供高效决策支持。项目描述项目8将基于缺陷检测数据构建动态可视化系统,核心功能包括:后端搭建利用Flask框架定义路由(如/home页面接口、/api/data数据接口)通过请求对象(request)建立参数解析与校验机制处理前端传入的可视化参数(图表类型、数据维度等)使用Pandas实现缺陷数据的处理和过滤,并将数据构建为JSON结构进行返回静态资源管理将CSS、JavaScript及字体文件存放于static目录通过Flask的网址自动生成函数url_for动态引用,保障资源加载效率与可维护性项目描述项目8将基于缺陷检测数据构建动态可视化系统,核心功能包括:前端开发通过Jinja2模板引擎渲染HTML页面集成Bootstrap布局与ECharts图表库利用Ajax技术异步请求后端接口,实现无刷新数据更新动态图表基于ECharts配置饼图、柱状图、折线图等绑定数据接口响应支持缩放、提示框交互及主题切换,确保图表随用户操作实时渲染项目效果相关知识:Flask全栈开发流程解析FlaskWeb应用的基本框架和路由系统项目结构初始化导入依赖模块动态定位资源目录Flask应用实例化与配置路由系统设计主页路由API数据接口路由应用运行配置@app.route("/"):装饰器将URL路径/绑定到index()函数render_template("index.html"):渲染templates/index.html模板这是典型的MVC模式:路由(Controller)→
模板(View)@app.post("/data"):限制只接受POST请求(Flask2.0+语法)request.json:自动解析JSON请求体,返回字典jsonify():返回标准JSON响应相关知识:Flask全栈开发流程解析FlaskWeb应用的基本框架和路由系统数据处理流程前端到后端的请求链前端
→AjaxPOST请求
→/data路由
→request.json解析
→unit3.main()处理
→jsonify响应
→
前端接收前后端交互模式前端(index.html)与后端关联(index.js)相关知识:路由(Routing)在Flask框架中,路由(Route)是指将特定的URL路径映射到相应的视图函数(ViewFunction)的机制。通过路由,Flask能够根据用户访问的URL地址,调用对应的处理函数,并返回相应的响应内容(如HTML页面、JSON数据等)。路由的核心作用建立URL与业务逻辑之间的桥梁,使得用户通过浏览器访问不同的URL时,能够触发不同的后端处理逻辑。在Flask中,路由使用装饰器(@app.route())定义,将URL模式绑定到视图函数。相关知识:路由(Routing)基本用法步骤在项目8文件夹中创建“Flask应用示例”文件夹在其中创建main.py创建Flask应用实例路由通过@app.route()装饰器来定义访问“:5000/”时,调用home()函数访问“:5000/about”时,调用about()函数应用启动相关知识:路由(Routing)动态路由Flask支持动态路由,允许在URL规则中定义变量部分,这些变量会自动提取并作为参数传递给视图函数。这是构建接受用户输入或显示特定资源页面的Web应用的基础。相关知识:路由(Routing)动态路由基本语法<变量名>或<转换器:变量名>在main.py中添加代码访问“:5000/user/john”时,页面显示“用户:john”访问“:5000/post/123”时,页面显示“文章ID:123”访问“:5000/path/some/folder/file.txt”时,页面显示“子路径是:some/folder/file.txt”示例8.1简易缺陷检测系统(Flask版)功能需求基础功能。首页:显示系统名称和导航链接(纯文本)。检测功能:输入产品ID,随机返回“合格”或“缺陷”结果。缺陷说明:输入缺陷代码(1/2/3),返回对应的缺陷描述。动态路由规则。/check/<product_id>:<product_id>:任意字符串(如P1001),表示产品编号。返回格式:“产品[ID]检测结果:合格/有缺陷(代码X)”。/type/<int:defect_code>:<defect_code>:必须是整数1、2或3,否则返回错误提示。返回格式:“缺陷代码X:具体描述”。模拟逻辑。检测结果:70%概率合格,30%概率缺陷。通过random.random()生成一个0-1之间的随机数,若小于0.7为合格;否则为缺陷。缺陷代码:若检测为缺陷,随机分配代码1、2或3。通过random.choice()从缺陷代码列表中随机选择一个缺陷描述(字典):1→“划痕:表面有线性损伤”。2→“裂纹:材料内部断裂”。3→“变形:产品形状异常”。示例8.1简易缺陷检测系统(Flask版)相关知识:请求对象(Request)Flask的请求对象(request)是一个全局对象,它封装了客户端发送给服务器的所有信息。当客户端(如浏览器)向Flask应用发送HTTP(超文本传输协议)请求时,Flask会自动创建一个请求对象,其中包含了请求的所有细节。fromflaskimportrequest#导入请求对象@app.route('/example')defexample():#这里可以使用request对象returnf"请求方法:{request.method}"运行结果请求方法:GET相关知识:请求对象(Request)HTTP请求方法request.method返回一个字符串,表示当前HTTP请求的方法,其值总是大写字母,由客户端(浏览器、API调用等)在发起请求时指定,定义了请求的意图和操作类型,是客户端与服务器交互的核心机制。相关知识:请求对象(Request)指定请求方法默认情况下,路由只响应GET请求。如果需要处理其他HTTP方法(如POST、PUT等),可以通过methods参数指定。运行结果:这是登录页面。相关知识:请求对象(Request)指定请求方法如何响应POST方法?表单提交数据提交...相关知识:请求数据客户端的请求数据主要分为三种查询参数(Params)、表单数据(FormData)、JSON数据。相关知识:请求数据测试查询参数(Params)测试表单数据(FormData)测试JSON数据在命令行运行,问号(?)后面是参数相关知识:模板(Templates)在Flask中,模板(Template)是一种用于动态生成HTML页面或其他文本格式(如XML、JSON等)的技术。模板允许开发者将静态结构与动态数据分离,通过在HTML中嵌入占位符或逻辑表达式,实现数据的动态渲染。相关知识:模板(Templates)创建templates文件夹在“Flask应用示例”文件夹中创建编写模板文件在templates文件夹中创建index.html文件<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><title>首页</title></head><body><h1>欢迎来到首页</h1><p>这是一个简单的模板示例。</p></body></html>相关知识:模板(Templates)在视图函数中渲染模板视图函数是Flask应用中处理HTTP请求的核心单元,主要负责接收客户端请求;处理业务逻辑;返回HTTP响应等。在Flask应用中,使用render_template()视图函数渲染模板。修改main.py文件相关知识:静态文件(StaticFiles)在Flask框架中,静态文件是指那些不经常变动的资源文件,例如CSS样式表、JavaScript脚本、图片、字体文件等。Flask默认会在项目根目录下的static文件夹中查找这些静态文件。常见的静态文件CSS文件:定义网页的样式和布局。JavaScript文件:实现网页的交互和动态效果。图片文件:如PNG、JPEG、GIF等格式的图片。字体文件:如WOFF、TTF等格式的字体文件。其他资源:如音频、视频、PDF等文件。相关知识:静态文件(StaticFiles)创建static文件夹在“Flask应用示例”文件夹中创建组织静态文件在static文件夹中创建子目录,并将静态文件分类存放,可创建css子文件夹、js子文件夹、images子文件夹和fonts子文件夹,后续各类静态文件放入对应子文件夹中。相关知识:静态文件(StaticFiles)在模板中引用静态文件CSS文件主要影响页面渲染样式,应尽早加载,一般放在<head>标签内JS文件会阻塞页面渲染,一般放在<b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 矿山电气防爆隐患排查评估整治技术指南(2025年版)
- 物资退库管理办法
- 2026年民族医药知识考试试卷及答案
- 2026年村级护堤员考试真题(附答案)
- 学生考试突发疾病应急演练脚本
- Python编程项目实战(微课版)- 课件 项目1、2 搭建基础开发环境、展示数据可视化看板
- 提高对尿布疹严重程度判断的能力
- 部编版小学五年级下册语文古诗文及日积月累专项复习(含译文、赏析)
- 临时设施工程现场消防水池防水卷材铺设施工作业指导书
- VACTERL联合征食管闭锁术后狭窄扩张临床路径
- 采伐安全施工技术交底
- 2025至2030全球及中国电脑游戏耳机行业项目调研及市场前景预测评估报告
- 2025长沙市望城区中小学教师招聘考试试题及答案
- 2025年高考湖北卷物理真题(原卷版)
- 2025年感术行动之围手术期感染防控试题附答案
- 财税政策解读与企业合理避税指南
- 反渗透技术施工方案书
- 基孔肯雅病毒(CHIKV)实验活动风险评估报告
- 《教育管理学》 陈孝彬编 (第3版)复习重点梳理笔记
- 骨科患者肢体摆放护理规范标准
- 装载机安全培训教学课件
评论
0/150
提交评论