版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
签到方式一:登录cc网http://cc.szpu.方式二:点击桌面CC网图标项目1搭建基础开发环境主讲:吴雪飞自我介绍姓名:吴雪飞学历:博士研究生职称:教授电话微信同号)办公地点:知行园A座410座右铭:天马行空的去想,脚踏实地的去做!学情分析(25本1:37人25本2:31人)学情分析(25本1:37人25本2:31人)课程设计思路网页版项目形式给出固定网页框架结构,代码填空课程知识图谱项目引入在工业自动化与智能制造快速发展的背景下,高效的数据处理能力已成为企业提升运营效率和竞争力的核心要素。工业现场产生的数据形态多样,从实时传感器数据到生产流程监控信息,其处理与分析能力直接影响决策质量。面对复杂的数据应用场景,Python凭借简洁语法、丰富的第三方库和强大社区生态,成为工业数据分析的主流工具。因此,正确安装和配置Python开发环境是工程师开展数据处理、算法研究和系统集成的重要基础。项目描述环境搭建步骤1.解释器安装从Python官网下载并安装3.10稳定版本的解释器;2.开发工具配置安装VisualStudioCode,并关联Python解释器;环境搭建步骤3.依赖库安装通过pip命令安装项目必需的7个库;4.环境验证编写并运行测试脚本,确认环境可用性,包括:命令行成功执行python--version命令;VisualStudioCode中正确导入已安装的库;控制台输出预期验证信息。Python语言概述Python语言是通用语言01Python语言是脚本语言02Python语言是开源语言03Python语言是跨平台语言04Python语言是多模型语言05Guidovanrossum--python语言创立者2000年,Python2.x2008年,Python3.x与其它程序设计语言的比较编程语言适用场景C/C++开发对速度要求比较高的系统软件及大型端游Java互联网服务器端应用及Android手机的App开发C#微软公司程序设计语言,网站开发,桌面应用开发PHPWeb应用程序的后端(服务器端)开发JavaScript网站前端开发,在浏览器中运行Swift苹果公司语言,用于开发iPhoneApp和Mac桌面应用程序Python主要应用场景服务器软件游戏科学计算桌面软件Web开发自动化脚本TIOBE开发语言排行榜TIOBE开发语言排行榜作为当前业内程序开发语言的流行使用程度的有效指标。Python近5年连续5次蝉联榜首。Python特点与优势跨操作系统平台多种编程方式支持中文字符语法简洁强制可读性C代码量的10%较少的底层语法元素开放共享生态高产>60万第三方库快速增长的计算生态Python特点与优势Python的递归函数Java的递归函数4行9行fromPILimportImagefromPILimportImageFilterforiinrange(1,8):im=Image.open('beijing'+str(i)+'.jpg')e33=im.filter(ImageFilter.CONTOUR)e33.save('beijings'+str(i)+'.jpg')北京印象系列绘图6行简易计算器绘制importtkinterastkcalc=tk.Tk()calc.title(“PythonCalc”)buttons=[‘C’,‘7’,‘8’,‘9’,‘*’,‘4’,‘5’,‘6’,‘/’,‘1’,‘2’,‘3’,‘-’,‘0’,‘.’,‘=’,‘+’,]row=1col=3foriinbuttons:button_style=‘raised’action=lambdax=i:click_event(x)tk.Button(calc,text=i,width=5,height=3,relief=button_style,command=action).grid(row=row,column=col,sticky='nesw',)col+=1ifcol>3:col=0row+=1display=tk.Entry(calc,width=35,bg="white")display.grid(row=0,column=0,columnspan=4)….calc.mainloop()43行PyQt聊天软件实现importsys,osfromtimeimport*fromPyQt5.QtGuiimport*fromPyQt5.QtWidgetsimport*fromPyQt5.QtCoreimport*defmain():defshowDialog():label=“<spanstyle=‘color:#8FBC8F;’>Me:{}</span>”.format(strftime(“%Y-%m-%d%H:%M:%S”,localtime()))message=chatText.toPlainText()
outputarea.append(label)
outputarea.append(‘’+message)
chatText.clear()
chatText.setFocus()
saveMsg(message)defcancelMsg():
chatText.clear()defsaveMsg(txt):
file=open(‘save.txt’,‘a’)
file.write(txt+‘\n’)
file.close()...76行科学坐标系绘制importnumpyasnpimportmatplotlib.pyplotaspltx=np.linspace(0.0,6.0,100)y=np.cos(2*np.pi*x)*np.exp(-x)+0.8z=0.5*np.cos(x**2)+0.8color1=“red”title=“阻尼衰减曲线绘制”label1,label2=“$exp_decay$”,“$cos(x^2)$”note_point,note_text,size=(1,np.cos(2*np.pi)*np.exp(-1)+0.8),(1,1.4),14x_label,y_label=‘时间(s)’,‘幅度(mV)’x_start,x_end,y_start,y_end=0,5,0,1.8a,b=0.8,3...59行雷达图绘制importnumpyasnpimportmatplotlib.pyplotaspltfromradar_factoryimportradar_factorymatplotlib.rcParams[‘font.family’]=‘SimHei’matplotlib.rcParams[‘font.sans-serif’]=[‘SimHei’]data_verts={‘columnnames’:[‘研究型(I)’,‘艺术型(A)’,‘社会型(S)’,‘企业型(E)’,‘常规型(C)’,‘现实型(R)’]}data_points={‘points’:[[0.40,0.32,0.35,0.30,0.30,0.88],
[0.85,0.35,0.30,0.40,0.40,0.30],
[0.43,0.89,0.30,0.28,0.22,0.30],
[0.30,0.25,0.48,0.85,0.45,0.40],
[0.20,0.38,0.87,0.45,0.32,0.28],
[0.34,0.31,0.38,0.40,0.92,0.28]]}...44行pygame实现游戏智能数据采集数据分析与处理机器学习计算机视觉深度学习科学计算三维可视化python编程基础与应用教学目标编写100行左右Python程序,掌握一门可用20年以上的编程语言掌握抽象并求解基本计算问题的初步能力
了解产业界解决复杂计算问题的基本方法
享受编程求解和科技创新带来的高阶乐趣为后续人工智能的进阶课程打好基础课程考核总成绩(100分)平时成绩(50分)考勤(10分)课堂实训(10分)CC网大作业(10分)ET系统作业(20分)期末考试(50分)开卷(纸质资料)通过ET考试系统中考试模块组织完成怎样学好这门课积极、主动、无限发挥正能量兴趣是最好的老师:01找一个必须要过的理由调整好自己的心态:责任+义务不感兴趣:02不忘初心,砥砺前行!牢牢记住:03自学的方式
基础学习//index.html
进阶了解//
项目学习//上课基本要求遵守课堂纪律(不迟到、不早退、不旷课,上课时请将手机关闭或改为振动。)不带吃食进入教室。认真完成老师布置的作业,需要交的作业按时完成、按时上交。
下课时,请保存上传自己的文件,清理桌面,把凳子摆放整齐将饮料瓶、纸巾等带走,放入垃圾桶,保持教室的清洁。学籍管理规定第二十条在一学期中,有下列情况之一者,不得参加该课程的期末考核,必须重修:旷课学时累计超过该课程总学时的五分之一(5次课);因事、病假缺课累计超过该课程教学时数的三分之一;未交作业次数达到应交作业数量三分之一以上;课程形成性考核不达标。15分钟内:迟到;15分钟后:旷课迟到3次累计成1次旷课课件下载及作业提交文件上传命名规范:示例:章节-ex-编号(如:2-ex-1.py)试一试:章节-try-编号(如:2-try-2.py)项目:只包含main.py和unit.py,打包成压缩文件作业及考试系统(https://et.szpu.)
——浏览器(Edge、谷歌)
——用户名:学号
密码:mm学号项目实现——安装python环境Python官方网址:/Python3.10.2下载地址:/downloads/release/python-3102/项目实现——VSCode安装官方网址:/项目实现——VSCode汉化项目实现——安装Python插件项目实现——设置Python虚拟环境①单击Python图标②单击Venv右侧+,创建虚拟环境如:“PYTHON-CODE”文件夹项目实现——安装Python第三方库进入虚拟环境终端执行“pipinstall包名-i/pypi/simple/”临时使用阿里云镜像安装某个包执行“pipinstall包1包2包3...-i/pypi/simple/”numpy、pandas、matplotlib、openpyxl、flask、pyecharts、seaborn单击此按钮进入终端特别注意安装环境时,一定先装python,再装vscode,再装Python插件,再创建虚拟环境,再在虚拟环境中通过新建终端安装7个库。创建虚拟环境后,会发现生成了一个.venv文件夹,这是在运行项目时必要的库文件夹,它是根据Python版本创建的,所以千万不要在不同电脑上拷贝使用。项目实现——第1个Python程序THANKYOU主讲:吴雪飞项目2展示数据可视化看板主讲:吴雪飞知识回顾项目引入在工业4.0智能工厂中,视觉检测系统每秒生成数万条缺陷数据。为实现生产质量的实时监控,需将海量检测数据动态转化为可交互的网页图表,支持生产主管通过多终端设备(如平板、电脑)实时追踪产线质量波动。如何通过编程实现基本数据类型的网页可视化呈现,是构建此类系统的首要技术环节。项目描述项目2将制作一个“网页版数据可视化看板”网页通过按钮展示不同的数据类型;页面上的展示内容会随着数据类型不同而变化;每种数据将有专属颜色或样式进行标识。项目效果语法变量名=变量值变量命名需遵循如下规则命名构成命名禁止小写字母(a-z)禁止以数字开头大写字母(A-Z)数字(0-9)禁止使用Python保留的关键字下划线(_)相关知识:变量相关知识:变量常见Python保留字变量命名建议遵循右侧规则驼峰命名法(CamelCase):多个单词组成的标识符,除第一个单词外,其他每个单词的首字母大写。(如:firstName、phoneNumber、dateOfBirth)蛇形命名法(SnakeCase):多个单词组成的标识符中的每个单词由下划线(_)连接。(如:first_name、phone_number、date_of_birth)0102相关知识:变量相关知识:变量除基本命名规则外,Python使用变量还有一些惯例,命名时尽量避免使用如下这些样式:前后有下划线的变量名通常为系统变量如_name_、_file_等;以两个下划线开头、末尾无下划线的变量如__abc是类的本地变量可通过dir(__builtins__)函数,查看系统内置对象名称,命名时尽量避免。数据类型对应名称示例值整型int1、100、1000浮点型float1.1、100.5、1000.05布尔型boolTrue、False字符串str“你好,世界!”列表list[“真”,True,1,...]元组tuple(1,’2’,3,...)集合set{“红”,”绿”,”橙”,...}字典dist{“键1”:“值1”,“键2”:“值2”,...}相关知识:数据类型Python常见的数据类型有:数值类型、布尔类型、序列类型、字典类型、集合类型以#开头,#右边所有东西都被当做说明文字,不会被程序执行,只起到辅助说明作用快捷键为:ctrl+/单行注释(行注释)如果希望编写的注释信息很多,一行无法显示,就可以使用多行注释使用一对连续的三个引号将需要注释的内容围起来多行注释(块注释)#这是一个单行注释'''这是一个多行注释在多行注释之间,可以写很多内容'''相关知识:注释键盘输入变量名=input("提示字符串")例:num=input("请输入一个数字")变量的输入输入输出的底层逻辑:和电脑对话让电脑问我们一个问题input("请输入一个数字:")并将该字符串显示到屏幕上等待用户输入电脑打印完提示后,程序会暂停,等待用户在键盘上打字,打完后按回车电脑获取输入内容用户输入的所有内容(比如输入5)会被input函数得到,并且变成一个字符串(哪怕你输入的是数字,电脑也先当作文字处理)赋值给变量num相关知识:变量的输入与输出键盘输入变量名=input("提示字符串")例:num=input("请输入一个数字")num=input("5")num=int(input("请输入一个数字"))变量的输入字符串“5”整数5请问:若从键盘输入一个5赋给num,这个num是什么类型?input的返回值是字符串类型!相关知识:变量的输入与输出提示信息显示:5相关知识:变量的输入与输出变量的输出print(*objects,sep='',end='\n',file=sys.stdout,flush=False)*objects(可变参数)表示要打印的内容,可以是多个对象(用逗号分隔)。a=4;b=5print(“a=”,a,“b=”,b)如果未提供任何对象,则打印一个空行。print()sep(可选,默认值为'')用于指定多个对象之间的分隔符。默认是一个空格。end(可选,默认值为'\n')用于指定打印结束时的字符。默认是换行符\n。任务描述定义int_value,float_value,str_value三个变量,分别从键盘接收int、float、str类型的输入,再进行输出小练-从键盘输入变量值并直接输出(2-test-1.py)相关知识:格式化输出基本语法"字符串{占位符}".format(值)生活化比喻模板填空:亲爱的______,你好!今天是______天气。相关知识:格式化输出基本语法为什么要有这么麻烦的方法?直接print("Name:",name,"Age:",age)不行吗?直接打印也可以,但格式化输出在需要精确控制格式时更有用(比如生成固定格式的报告、对齐文本等){}里面可以写东西吗?基础用法先学空的{},后面可以学{0}、{1}指定位置,或者{:d}指定格式。相关知识:格式化输出索引参数"{索引}".format(值1,值2,...)可以通过索引(0,1,2...)指定{}中插入的值生活化比喻有两个人入座:第0个是小明,第1个是小红。有两个座位:第0个是座位1,第1个是座位2正常情况下,两人按顺序入座(小明坐座位1,小红坐座位2)。但如果我们想改变入座顺序,就可以用编号来指定谁坐哪里。”相关知识:格式化输出索引参数为什么索引从0开始而不是1?这是编程界的惯例,很多编程语言都这样设计。可以记成"第0个=第一个"什么时候需要用索引参数?想改变显示顺序时想重复使用同一个值时模板字符串和参数顺序不一致时相关知识:格式化输出命名参数"{变量名}".format(变量名=值)生活化比喻表格上有三个空:姓名:_____、年龄:_____、身高:_____。每个空白处前面都有明确的提示信息。使用命名参数就像这种填表方式:我们不看参数顺序,而是根据提示信息到参数中找对应的变量名来填写对应的内容。相关知识:格式化输出命名参数命名参数的名字必须和变量名一样吗?不需要!命名参数的名字是自定义的,只是标签而已。print("{a}{b}".format(a="Hello",b="World"))#也可以命名参数可以和顺序参数混用吗?可以,但不建议初学者混用,容易混乱。为什么要用:.2f这种奇怪的东西?这是格式控制,.2f表示保留2位小数,就像说"身高精确到厘米"。相关知识:格式化输出格式化选项相关知识:格式化输出格式化练习相关知识:格式化输出格式化练习相关知识:格式化输出格式化练习格式项识别口诀冒号后面第一个字符:如果是<>^→
这是对齐符,填充符是空格如果是其他字符
→
这是填充符,下一个字符是对齐符若确定有填充字符,则后面一定是对齐符宽度识别:对齐符后面的数字就是宽度精度识别:小数点.后面的数字是精度相关知识:格式化输出f-string字符串格式化Python3.6引入的一种字符串格式化方法相关知识:格式化输出f-string字符串格式化f-string不仅可以嵌入变量,还可以嵌入任何有效的Python表达式相关知识:格式化输出f-string字符串格式化f-string支持在{}中使用格式化选项,类似于str.format()方法中的格式化语法示例2.1输入输出综合练习(2-ex-1.py)任务描述从键盘输入一个7位小数的浮点数。通过str.format()设置精度为3,实现输出“值为:X.XXX”。通过f-string设置精度为2,总宽度为12,左对齐,填充*,实现输出“值为:X.XX********”。Python运算符(7种)算术运算符比较运算符赋值运算符位运算符逻辑运算符成员运算符身份运算符相关知识:运算符表达式是由值、变量和运算符组成的代码片段,它们可以通过计算得出一个值。表达式可以包含各种不同的元素,例如数字、字符串、布尔值、函数调用、列表、字典等等。01数字表达式:3+5*202字符串表达式:"Hello"+""+"World"03布尔表达式:1<2and2<304函数调用表达式:len("HelloWorld")05列表表达式:[1,2,3,4,5]06字典表达式:{"name":"John","age":30}相关知识:表达式相关知识:优先级运算顺序为算术运算符>位运算符>比较运算符>成员/身份运算符>逻辑运算符>赋值运算符优先级相同,大部分运算符从左到右计算(左结合)a+b+c——(a+b)+c但幂运算和赋值运算在优先级相同情况下为从右到左计算(右结合)a**b**c——a**(b**c)a=b=c——a=(b=c)任何复杂的表达式均可通过()明确优先级示例2.2运算符与表达式综合练习(2-ex-2.py)任务描述定义整型变量first_value和second_value,分别赋值为5和3。计算并打印first_value与second_value的和、乘积、浮点除法(保留结果为浮点数)和整数除法的结果。比较first_value与second_value,并打印first_value是否大于second_value以及second_value是否大于等于first_value的布尔值结果。将first_value和second_value的类型改为字符串,并分别赋值为"Hello"和"World"。连接这两个字符串后打印结果。示例2.2运算符与表达式综合练习(2-ex-2.py)试一试2.1圆的面积与周长计算(2-try-1.py)任务描述定义一个变量circle_radius,用于接收圆的半径的输入(半径取值范围0<circle_radius<=5)。计算这个圆的面积与周长(π取3.14)。将圆的面积和周长分别赋值给变量circle_area和circle_perimeter,并按以下要求格式化输出(所有格式化输出均要求保存两位小数)。输出1:周长为---circle_perimeter---。输出2:面积为****circle_area。输出3:周长与面积的乘积为circle_perimeter*circle_area。试一试2.1圆的面积与周长计算(2-try-1.py)项目效果回顾项目拆解任务1:效果展示在“Python-code”文件夹中为“项目2_原始素材”文件夹建立一个副本,命名为“项目2”打开项目2的unit2.py文件,查看各数据类型初始值,如右图所示。打开项目2的main.py文件,单击右上角“在专用终端中运行Python文件”在终端通过“Ctrl+单击”打开网址::5000查看效果。任务1:实现要求在项目2的unit2.py中更改各变量的值,如右图所示。保存更改并刷新网页。任务1:实现要求任务2:效果展示在“项目2”文件夹的main.py中更改各变量的值,如右图所示。保存更改并刷新网页。任务2:实现要求思考:若要实现右图所示“14%”的数值显示,应该修改哪里的代码?任务2:实现要求THANKYOU主讲:吴雪飞主讲:吴雪飞项目3处理工业温度数据知识回顾在工业视觉缺陷检测的实际场景中,除了基本数据类型的显示需求外,还需对各类环境参数(如厂房温度、湿度、亮度、噪声等)进行动态监测与统计,以确保生产流程的稳定性。基于此需求,如何通过编程技术实现数据的自动化处理与分析,成为工业软件开发中的典型任务。项目引入项目3将开发一个“工业温度数据处理器”数据输入支持从网页界面输入温度数据列表;异常判断根据正常值范围判断输入数据中的异常值(包括温度过高或过低的情况);统计分析对正常温度数据进行计算,得出总和与平均值,并统计异常数据在整体数据中的占比;实时展示将上述分析结果以直观的方式在网页上实时呈现项目描述项目效果代码按照书写顺序自上而下逐行执行,且无任何跳转或分支。例如,当程序读取用户输入、进行计算并输出结果时,每一步操作都严格遵循代码的物理排列顺序执行。在Python中,未使用条件判断或循环语句的代码均属于顺序结构如变量赋值(a=5)、数学运算(b=a+3)和函数调用(print(b))等操作均依序进行。这种结构体现了计算机“逐条解析”的底层逻辑,是理解复杂控制流程(如分支、循环)的基础。需要注意的是,即便后续学习其他结构,其内部的代码块(如if语句下的操作)仍遵循顺序执行规则。相关知识:顺序结构单分支结构if判断条件:
语句块相关知识:分支结构双分支结构if判断条件:
语句块1else:
语句块2相关知识:分支结构多分支结构if判断条件1:
语句块1elif判断条件2:
语句块2...elif判断条件n:
语句块nelse:
语句块n+1相关知识:分支结构任务描述定义整型变量ticket,接收输入是否购买高铁票(0表示未购买;1表示购买)。定义整型变量safe,接收输入是否通过安检(0表示未通过;1表示通过)。按照以下步骤进行判断,并输出相应的结果。购买了高铁票并且通过了安检,输出“请上车”。购买高铁票但没通过安检,输出“您不符合乘车安全标准”。未购买高铁票,输出“您未购票”示例3.1坐高铁(3-ex-1.py)示例3.1坐高铁(3-ex-1.py)嵌套分支结构if判断条件1:if判断条件2:
语句块1else:
语句块2else:if判断条件3:
语句块3else:
语句块4相关知识:分支结构示例3.2游戏角色技能伤害计算(3-ex-2.py)任务描述设计一个程序,根据角色的攻击力(attack)、技能类型(skill_type)和目标距离(distance)计算最终伤害值(damage),规则如下:近战技能(skill_type=1):如果距离<=2米:如果攻击力≥50,伤害=攻击力
×1.5(暴击);否则,伤害=攻击力
×1.2;否则,伤害=0(超出攻击范围)。远程技能(skill_type=2):如果距离<=10米:如果攻击力≥80,伤害=攻击力
×1.3(远程暴击);否则,伤害=攻击力
×0.9(距离衰减);否则,伤害=0(超出攻击范围)。输入3个角色属性值。输出最终伤害值(保留1位小数),格式如:“最终伤害:90.0”。示例3.2游戏角色技能伤害计算(3-ex-2.py)试一试3.1成绩等级评定(3-try-1.py)任务描述输入期末成绩(final_score)。输入平时成绩(regular_score)。根据期末成绩和平时成绩进行评级并输出。期末成绩大于90的情况下,平时成绩大于90,等级为A+,否则等级为A。期末成绩在80~90之间的情况下,平时成绩大于85,等级为B+,否则等级为B。期末成绩在70~80之间的情况下,平时成绩大于80,等级为C+,否则等级为C。其它情况为D。试一试3.1成绩等级评定(3-try-1.py)相关知识:循环结构while循环while条件表达式:
循环体示例3.3猜数字(3-ex-3.py)任务描述设定猜测的数字:target_number。定义猜测次数:attempts。定义循环退出条件。最多猜5次。game_over=False。使用while语句进行猜测数字大小。若输入quit则退出循环。若输入不在1~100之间的数,输出提示词“请输入一个1到100之间的整数。”若数字太小,输出提示词“太低了!”。若数字太大,输出提示词“太高了!”。猜对,输出提示词“恭喜你,猜对了!你总共猜了X次。”猜测次数用完,循环结束,输出提示词"很遗憾,你已经用完了X次机会。正确答案是X。"。示例3.3猜数字(3-ex-3.py)思路分析循环条件需同时满足两个条件游戏未结束游戏结束与否可通过设置布尔变量来控制(game_over=False)猜数次数未超过5次(attempts<5)循环体内重点考虑game_over何时更新为True?attempts何时加1?情况多样,适合用多分支?嵌套分支?未在规定次数内猜出数字而退出循环时,需要给出信息提示条件如何写?示例3.3猜数字(3-ex-3.py)相关知识:循环结构for循环for变量in可迭代对象:
循环体可迭代对象任何支持迭代的对象(如列表、字符串、字典、范围range()等)。每次迭代从中取出一个元素,直到元素耗尽。range函数range([start],end,[step])start为初始值,默认值为0end为终值step为步长,默认值为1start和step均可省略生成从start到end,以step为步长的整数序列range(5)——>0,1,2,3,4range(0,10,2)——>0,2,4,6,8range(10,0,-1)——>10,9,8,7,6,5,4,3,2,1相关知识:循环结构for循环举例:打印输出1到10之间所有偶数的和相关知识:循环结构嵌套循环结构循环里面再放一个循环,就像时钟的时针和分针外循环走1步,内循环走完整1圈就像时针走1小时,分针要走60分钟相关知识:循环结构嵌套循环结构举例:九九乘法表外层循环控制行(i)内层循环控制列(j)相关知识:跳转结构break语句用于立即终止循环,跳出循环体,并继续执行循环后面的代码无论循环条件是否为真,break语句后的代码都不会再执行若循环为嵌套循环,则break语句只跳出当前循环相关知识:跳转结构continue语句用于跳过当前循环的剩余部分,并立即开始下一次循环迭代若为while循环,则重新检查循环条件若为for循环,则取下一个迭代变量示例3.4打印2~50之间的所有素数(3-ex-4.py)任务描述循环遍历2~50的范围。定义一个变量用于标记是否为素数。循环判断是否为素数,如果是,则打印输出。思路分析外层循环用于确定素数范围。内层循环用于确定素数。从2遍历到x-1(更优化的范围是2到sqrt(x))判断每个数是否能被x整除若有一个数能被x整除,则该数x就不是素数利用break语句跳出当前循环,进入外层循环的下一次迭代若内层循环结束都没有能被整除的数,则该数即为素数。示例3.4打印2~50之间的所有素数(3-ex-4.py)importmath......forninrange(2,int(math.sqrt(x))+1)或forninrange(2,int(x**0.5)+1)相关知识:异常处理概念异常是指程序运行时发生的错误或意外情况(如除零、文件不存在等),它会中断正常流程。Python通过异常对象传递错误信息,开发者可以捕获并处理这些异常,使程序继续运行或优雅退出。区分语法错误和运行时异常语法错误(编译时)print("Hello"#缺少右括号运行时异常num=int("abc")#ValueError相关知识:异常处理基本语法(try/except)try:#可能出错的代码[代码逻辑]exceptErrorType:#出错时的处理[异常处理代码]为前面多分支结构中的示例代码添加异常处理结构相关知识:异常处理异常类型触发场景典型错误信息示例代码NameError访问未定义的变量或函数name'x'isnotdefinedprint(undefined_var)TypeError操作或函数应用于不兼容类型的对象unsupportedoperandtype(s)for+:'int'and'str'10+"20"ValueError函数接收到类型正确但值不合法的参数invalidliteralforint()withbase10:'abc'int("abc")IndexError访问序列(列表、元组等)中不存在的索引listindexoutofrangelst=[1,2];print(lst[3])KeyError访问字典中不存在的键'key_name'd={'a':1};print(d['b'])ZeroDivisionError数学运算中除数为零divisionbyzeroprint(10/0)ImportError导入模块失败(模块不存在或路径错误)Nomodulenamed'module_name'importnon_existent_moduleAttributeError访问对象不存在的属性或方法'str'objecthasnoattribute'append's="hello";s.append("!")FileNotFoundError尝试打开不存在的文件Nosuchfileordirectory:'file.txt'open("nonexistent.txt")PermissionError无权限访问文件或目录Permissiondenied:'file.txt'open("/root/.bashrc")(Linux下无权限)SyntaxError代码语法错误invalidsyntaxprint("Hello"(缺少闭合括号)IndentationError缩进错误(属于SyntaxError的子类)expectedanindentedblockdeffunc():
print("Noindent")相关知识:异常处理高级异常处理try:#可能引发异常的代码块[代码逻辑]exceptSpecificError1:#处理特定异常类型1[异常处理代码]exceptSpecificError2:#处理特定异常类型2[异常处理代码]except(ErrorType3,ErrorType4)ase:#同时处理多种异常类型[异常处理代码]exceptExceptionase:#处理其他所有异常[异常处理代码]else:#当try块没有引发异常时执行[代码逻辑]finally:#无论是否发生异常都会执行#常用于资源清理[代码逻辑]相关知识:异常处理高级异常处理为前面循环结构示例代码添加完整异常处理结构项目拆解任务1:效果展示任务1:实现要求在“Python-code”文件夹中为“项目3_原始素材”文件夹建立一个副本,命名为“项目3”打开“项目3”文件夹,在unit3.py文件的main函数中,实现以下要求使用for循环,遍历数组nums。使用if判断异常值。使用result记录异常值的数量运行main.py文件任务2:效果展示任务2:实现要求打开“项目3”文件夹——templates文件夹——index.html文件,在“el-radio-group”标签下方,新增“sum”和“average”的“el-radio”部分代码,并修改“error”的“el-radio”代码,并保存文件。任务2:实现要求在unit3.py文件的main函数中,增加代码实现以下要求定义三个变量分别记录:正常值数量。异常值数量。正常值总和。使用for和if统计三个值。使用if判断type类型并计算:type为sum时,结果为正常值总和。type为error时,结果为异常值的占比。type为average,结果为正常值的均值保存文件并刷新网页。THANKYOU主讲:吴雪飞项目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字符序列的不可变有序容器,专门用于存储和处理文本数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路工程施工质量保证体系及质量保证措施
- 图书馆安全隐患排查评估整治技术指南(2025年版)
- 2026年施工用电安全规范考试试卷及答案
- 2026年工程质量监理知识题库及答案
- 早期康复护理的评估方法
- 消化系统疾病的护理与跨文化护理
- 消化系统疾病的护理与护理模式创新
- 110报警服务指南
- 护理中的批判性思维与职业发展
- 乌龟晒背灯距离调节操作手册
- 阿司匹林应用指南2025年版
- 卵巢早衰的课件
- 2025长三角新材料行业市场供需现状投资评估规划分析研究报告
- 园林景观品质第三方评估(可编辑)
- 湖南省生地会考真题卷岳阳市2025年及答案
- 数据库系统概论(泰山学院)知到智慧树网课答案
- 南部隔墙工程施工方案
- 2025年食品工业报告4
- 接触器的电工知识培训课件
- 2025年浙江高考数学试题及答案详解
- 招标安全培训课件
评论
0/150
提交评论