版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目七:异常处理与程序调试01项目导读与目标🎯项目背景:聚焦工业机器人日常监测的高可靠性场景,探索保障系统稳定运行的关键技术。🎓核心目标:构建“发现-捕获-处理”的知识闭环,提升代码健壮性设计能力与工程素养。02任务7.1·系统异常捕获与处理•错误分类:辨析语法错误、运行时错误与逻辑错误的差异。•异常捕获:掌握`try-except`核心结构,灵活应对程序崩溃风险。•资源管理:学习上下文管理器与`with`语句,优雅处理资源释放。03任务7.2·异常抛出与自定义•主动控制:使用`raise`语句在特定业务逻辑中主动抛出异常,终止错误蔓延。•业务定制:继承Python内置`Exception`类,开发贴合工业监测场景的专属异常类型。04实践与检测综合运用所学异常处理技术,开发一套完整的工业机器人运行状态监测系统。⚠️重点检测:系统容错性与代码规范性评估。项目导读:为什么学习异常处理?▍项目背景当软件系统需要在复杂不确定的环境中稳定运行时,异常处理机制提供了关键的容错能力,它是程序健壮性的重要保障。本项目将引导大家系统学习Python中的异常类型、捕获与处理方法,并将其应用于工业机器人日常监测的高可靠性场景。工程思维培养严谨负责的工程思维,学会预判潜在风险并建立容错机制,追求卓越的代码品质。核心技能掌握软件开发中保障系统稳定性的关键技术,为构建高可用、高可靠的应用打下坚实基础。职业素养树立在工业智能化进程中坚守安全底线的意识,培养对用户负责、对系统稳定负责的职业精神。本项目学习目标知识目标•阐述程序错误与异常的基本概念,说明常见异常类型及其产生原因。•描述`try-except`的结构与执行流程,解释异常捕获与处理的基本原理。•说明使用`raise`语句主动抛出异常的方法,以及自定义异常类的定义规则。能力目标•能运用异常捕获与处理机制,对工业机器人监测程序中的潜在错误进行有效管理。•能根据特定业务需求自定义异常类,并合理使用`raise`语句抛出异常,提升程序容错性与健壮性。素养目标•在程序开发中培养“预见风险、防御性编程”的工程思维与严谨的编码习惯。•树立在工业智能化进程中,坚守系统安全底线、追求卓越代码品质的职业精神。任务7.1:完成系统异常的捕获和处理01.程序错误类型识别并区分语法错误、运行时错误和逻辑错误,是排查程序问题的第一步。02.异常的类型了解Python内置的常见异常(如TypeError,ValueError等)及其对应的应用场景。03.异常的捕获掌握try-except系列结构,为可能出错的代码构建一张安全网,确保程序不崩溃。04.异常的处理与管理学习使用上下文管理器和with语句,在发生异常时也能优雅、安全地管理系统资源。程序错误类型程序错误是指在代码编写或运行过程中出现的不符合预期行为的情况。根据错误发生的时机和性质,通常将其分为三大类别:语法错误SyntaxErrors•违反编程语言的基本语法规则,如拼写错误、符号缺失。•在程序运行前即可被编译器/解释器检测出来。•最直接的后果:导致程序完全无法执行。运行时错误RuntimeErrors•代码语法完全正确,但在程序执行过程中触发的错误。•常见于:除以零、引用不存在的变量或文件。•行业术语中也常被称作“异常(Exceptions)”。逻辑错误LogicalErrors•程序能正常启动并运行,不会闪退或报错。•输出的结果与开发者预期的不符。•根源:算法设计缺陷、逻辑条件判断错误或边界情况未考虑周全。错误类型一:语法错误(SyntaxErrors)💡什么是语法错误?违反了编程语言的基本语法规则,类似于自然语言中的“病句”或“错别字”。计算机无法正确解析代码逻辑,导致无法理解程序员的意图。🔑核心特征编译期检测程序运行前即可发现错误阻断执行不修复则程序无法启动线索清晰报错信息通常包含错误行号和具体描述,容易定位#错误示例:变量命名规则冲突student1_score=852student_score=90#SyntaxError:变量名不能以数字开头📝错误解析:Python规定变量名(标识符)只能以字母或下划线开头,后续可以跟字母、数字或下划线。语法错误示例:缩进错误错误示例#错误:不一致的缩进级别def计算平均分(成绩列表):总分=sum(成绩列表)#缺缩进平均分=总分/len(成绩列表)#缩进不一致return平均分#缩进不一致成绩=[85,92,78,90]结果=计算平均分(成绩)核心分析Python是一门强制缩进的语言,缩进不只是代码美观的要求,更是定义代码块的语法规则。函数、循环、条件判断等逻辑体内部的代码必须保持统一的缩进级别(通常是4个空格)。如果缩进数量不匹配,Python解释器将无法识别代码结构,从而抛出:IndentationError正确写法#正确:统一缩进4个空格def计算平均分(成绩列表):总分=sum(成绩列表)平均分=总分/len(成绩列表)return平均分成绩=[85,92,78,90]结果=计算平均分(成绩)print(结果)#输出:86.25错误类型二:运行时错误(RuntimeErrors)💡什么是运行时错误?程序的语法完全正确,可以顺利通过编译或解释器的语法检查并开始执行,但在执行过程中因特定操作或条件触发的错误。这类错误在编程领域也被专业地称为“异常(Exceptions)”。检测时机程序运行期间,而非代码编写或语法检查阶段触发条件非必然发生,通常由非法输入或临界资源缺失导致严重后果若未捕获处理,会导致程序异常终止并退出“它像一颗隐藏在逻辑中的定时炸弹”典型示例:除零错误(ZeroDivisionError)当分母为0时,数学逻辑无法运算,触发系统级运行时错误。#计算平均分的函数,未做空列表判断
def计算平均分(成绩列表):
总分=sum(成绩列表)
平均分=总分/len(成绩列表)#潜在风险点
return平均分
#调用:传入一个空列表
空成绩表=[]
print("最终平均分:",计算平均分(空成绩表))>>>ZeroDivisionError:divisionbyzero运行时错误示例:索引越界(IndexError)错误代码示例#错误示例:列表索引越界
学生名单=["张三","李四","王五"]
#正常访问索引0
print("第一名:",学生名单[0])
#试图访问索引9(越界)
print("第十名:",学生名单[9])程序运行报错>第一名:张三
Traceback(mostrecentcalllast):
File"<stdin>",line7,in<module>
IndexError:listindexoutofrange
#翻译:索引错误,列表索引超出范围分析与预防方案列表索引从0开始。当访问的索引值大于列表最大索引时,会触发IndexError。常见于循环边界设置错误或未验证用户输入。✅预防:访问前先检查索引范围
index=9
if0<=index<len(学生名单):
print(学生名单[index])
else:
print("索引无效,拒绝访问")错误类型三:逻辑错误(LogicalErrors)什么是逻辑错误?程序能正常运行并产生结果,但结果与预期不符。这类错误通常源于程序员的思维漏洞、逻辑判断失误或算法设计的缺陷。🔍核心特征程序行为正常不抛出异常
执行流程完整结果偏差输出与预期
逻辑不符排查难度高需业务逻辑分析
和详细验证💡典型示例:循环边界错误#错误示例:循环范围少了一个元素defcount_excellent(scores,threshold=85):cnt=0#BUG:range(0,len-1)不包含最后一个元素foriinrange(0,len(scores)-1):ifscores[i]>=threshold:cnt+=1returncnt#输出结果:4(正确答案应为5)❌错误分析:代码中使用了`len(scores)-1`,导致最后一个成绩“95”被遗漏。这是一个典型的“差一错误(Off-by-oneerror)”。异常的类型什么是异常?异常是程序在正常执行流程中发生的意外或错误事件,它会中断程序的执行。在Python中,每种错误都被抽象为一个具体的异常类(ExceptionClass)的实例对象。这体现了Python“万物皆对象”的面向对象特性。处理的两个阶段1.异常引发(Raising)当程序运行检测到错误条件时,解释器会自动创建并“抛出”对应的异常对象,中断当前流程。2.异常处理(Handling)通过`try-except`代码块主动拦截抛出的异常,防止程序崩溃,并进行针对性的补救操作。Python异常层次BaseException├─SystemExit/KeyboardInterrupt└─Exception(核心基类)├─ArithmeticError→ZeroDivisionError├─LookupError→IndexError/KeyError├─NameError(变量未定义)└─TypeError(类型不匹配)常见异常类型:NameError什么是NameError?当Python解释器在当前作用域中,无法找到你尝试访问的变量或函数名称时,就会引发这个异常。异常分析与预防通常由变量/函数名拼写错误、或者在错误的作用域(如函数外部访问内部变量)引起。
养成良好的命名习惯和代码审查习惯,可有效避免。💻代码示例:成绩统计print("学生成绩统计系统")defcalc_avg(scores):total=sum(scores)avg=total/len(scores)returnavgscores=[85,92,78,90,88]#错误点:拼写错误(avg_value->avg)print(f"平均分:{avg_value}")❌运行报错(Terminal)Traceback(mostrecentcalllast):File"main.py",line10,in<module>print(f"平均分:{avg_value}")NameError:name'avg_value'isnotdefined💡提示:
Python告诉你,它不知道'avg_value'这个名字是什么。检查拼写,正确变量名应为'avg'。常见异常类型:ZeroDivisionError什么是除零错误?当程序执行数学上的除法或取模运算,且第二个操作数(即除数)为0时,Python解释器会主动抛出该异常。💡编程最佳实践:
不要被动等待系统报错,在进行除法运算前主动检查除数,抛出更具业务意义的错误信息,能有效提升代码健壮性。📝代码示例:课程容量计算中的主动防护def计算选课率(已选,容量):
if容量==0:
raiseValueError("容量不能为0")#主动抛出异常
return(已选/容量)*100
#调用函数并捕获异常...💻运行结果:
高等数学输入错误:课程容量不能为零常见异常类型:IndexError索引越界错误定义:当尝试访问序列(如列表list、元组tuple)中不存在的索引时,Python解释器会抛出此异常。通俗理解:就像一个只有5个抽屉的柜子,你非要拉开第6个抽屉找东西,柜子当然会“报错”啦!应对方案:使用try-except代码块进行异常捕获,或在访问前检查索引范围。classroom_roster.pyclass班级花名册:def__init__(self):self.学生名单=["张三","李四","王五"]def安全查询(self,学号):try:returnself.学生名单[学号]exceptIndexError:return"⚠️查无此人(索引越界)"#---测试---roster=班级花名册()print(roster.安全查询(2))#正常:王五print(roster.安全查询(5))#异常:查无此人常见异常类型:TypeError什么是TypeError?当操作或函数应用于不适当类型的对象时引发的异常。简单来说,就是“给错了东西的类型”。例如:试图把一个字符串和一个数字相加,或者给一个需要列表参数的函数传入了整数。💡最佳实践:在编写关键业务函数时,主动检查输入参数的类型并抛出清晰的TypeError,可大幅降低调试难度。📝代码示例:学生信息处理中的类型校验def计算年龄百分比(当前年龄,总年龄列表):#主动进行类型检查ifnotisinstance(当前年龄,(int,float)):raiseTypeError(f"年龄应为数字,得到{type(当前年龄)}")ifnotisinstance(总年龄列表,list):raiseTypeError(f"需传入列表,得到{type(总年龄列表)}")...#计算逻辑省略#测试:错误地传入整数100而非列表,触发异常try:计算年龄百分比(19,100)exceptTypeErrorase:print(f"捕获异常:{e}")#输出清晰的错误信息异常的捕获什么是异常捕获?异常捕获的本质是在程序执行过程中预先设置“安全网”,当特定错误发生时能够及时拦截并采取相应处理措施,而不是让程序直接终止。它赋予了程序“自我修复”的能力。提高程序健壮性防止因单个模块的局部错误,导致整个软件系统崩溃,保障核心功能可用。改善用户体验避免向用户暴露晦涩的代码报错信息,提供友好、可理解的提示和恢复指引。便于定位调试配合日志记录,精准还原异常场景和错误堆栈,帮助开发者快速定位问题根源。资源安全管理确保在发生异常中断时,打开的文件、网络连接、数据库句柄等资源能被正确释放,避免资源泄漏。💡在Python中,我们主要通过try-except-finally-else语法结构来实现完整的异常捕获与处理逻辑。捕获结构一:try-except语法格式try:#可能引发异常的代码块
risky_operation()except[异常类型as异常对象]:#异常处理代码块
handle_exception()执行流程01.Python首先执行try子句中的代码。02.若无异常发生,except子句将被直接忽略。03.若执行过程中触发异常,程序将立刻跳转到except块。04.仅当异常类型与except声明的类型匹配时,才会执行对应的处理逻辑。实战示例#场景:计算平均分防异常defavg_score(scores):try:
returnsum(scores)/len(scores)exceptZeroDivisionError:
print("错误:列表为空")
return0exceptTypeError:
print("错误:类型不支持")
return0捕获结构二:try-except-else语法格式try:#可能引发异常的代码risky_operation()exceptExceptionTypease:#异常处理逻辑handle_error(e)else:#无异常时的处理逻辑normal_processing()执行逻辑与优势✅严格的触发条件
`else`子句中的代码,只有在`try`代码块中**没有发生任何异常**时才会执行。✨代码结构优化
它将“正常业务流程”与“异常处理逻辑”完全物理分离,显著提升代码可读性与维护性。示例:资源加载优化def加载课程资源(课程编号):try:if课程编号=="CS101":资源={"课件":"Python基础.pdf"}else:raiseFileNotFoundErrorexceptFileNotFoundErrorase:print(f"加载失败:{e}")returnNoneelse:print("加载成功,准备解析...")return资源捕获结构三:try-except-else-finally核心语法结构try:#可能引发异常的操作operation_with_resources()exceptExceptionTypease:handle_exception(e)else:process_normally()#无异常时finally:cleanup_resources()执行逻辑与作用必执行的“保险”无论try块中是否发生异常,也无论异常是否被捕获,finally块中的代码最终都会被执行。资源清理专用常用于释放关键资源:如关闭打开的文件、释放网络连接、释放锁等,防止资源泄漏。实战:学生档案访问def安全访问学生档案(学号):print(f"准备访问学号:{学号}...")try:if学号=="2025001":print("读取档案信息成功")else:raiseValueError("不存在")exceptExceptionase:print(f"错误:{e}")finally:print("执行资源清理:关闭档案句柄")1.4异常的处理:上下文管理器什么是上下文管理器?Python中管理资源分配与释放的重要机制。它通过定义资源的生命周期,确保即使在代码发生异常的情况下,打开的文件、网络连接或锁等关键资源也能被正确释放,避免资源泄漏。with语句:优雅的语法糖使用上下文管理器最推荐的简洁方式。它会自动在代码块开始前调用资源获取方法,在代码块结束时(无论正常结束还是发生异常)自动调用资源释放方法,省去了繁琐的try/finally结构。#传统try-finally方式(繁琐)file=None
try:
file=open("data.txt","r")
content=file.read()
finally:
iffile:#确保文件对象存在
file.close()#手动关闭#with语句(简洁且安全)#代码块结束时,文件自动关闭,无需手动close()
withopen("data.txt","r")asfile:
content=file.read()
print(content)
#此处文件对象file已被安全关闭自定义上下文管理器核心实现逻辑创建一个自定义上下文管理器,只需定义一个包含`__enter__()`和`__exit__()`两个“魔术方法”的类即可。📌资源初始化:`__enter__(self)`进入上下文时自动调用,返回值会赋值给`with...as`后的变量,用于连接数据库、打开文件等操作。🧹资源清理:`__exit__(...)`离开上下文时自动调用,即使发生异常也能确保执行。可接收异常信息,并用于关闭连接、释放锁等操作。示例:学生成绩文件管理器class成绩文件管理器:def__init__(self,fn,mode='r'):self.fn,self.mode=fn,modedef__enter__(self):self.fp=open(self.fn,self.mode,encoding='utf-8')returnself.fp#返回给as变量def__exit__(self,exc_type,*_):ifself.fp:self.fp.close()#使用:with成绩文件管理器('scores.txt')asf:...课堂训练7.1练习一:工业机器人传感器数据异常监测▍任务背景监测工业机器人传感器数据是否在正常范围内,保障设备运行安全与稳定。▍正常范围标准•关节温度:0~100℃•电机电流:0~20A•运行速度:0~2m/s▍编码任务要求1.定义一个传感器数据监测函数`monitor_sensor()`。
2.使用`try-except`语句捕获并处理数值超出范围的异常。
3.模拟输入多组测试数据,输出包含异常详情的检测报告。练习二:工业机器人运动轨迹参数验证▍任务背景在执行轨迹规划前,需验证输入参数是否合法,避免因错误参数导致设备碰撞或失控。▍参数硬性限制•坐标范围:-1000~1000mm•最大速度:≤500mm/s
•关节角度:±180°(超出范围视为异常)▍编码任务要求1.定义参数验证函数`validate_trajectory()`。
2.运用自定义异常类或通用异常机制,捕获并处理越界参数。
3.返回参数验证的布尔结果及详细的错误提示信息。任务7.2:完成异常的抛出和自定义1.使用`raise`语句学习如何在代码逻辑中主动触发并抛出异常,以实现防御性编程,及时阻断错误逻辑的蔓延,让代码更健壮。2.自定义异常类学习如何继承内置异常类,创建符合项目特定业务场景和逻辑的专属异常类型,提升错误信息的可读性和针对性。3.综合应用与实践通过课堂编程练习与小型项目实战,将异常抛出技巧与自定义异常结合,综合运用以解决实际开发中的复杂问题。使用raise语句抛出异常为什么要主动抛出?与被动等待系统报错不同,raise允许开发者在特定条件下主动中断程序流程,转入异常处理。这体现了“预防优于治疗”的防御性编程思想,能尽早发现并解决潜在问题。💡典型场景:检测到无效输入、业务规则不满足,或执行高危操作前的主动拦截。raise语句语法#1.抛出指定异常类实例(推荐)
raiseValueError("输入值无效")#2.仅使用异常类
#(会自动调用默认构造函数)
raiseValueError#3.重新抛出当前异常
#(在except块中使用)
raise示例:验证学生成绩def验证学生成绩(成绩):#检查类型是否合法ifnotisinstance(成绩,(int,float)):raiseTypeError("必须是数字")#检查数值范围是否合法if成绩<0or成绩>100:raiseValueError("需在0~100之间")returnTrueraise语句示例解析学生成绩输入验证系统·异常处理实战#定义验证函数:根据规则主动抛出异常def验证学生成绩(成绩):ifnotisinstance(成绩,(int,float)):raiseTypeError("成绩必须是数字类型")if成绩<0or成绩>100:raiseValueError(f"成绩必须在0~100范围内,当前值:{成绩}")if成绩<60:raiseWarning(f"成绩不及格:{成绩}分")returnTrue#主逻辑:遍历并捕获不同类型的异常def处理成绩输入():#模拟一组包含不同错误的输入数据测试成绩=[85,"九十",105,45,92]fori,成绩inenumerate(测试成绩,1):print(f"---处理第{i}个成绩:{成绩}---")try:验证学生成绩(成绩);print("✅验证通过")exceptTypeErrorase:print(f"❌类型错误:{e}")exceptValueErrorase:print(f"❌数值错误:{e}")exceptWarningase:print(f"⚠️警告信息:{e}")自定义异常为什么要自定义?🎯语义明确:
异常名称直接反映业务错误的本质,例如“成绩范围异常”比通用的ValueError更直观。📦信息丰富:
可封装更多与错误相关的上下文数据,便于定位和排查问题。🔧处理精确:
支持针对特定业务场景的异常进行精确捕获和针对性处理。设计原则01.继承体系
自定义异常类应继承Python内置的`Exception`类(推荐)或其子类,确保能被try-except正常捕获。02.规范命名
遵循Python命名惯例,类名通常以"Error"或"Exception"结尾,以清晰标识其用途。03.传递信息
在`__init__`方法中调用父类构造方法,并可根据需要添加额外的属性来存储错误上下文。基本语法结构classScoreError(Exception):"""成绩范围异常类"""def__init__(self,msg,val):#调用父类方法super().__init__(msg)#添加额外属性存储错误值self.score=val自定义异常示例:学生成绩管理01.定义异常类体系class成绩异常(Exception):"""成绩相关异常的父类,用于统一捕获"""passclass成绩格式异常(成绩异常):def__init__(self,val,type):super().__init__(f"值'{val}'非有效{type}")class成绩范围异常(成绩异常):def__init__(self,val,min,max):super().__init__(f"值{val}超出范围[{min},{max}]")02.逻辑校验与异常捕获def验证学生成绩(score):ifnotisinstance(score,(int,float)):raise成绩格式异常(score,"数字类型")ifnot(0<=score<=100):raise成绩范围异常(score,0,100)returnTrue#测试逻辑try:验证学生成绩("优秀")except成绩格式异常ase:print(f"错误:{e}")课堂训练7.2:主动抛出与自定义异常练习一:工业机器人传感器数据异常监测与抛出▌任务背景:监测工业机器人运行状态,当采集到的数据超出设定的正常范围时,程序需主动抛出对应的异常信号。▌数据正常阈值:•关节温度:0~100℃|电机电流:0~20A|运行速度:0~2m/s▌编程任务要求:1.编写一个数据监测函数,在判定异常时使用Python的raise关键字主动抛出异常。
2.在主程序逻辑中,使用try-except语句块捕获并处理不同类型的异常。练习二:自定义工业机器人监测异常类▌任务背景:为工业机器人监测系统构建一套标准化、专业化的异常处理体系,而非使用通用的异常类型。▌定义异常类层级:•基类:RobotError(工业机器人异常,继承自Exception)
•子类:JointTempError,MotorCurrentError,VelocityError
(分别对应:关节温度异常/电机电流异常/运行速度异常)▌类设计要求:1.所有自定义异常类需包含公共属性:发生时间戳、机器人ID。
2.每个子类需包含具体的错误信息属性:错误阈值上限/下限、触发异常的当前测量值。项目实践:工业机器人运行状态监测系统实践背景随着工业4.0的到来,确保工业机器人的稳定运行至关重要。本项目要求开发一个简化的监测系统,实时监测机器人的关键参数,并在出现异常时及时预警,保障生产安全与效率。实践任务异常捕获与处理实时监测参数,捕获异常自定义异常类定义专属机器人异常类分级异常预警根据等级触发不同措施系统容错处理异常下保持基础可用性项目实践:需求分析正常运行参数范围关节温度监测阈值:20~75℃电机电流监测阈值:5~15A运行速度监测阈值:50~100m/s任务分解01定义自定义异常类创建工业机器人异常、关节温度异常、电机电流异常及运行速度异常类。02编写监测函数实现状态监测函数,传入机器人ID及关键参数,在函数内部进行参数校验并抛出对应异常。03编写主程序逻辑模拟生成机器人运行数据,调用监测函数,并使用try-except结构捕获异常并输出预警。代码实现:步骤1-定义自定义异常类importdatetimeclass工业机器人异常(Exception):"""所有工业机器人异常的父类,包含ID与时间戳"""def__init__(self,机器人ID,信息):self.机器人ID=机器人ID;self.时间戳=datetime.datetime.now().strftime("%Y-%m-%d%H:%M:%S")super().__init__(f"[{self.时间戳}][{self.机器人ID}]{信息}")class关节温度异常(工业机器人异常):#继承父类def__init__(self,ID,curr,min_,max_):#重写初始化方法msg=f"关节温度异常:{curr}℃(阈值:{min_}~{max_}℃)";super().__init__(ID,msg)class电机电流异常(工业机器人异常):def__init__(self,ID,curr,min_,max_):msg=f"电机电流异常:{curr}A(阈值:{min_}~{max_}A)";super().__init__(ID,msg)class运行速度异常(工业机器人异常):def__init__(self,ID,curr,min_,max_):msg=f"运行速度异常:{curr}m/s(阈值:{min_}~{max_}m/s)";super().__init__(ID,msg)代码实现:步骤2-编写监测函数monitor_robot_status.pydef监测机器人状态(机器人ID,温度,电流,速度):"""监测工业机器人的运行状态,并在参数异常时抛出相应的异常。"""#1.检查温度是否在[20,75]摄氏度范围内ifnot(20<=温度<=75):raise关节温度异常(机器人ID,温度,20,75)#2.检查电流是否在[5,15]安培范围内ifnot(5<=电流<=15):raise电机电流异常(机器人ID,电流,5,15)#3.检查速度是否在[50,100]RPM范围内,如正常则打印状态ifnot(50<=速度<=100):raise运行速度异常(机器人ID,速度,50,100)print(f"[{datetime.datetime.now().strftime('%Y-%m-%d%H:%M:%S')}][{机器人ID}]运行状态正常。")代码实现:步骤3-主程序逻辑主程序逻辑:数据模拟与异常捕获流程def主程序():prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政应诉演练方案范本
- 书房排烟改造方案范本
- 本科软件工程专业二年级《软件工程》课程“需求获取”专题教案
- 《锣鼓歌》(教案)-苏少版(五线谱)音乐一年级上册
- 八年级物理上册《长度的测量》精讲教案(第1课时)
- 初三数学中考专题复习:等腰三角形的性质、判定与综合应用导学案
- 北师大版小学二年级数学上册《有多少块糖》同数连加起始课教案
- 初中八年级地理上学期:基于区域认知与地理实践力的单元整合教学设计
- 初中八年级班主任工作家校共育“同心圆”知识清单
- 初三化学“科学探究”专题深度复习与能力建构教案
- 高中数学统计试题及答案
- 个体工商户登记备案申请书
- 氢吗啡酮西安黄文起
- 2025年重庆轨道交通集团招聘笔试参考题库含答案解析
- DB32-T 4289-2022 安全生产培训机构教学服务规范
- 2024年高考真题江苏卷化学试题(原卷版)
- 2023年广西高一学业水平合格性考试化学试卷真题(含答案详解)
- 水力发电设备防腐涂料施工合同
- 四川省凉山州2022-2023学年五年级下学期数学期末试卷(含答案)
- 汽车保险理赔(第四版)课件 项目7 车险事故车辆损失评估
- 多图中华民族共同体概论课件第十一讲 中华一家与中华民族格局底定(清前中期)根据高等教育出版社教材制作
评论
0/150
提交评论