版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目二:数据类型的应用——养老服务场景▍项目导读与目标场景引入:结合银发经济,运用Python数据类型解决健康指标计算、信息管理等养老服务问题。三维目标:掌握数字/列表/元组等数据类型操作(知识);实现数值计算与信息汇总(能力);树立隐私保护意识(素养)。▍项目任务清单•任务2.1:运用数字计算身体质量指数(BMI)•任务2.2:运用列表统计平均BMI•任务2.3:运用元组输出日常体检项目•任务2.4:运用字符串保护隐私•任务2.5:运用集合统计兴趣爱好•任务2.6:运用字典汇总人员信息课程大纲概览八大项目·循序渐进·构建完整的Python知识体系01搭建Python开发环境准备工作·安装配置·编写第一行代码02数据类型的应用核心基础·变量与常量·数值/字符串/布尔类型03流程控制语句的应用程序逻辑·条件判断·循环结构·分支控制04函数的应用代码复用·定义与调用·参数传递·递归函数05面向对象程序设计的应用高级编程范式·类与对象·封装继承多态06文件与目录的应用数据持久化·文件读写·目录管理·路径操作07异常的应用程序健壮性·异常捕获·抛出与自定义异常08编程辅助工具的应用开发效率·调试技巧·虚拟环境·包管理工具项目一:搭建Python开发环境“人生苦短,我用Python”简洁·高效·优雅设计哲学推崇“优雅”、“明确”、“简单”的理念,代码可读性极高,语法逻辑非常接近人类自然语言。应用广泛Web开发、数据分析、人工智能、自动化运维等热门领域的首选语言,职业前景广阔。跨平台运行真正实现“一次编写,到处运行”,完美兼容Windows、macOS和Linux三大主流操作系统。“自带电池”的强大生态拥有极其丰富的标准库和第三方库,很多复杂功能无需从零造轮子,极大地提升了开发效率。活跃的开发者社区全球拥有庞大的开发者群体,提供了海量的学习资源、教程和开源项目,遇到问题能迅速找到解决方案。项目一:搭建Python开发环境1.2Python的下载与安装📢官方下载渠道:请访问官网/downloads/获取最新稳定版本。强烈建议选择Python3.10及以上版本,以获得更好的性能与功能支持。Windows安装指南1.下载完成后,运行安装程序。2.【关键操作】务必勾选底部的“AddPython.exetoPATH”选项。3.选择“InstallNow”默认安装,或“Customize”自定义路径。macOS安装指南1.在官网下载适用于macOS的.pkg格式安装包。2.双击安装包启动安装程序。3.全程点击“继续”或“同意”,直至安装完成即可。系统通常会自动配置好环境变量。Linux安装指南1.大多数主流发行版已预装Python。打开终端检查版本。2.如需安装/更新(Debian/Ubuntu):
sudoaptupdate&&sudoaptinstallpython3python3-pip1.3验证安装与第一个程序验证安装(CheckInstallation)01.打开终端在Windows打开“命令提示符(CMD)”或PowerShell;在macOS/Linux打开“终端”应用。02.检查Python版本输入指令,查看版本号确认安装成功:
python--version或python3--version03.检查包管理器验证pip是否可用:
pip--versionHello,World!(第一个程序)1.新建一个文本文件,重命名为hello.py(注意后缀名是.py)2.用任意文本编辑器打开,写入代码:3.打开终端,使用cd命令切换到文件所在目录。4.输入命令运行,观察输出结果。print("Hello,Python!")#运行命令:pythonhello.py1.4选择你的开发工具(IDE)IDLEPython自带的简易开发环境,无需额外配置。适合:初学者快速入门、验证小段代码逻辑。VisualStudioCode推荐微软开源的轻量级编辑器,插件生态丰富。亮点:智能代码补全、强大的调试功能、Git版本控制集成。PyCharmJetBrains出品的专业级PythonIDE。亮点:深度代码分析与重构,社区版完全免费,非常适合学生使用。1.5虚拟环境:项目隔离的最佳实践为什么需要虚拟环境?不同的Python项目往往依赖不同版本的第三方库。虚拟环境为每个项目提供一个独立的隔离环境,安装包互不影响,从根本上避免“版本冲突”问题。创建虚拟环境•使用Python自带模块(推荐):
python-mvenvmyenv•或使用Conda(数据科学):
condacreate-nmyenv激活虚拟环境•Windows系统(CMD/PowerShell):
myenv\Scripts\activate•macOS/Linux终端:
sourcemyenv/bin/activate退出虚拟环境无论在什么操作系统下,只需在激活后的终端输入简单的命令即可退出:deactivate项目二:数据类型的应用——养老服务场景2.1项目导读与目标📌场景引入在银发经济蓬勃发展的背景下,学习如何运用Python数据类型解决养老服务中的实际问题,涵盖健康指标计算、老人信息系统化管理以及敏感隐私数据的加密保护等关键场景。🎯知识目标透彻掌握Python六大核心数据类型:数字、列表、元组、字符串、集合与字典的定义、各自的特性以及常用的增删改查操作方法。🛠️能力目标能够灵活运用不同的数据类型,对养老服务中的健康数据进行快速数值计算,对老人档案进行结构化信息管理,并能对各类数据进行高效的汇总与分析。❤️素养目标树立严谨的数据隐私保护意识,规范处理老年人敏感信息;培养利用编程技术赋能养老产业,服务社会、回馈长者的技术责任感与人文关怀。项目二:数据类型的应用任务2.1:运用数字计算身体质量指数(BMI)整型(int):表示整数,如10,-5。支持二进制(0b1010)、八进制(0o12)、十六进制(0xA)等多种进制。浮点型(float):包含小数的数,如3.14,2.5e3(科学计数法)。注意:浮点数运算时可能存在微小的精度误差。布尔型(bool):只有True和False两个值,用于逻辑判断。在算术运算中,True被视为1,False被视为0。复数型(complex):由实部和虚部组成,形式为a+bj,例如3+4j。主要用于科学计算和工程领域。在养老服务场景中,我们常使用浮点型(float)和整型(int)处理身高、体重等数据,结合逻辑判断中的布尔型(bool),可高效完成健康评估。项目二:数据类型的应用任务2.1:课堂训练—计算老人BMI💡任务背景:为养老机构老人计算BMI,评估其身体质量与健康状况。📐计算公式:BMI=weight/(height**2)🚀实现步骤1.输入:使用input()获取老人的身高(米)与体重(千克)2.转换:使用float()将输入的字符串转为可计算的浮点数3.计算:按照公式计算BMI值,注意运算顺序4.输出:使用print()格式化输出结果,保留两位小数Python代码示例#获取用户输入,转换为浮点数类型height=float(input("请输入老人的身高(米):"))weight=float(input("请输入老人的体重(千克):"))#计算身体质量指数(BMI)bmi=weight/(height**2)#格式化输出结果,保留两位小数print(f"老人的身体质量指数(BMI)为:{bmi:.2f}")项目二:数据类型的应用任务2.2:运用列表统计平均BMI列表定义(List)什么是列表?一种有序、可变的容器。在Python中使用方括号[]来定义,元素之间使用英文逗号,分隔。示例:
bmi_list=[21.5,24.8,19.2]核心特点灵活且强大的数据结构•异构性:可同时存储数字、字符串、布尔值等任意类型的数据。•可变性:长度不固定,支持随时对列表中的元素进行增加、删除或修改操作。•有序性:列表中的元素有明确的顺序,可通过索引精确访问。常用操作🔍访问与修改:
使用索引定位:list[index]➕增加元素:
末尾添加append()/指定位置insert()✂️数据整理:
删除pop()/排序sort()/切片list[start:end]项目二:数据类型的应用——任务2.2:统计多位老人BMI任务背景随着老龄化社会的发展,社区需要定期为老人们进行健康体检。作为社区志愿者,你的任务是编写一个程序,统计5位老人的身体质量指数(BMI),并计算出他们的平均BMI,以便社区快速了解整体健康状况。实现思路1.数据准备:创建两个列表分别存储5位老人的身高和体重数据。2.初始化容器:创建一个空列表bmi_list,用于存放每位老人计算后的BMI值。3.循环计算:使用for循环同时遍历身高和体重列表,计算BMI并追加到bmi_list中。4.统计结果:利用sum()和len()函数计算所有BMI的总和与数量,从而求出平均值。代码示例#定义身高和体重列表heights=[1.65,1.70,1.75,1.60,1.80]weights=[60,65,80,50,75]bmi_list=[]#循环计算每位老人的BMIforh,winzip(heights,weights):bmi=w/(h**2)bmi_list.append(bmi)#计算并打印平均值avg=sum(bmi_list)/len(bmi_list)print(f"平均BMI为:{avg:.2f}")项目二:数据类型的应用任务2.3:运用元组(Tuple)输出日常体检项目元组定义与核心特性📝定义:一种有序且不可变的容器,使用圆括号`()`定义。🔒特点:一旦创建完成,内部元素不能被添加、删除或修改。这种“只读”特性非常适合保护重要数据,防止被意外篡改,例如:体检项目清单、系统配置参数等。常用操作与函数▶访问与遍历:支持通过索引访问`tuple[index]`;支持`for`循环遍历所有项目。🚫禁止操作:不能执行`append()`、`remove()`或`sort()`等改变内容的操作。🔍实用函数:计算长度`len()`,最值`max()`/`min()`,计数`count()`,查找索引`index()`。项目二:数据类型的应用任务2.3:课堂训练——固定体检项目输出任务背景在养老机构管理系统中,基础体检项目通常是固定且不允许随意修改的。请编写一段程序,将这些项目存储并输出给用户。实现思路1.存储:利用元组(tuple)存储体检项目,利用其“不可变”特性保障数据安全。
2.统计:使用len()函数快速获取体检项目的总数。
3.输出:使用for循环配合enumerate()遍历并格式化输出。
4.试错:尝试修改元组元素,观察TypeError以理解其不可变性。代码示例(Python)checkup_items=("血压测量","体温检测","心率监测","血糖检测","体重测量")
print(f"基础体检项目共{len(checkup_items)}项:")
forindex,iteminenumerate(checkup_items,1):
print(f"{index}.{item}")
#尝试修改元组,会触发TypeError
#checkup_items[0]="视力检查"项目二:数据类型的应用▍任务2.4:运用字符串保护隐私什么是字符串?定义:在编程中,字符串是由零个或多个字符组成的不可变序列,是处理文本数据的基础类型。定义方式:使用单引号''、双引号""包裹。若内容包含换行或单/双引号,推荐使用三引号''''''或""""""。索引与切片索引(Index):通过位置编号访问单个字符。
语法:str[index]。
例如:name[0]获取姓名首字。切片(Slice):截取子串,常用于隐私脱敏。
语法:str[start:end:step]。
例如:phone[:3]+'****'+phone[-4:]隐藏中间号码。常用方法与格式化核心处理方法:
•strip():去除首尾空格/换行
•split(sep):按分隔符拆分字符串
•replace(old,new):替换文本内容格式化输出(Python3.6+):
推荐使用f-string,简洁直观。
示例:f"欢迎您,{user_name}先生"项目二:数据类型的应用任务2.4:课堂训练——老人信息脱敏任务背景根据《个人信息保护法》,在展示老人信息列表时,为保护隐私安全,需对手机号、身份证号等敏感个人信息进行**脱敏处理**。脱敏规则📱手机号:显示前3位+后4位,中间替换为**。
🆔身份证号:显示前6位+后4位,中间替换为****。实现思路利用Python字符串的**切片(Slicing)**操作,分别提取需要展示的首尾部分,再与掩码字符串拼接,最终得到脱敏后的结果。#定义原始敏感信息变量phone,id_card=,#执行脱敏逻辑:切片+拼接masked_phone=phone[:3]+"****"+phone[-4:]masked_id=id_card[:6]+"******"+id_card[-4:]#打印结果print(f"脱敏手机号:{masked_phone}")#输出:130****5678print(f"脱敏身份证:{masked_id}")#输出:110105******1234项目二:数据类型的应用任务2.5:运用集合(Set)统计兴趣爱好集合定义Definition一种无序、且不包含重复元素的可变容器。在Python中,集合可以使用一对花括号{}或者内置函数set()来创建。核心特点Features✅自动去重:向集合添加已存在的元素时,集合内容不会发生改变,可用于快速清洗数据。⚡️高效查找:判断一个元素是否存在于集合中,比列表速度更快。🔀无序排列:元素无固定顺序,不能通过索引访问。常用操作Operations🆕添加与删除:
add(),update(),remove(),pop()🔢集合运算:
•并集(|)/交集(&)/差集(-)
•适合分析“共同爱好”、“独有爱好”项目二:数据类型的应用任务2.5:课堂训练——兴趣爱好去重与分析任务背景某养老机构需要统计所有老人的兴趣爱好,整理出一份完整的兴趣清单,同时要找出几位有代表性的老人共同喜欢的活动,以策划更符合大众需求的集体活动。实现思路1.将每位老人的兴趣列表转为集合(set)以实现个体去重。
2.利用集合并集(|)运算,汇总所有老人的兴趣,形成总清单。
3.利用集合交集(&)运算,快速定位老人们的共同兴趣。代码实现示例(Python)#定义三位老人的兴趣集合
grandma_wang={"书法","太极","编织","音乐"}
grandpa_li={"绘画","散步","书法","棋牌"}
aunt_zhang={"音乐","太极","园艺","书法"}
#1.并集:统计所有不重复的兴趣爱好
all_hobbies=grandma_wang|grandpa_li|aunt_zhang
print(f"所有兴趣:{all_hobbies}")
#2.交集:寻找共同兴趣(输出结果:{'书法'})
common=grandma_wang&grandpa_li&aunt_zhang
print(f"共同兴趣:{common}")项目二:数据类型的应用任务2.6:运用字典汇总人员信息什么是字典?定义:一种**无序**的键值对(`key:value`)集合,在Python中使用花括号`{}`进行定义。典型示例:person={"name":"张三","age":65}核心特点●查找高效:通过“键”可以快速定位到对应的“值”,不需要遍历所有元素。●键的约束:键必须是不可变类型(如字符串、数字、元组)且在字典中**唯一**,值则可以是任意类型。核心操作1.访问/增改:dict[key]=value2.安全访问:dict.get(key,default)3.循环遍历:`fork,vindict.items()`4.获取子集:`.keys()`取所有键,`.values()`取所有值项目二:数据类型的应用任务2.6:课堂训练——创建老人健康档案📝任务背景为社区的每一位老人建立一份包含姓名、年龄、身高体重、兴趣爱好及健康状况等多维信息的数字化健康档案,便于统一管理与快速查询。💡实现思路1.使用字典(Dictionary)作为核心容器,存储一位老人的所有相关属性。2.对于复杂信息,可使用“字典嵌套字典”或“字典嵌套列表”来结构化存储。3.推荐使用.get(key,default)方法来安全访问可能缺失的字段,避免报错。#1.定义字典:存储老人张建国的完整信息grandpa_zhang={"姓名":"张建国","年龄":72,"身高(m)":1.65,"体重(kg)":68.5,"兴趣爱好":["书法","太极","读书"],"是否有慢性病":True}#2.访问信息:直接索引vs安全get()方法print(f"姓名:{grandpa_zhang['姓名']}")print(f"性别:{grandpa_zhang.get('性别','未记录')}")#避免KeyError报错项目三:流程控制语句的应用3.1条件判断:if-elif-else核心作用赋予程序“思考”的能力,让它能根据不同的条件,选择执行不同的代码块,实现逻辑分支。标准语法结构ifcondition1:#条件1满足时执行
[代码块1]
elifcondition2:#条件2满足时执行
[代码块2]
else:#以上都不满足时执行
[代码块3]💡生活中的类比就像垃圾分类一样,根据垃圾的不同“属性”(可回收、厨余等),把它放入对应的“分支”(垃圾桶)中。实战:BMI体型判断bmi=25.5#设定一个BMI值
ifbmi<18.5:print("消瘦")
elifbmi<24.0:print("正常")
elifbmi<28.0:print("超重")#此案例将执行这一行
else:print("肥胖")项目三:流程控制语句的应用3.2循环结构:for循环核心作用遍历是For循环最核心的功能,它能像逐个翻看书页一样,依次取出可迭代对象中的每一个元素,并执行特定操作。适用对象:列表、元组、字符串、字典等序列类型数据。基础语法foriteminiterable:#执行循环体代码print(item)•item:每次循环取出的元素•iterable:待遍历的对象range()函数生成一系列整数,常用来控制循环次数。range(stop)
0~stop-1的整数序列range(s,e)
start~end-1的整数序列range(s,e,st)
按步长step生成序列实战示例nums=[1,2,3,4,5]total=0forninnums:total+=nprint("Sum:",total)计算列表中所有数字的总和。total作为累加器,循环每一次都将当前数字加到总和上。3.3循环结构:while循环核心作用与for循环不同,while循环不遍历序列,而是只要给定的条件表达式为真(True),就会持续重复执行其内部的代码块。适用场景:
不确定具体循环次数,但知道循环终止的条件。基本语法whilecondition:
#循环体代码
#注意:必须有改变条件的语句
#否则会陷入“无限循环”⚠️警告:确保循环体内有改变条件真假性的语句,避免死循环。示例:猜数字游戏#设定答案
ans=42
guess=0
#猜错继续猜
whileguess!=ans:
guess=int(input("猜一个数:"))
ifguess<ans:print("太小了!")
elifguess>ans:print("太大了!")
print("恭喜,猜对了!")💡分析:因为不知道用户要猜多少次,所以用while循环非常合适。项目三:流程控制语句的应用3.4循环控制:break,continue,elsebreak终止循环当执行到该语句时,会立即终止当前所在的整个循环结构,并跳出循环体,执行循环体之后的代码。continue跳过迭代跳过当前循环迭代中剩余的所有语句,直接进入下一次循环条件判断,不会终止整个循环。else循环子句与循环语句结合使用,仅在循环正常结束(即循环条件不满足而退出,且没有被break终止)时执行。💡实战示例需求:在列表中查找第一个偶数。若找到则打印并终止;若遍历完未找到,打印提示信息。numbers=[1,3,5,7,8,9]fornuminnumbers:ifnum%2==0:print(f"找到第一个偶数:{num}")#找到数字8时执行break#触发后直接跳出循环,不会执行elseelse:print("列表中没有偶数。")项目四:函数的应用4.1函数的定义与调用:从封装到复用核心概念:封装与复用函数是将一段特定功能的代码逻辑“打包”的方式。通过关键字def定义,将复杂逻辑隐藏在函数内部,对外提供简洁的调用接口,从而减少重复代码,降低维护成本。📌标准语法结构:deffunction_name(parameters):
"""Docstring:描述函数功能"""
#函数体:实现具体功能
returnresult#可选:返回计算结果实战示例:计算身体质量指数(BMI)defcalculate_bmi(weight,height):
bmi=weight/(height**2)
returnbmi
#调用函数
my_bmi=calculate_bmi(70,1.75)
print(f"我的BMI指数:{my_bmi:.2f}")项目四:函数的应用|4.2参数传递位置参数按定义顺序传递的参数,调用时的数量和顺序必须与函数定义严格匹配。关键字参数通过参数名传递的参数,调用时顺序可以任意调整,提高代码可读性。默认参数在定义函数时为参数指定默认值。调用时如果没有传入该参数,则使用默认值。可变长度参数●*args:收集位置参数,打包为元组。●**kwargs:收集关键字参数,打包为字典。💻综合代码示例defprint_info(name,age=18,*hobbies,**kwargs):print(f"姓名:{name},年龄:{age}")ifhobbies:print(f"兴趣:{hobbies}")ifkwargs:print(f"其他:{kwargs}")#调用函数print_info("张三",20,"篮球","编程",city="北京",major="CS")项目四:函数的应用4.3Lambda表达式(匿名函数)核心定义使用lambda关键字创建的一种小型、匿名的函数,没有函数名。基本语法lambda形参列表:表达式表达式必须是单行且有返回值主要特点适用于创建逻辑简单、短小且“一次性”使用的函数。常用场景作为参数传递给高阶函数,例如:
map(),filter(),sorted()💡代码示例项目五:面向对象程序设计的应用5.1类与对象:编程世界的“蓝图”与“实体”核心概念解析类(Class):创建对象的“蓝图”或“模板”。它定义了该类型对象共有的属性(数据)和方法(行为)。对象(Object):类的“实例”,是在内存中具体存在的实体。例如:“人类”是类,“张三”是对象。Python实现要点•定义:使用关键字class来声明一个类。•初始化:__init__()是构造方法,在创建对象时自动调用以初始化属性。•指代自身:self代表类的实例本身,必须作为实例方法的第一个参数。#定义Person类,模拟人类classPerson:def__init__(self,name,age):=name#实例属性:姓名self.age=age#实例属性:年龄defintro(self):#实例方法:自我介绍print(f"大家好,我是{},今年{self.age}岁。")#创建对象实例,调用方法user1=Person("张三",20);ro()项目五:面向对象程序设计的应用5.2继承与多态:代码复用与灵活扩展的基石继承(Inheritance)定义:一个类(子类/派生类)继承另一个类(父类/基类)的属性和方法,实现代码复用和功能扩展,体现“is-a”关系。Python语法:classChildClass(ParentClass):...多态(Polymorphism)定义:不同类的对象对同一消息(方法调用)做出不同响应。通常通过子类重写(Override)父类方法实现,提高程序的灵活性和可维护性。🐾代码示例:动物叫声模拟器#父类:定义通用接口
classAnimal:defspeak(self):pass#子类:继承并重写方法(多态体现)
classDog(Animal):defspeak(self):return"汪汪汪!"
classCat(Animal):defspeak(self):return"喵喵喵~"#统一调用逻辑
defmake_sound(animal):print(animal.speak())
make_sound(Dog())#输出:汪汪汪!
make_sound(Cat())#输出:喵喵喵~项目五:面向对象程序设计的应用5.3封装(Encapsulation)什么是封装?将数据(属性)和操作数据的方法捆绑在一起,隐藏对象的内部状态,仅对外暴露有限的接口进行交互,从而保护数据的安全性和完整性。Python中的访问控制•公有(Public):默认状态,外部代码可直接访问与修改。
•私有(Private):以双下划线`__`开头。外部无法直接访问,仅能通过类内部定义的方法来操作,是一种重要的“约定俗成”的保护机制。classAccount:def__init__(self,balance):#构造方法self.__balance=balance#定义私有属性,外部无法直接访问defget_balance(self):#提供外部接口来读取数据returnself.__balanceacc=Account(1000)#创建账户,余额1000#print(acc.__balance)#直接访问报错:AttributeErrorprint(acc.get_balance())#输出1000:通过方法安全访问项目六:文件与目录的应用6.1文件的打开与关闭打开文件:open()函数使用内置函数返回一个文件对象,后续操作均通过此对象进行。
语法:open(file,mode='r',encoding=None)常用操作模式:'r'只读(默认)|'b'二进制模式
读取文本或处理图片等非文本文件'w'覆盖写|'a'追加写
文件不存在时均自动创建新文件💡推荐使用with语句管理文件上下文,它会自动调用close(),避免资源泄漏。#示例:自动关闭文件的安全写法withopen("example.txt","w",encoding="utf-8")asf:f.write("Hello,File!")#无需手动调用f.close()项目六:文件与目录的应用6.2文件的读写操作读取文件(Read)•read(size):读取指定大小,或全部内容•readline():每次读取文件中的一行内容•readlines():读取所有行,返回一个字符串列表💡最佳实践:直接遍历文件对象逐行读取,更节省内存,适合大文件。写入文件(Write)write(string)
向文件中写入一个字符串。若需换行,需手动添加换行符`\n`。writelines(iterable)
将一个可迭代的字符串序列(如列表)一次性写入文件,不会自动添加分隔符。⚠️注意:打开文件时请确认写入模式。代码示例withopen("example.txt","r",encoding="utf-8")asf:forlineinf:print(line.strip())#说明:使用with关键字自动关闭文件;strip()去除多余换行符项目六:文件与目录的应用|6.3目录操作📂传统方案:os模块Python内置的老牌模块,提供了与操作系统交互的底层功能,适合处理基础的路径和目录需求。os.getcwd()
获取当前脚本的工作目录os.listdir(path)
列出指定目录下的所有内容os.mkdir(path)
创建单层目录(父级需存在)os.rmdir(path)
删除空目录(非空报错)os.path.exists(path)
检查路径/文件是否存在os.path.join(p1,p2)
智能拼接路径,跨平台兼容✨进阶推荐:pathlib(面向对象)frompathlibimportPathdata_dir=Path("data")#创建路径对象data_dir.mkdir(exist_ok=True)#目录不存在则创建(data_dir/"report.txt").write_text("Hello")项目七:异常的应用7.1什么是异常?核心定义:程序在运行过程中发生的、打断正常指令流的错误或意外情况。它通常由逻辑错误、环境问题或非法操作触发。👀开发中常见的6种异常:•SyntaxError:代码不符合语法规范•NameError:引用了未定义的变量名•TypeError:对类型执行了不支持的操作•ValueError:参数类型正确但值不合法•ZeroDivisionError:数学运算中除数为0•FileNotFoundError:找不到指定的文件为什么要处理异常?捕获并处理错误,防止程序直接崩溃,使程序能够“优雅”地容错并继续运行,提升用户体验。项目七:异常的应用7.2try-except语句核心语法结构try:#放置可能引发异常的代码块exceptExceptionType1:#捕获并处理指定类型的异常else:#仅当try块中无异常时执行finally:#无论是否发生异常,始终执行实战示例:防错输入场景:强制用户输入整数,直到正确为止。whileTrue:try:num=int(input("请输入一个整数:"))print(f"输入有效,数字是:{num}")breakexceptValueError:print("❌输入无效,请重新输入整数!")项目七:异常的应用7.3抛出与自定义异常抛出异常(Raise)在程序检测到错误条件(如业务逻辑不满足)时,可使用raise语句主动抛出异常,中断当前正常流程。自定义异常(CustomException)通过创建一个继承自内置类Exception的新类,可以定义特定的业务异常类型,让代码逻辑更清晰、更易于维护。💻代码示例:自定义年龄校验异常classInvalidAgeError(Exception):"""当年龄无效时抛出的异常"""passdefcheck_age(age):ifage<0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目管理团队沟通协作预案
- 2026年考核招聘笔题库检测试卷及参考答案详解(黄金题型)
- 设备维护与保养标准化模板
- 客户关系管理及回访工作手册
- 发电机定子铁芯叠片作业标准
- Unit 1 Teenage life Discovering useful structures教学设计-高中英语人教版(2019)必修第一册
- 2025-2026学年足球脚背内侧踢球教案
- 经济分析基础作业指导书
- 科研成果推广保证承诺书6篇
- 互联网创业项目可行性分析流程手册
- AQ3062-2025《精细化工企业安全管理规范》专项检查表(共4份)
- 食品机械安全培训课件
- 中国热带农业科学院院属单位2026年第一批公开招聘工作人员备考题库及完整答案详解一套
- 心肺康复治疗进展
- 安全培训合同范本
- 未来五年铁观音行业直播电商战略分析研究报告
- 2025年天津市高考英语试卷
- 2026-2031年中国游戏陪玩行业市场发展趋势与前景展望战略研究报告
- 2025全年销售合同范文
- 修井作业安全培训课件
- 沥青拌合站安全拆除专项方案
评论
0/150
提交评论