版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python程序设计第3章Python控制结构学习目标理解Python选择结构、循环结构、异常处理的使用场景掌握选择结构、循环结构、异常处理的语法知识目标能够正确分析控制结构的执行结果能够选择合适的控制结构处理实际问题能力目标计划与执行力的重要性良好的防御性编码习惯情感态度与价值观选择结构:if语句01020403循环结构:while/for循环结构:进阶使用异常与异常处理目
录选择结构:if语句01020403循环结构:while/for循环结构:进阶使用异常与异常处理目
录单分支结构双分支结构多分支结构结构化程序设计三大控制结构45顺序结构选择结构条件成立YesNo循环结构条件成立NoYes自上而下不可兼得重复执行根据特定条件,有选择的执行某些代码关键字ifelifelse3.1选择结构45当某项条件满足时就必须执行某项操作,不需要考虑条件成立之外的情况由一个if语句构成3.1.1单分支结构45if条件表达式:代码块判断用户输入的数字是否为偶数,如果是,则打印“偶数”,然后程序结束不需要处理非偶数的情况-->单分支结构3.1.1单分支结构46a=int(input('请输入一个整数:'))ifa%2==0:print('偶数')示例3-1易错1:遗漏冒号易错2:缩进错误同时考虑条件成立、不成立时各需要执行哪些操作3.1.2双分支结构46if条件表达式:代码块1else:代码块2判断用户输入数字奇偶性为偶数,则打印“偶数”,为奇数,则打印“奇数”3.1.2双分支结构47a=int(input('请输入一个整数:'))ifa%2==0:print('偶数')eles:print('奇数')示例3-2双分支条件表达式3.1.2双分支结构47a=int(input('请输入一个整数:'))result='偶数'ifa%2==0else'奇数'print(result)示例3-3表达式1if条件表达式else表达式2条件成立返回表达式1的值条件不成立返回表达式2的值两个以上互斥条件时使用-->“多选一”3.1.3多分支结构47if条件表达式1:代码块1elif条件表达式2:代码块2[else:代码块3]温度值-->状态3.1.3多分支结构48temperature=25
iftemperature>=30:status='热'eliftemperature<10:status='冷'else:status='适中'
print('温度%d对应的状态是%s'%(temperature,status))示例3-4可以有多个elif分支3.1.3多分支结构48ifscore>=90:grade='优'elifscore>=80:grade='良'elifscore>=70:grade='中等'elifscore>=60:grade='合格'else:grade='不合格'示例3-5条件互斥能走到“score>=80”说明“score>=90”一定满足多分支结构嵌套分支结构实战3-1:折扣计算49高级会员≥10其他
8折9折普通会员≥10其他85折95折≥5件85折input():增加程序灵活性49实战3-1:折扣计算#初始化变量original_price=float(input('请输入商品原价:'))quantity=float(input("请输入购买数量:"))membership_level=input("请输入会员等级(高级会员/普通会员/非会员):")discount=1#折扣默认值为1,表示不打折参考代码选择结构的运用50实战3-1:折扣计算ifmembership_level=='高级会员':ifquantity>=10:discount=0.8#高级会员购买10件以上8折elifquantity>=5:discount=0.85#高级会员购买5-9件8.5折else:discount=0.9#高级会员购买1-4件9折elifmembership_level=='普通会员':ifquantity>=10:discount=0.85#普通会员购买10件以上8.5折else:discount=0.95#普通会员购买1-9件9.5折参考代码计算应付金额50实战3-1:折扣计算final_price=original_price*discount*quantityprint('应付金额为:%.2f元'%final_price)参考代码选择结构:if语句01020403循环结构:while/for循环结构:进阶使用异常与异常处理目
录循环结构:while/for020403循环结构:进阶使用异常与异常处理目
录选择结构:if语句01while循环break与continuefor...in循环特定条件下重复执行一段代码避免代码冗余关键字whilefor...in3.2循环结构50循环结构条件成立NoYes条件表达式为真时重复执行一段代码块条件表达式后面的冒号重复执行的代码块(即循环体)要相对于所属的while缩进3.2.1while循环50while条件表达式:代码块重要:循环变量的使用书写条件表达式循环体中如何改变为偶数,则打印“偶数”,为奇数,则打印“奇数”3.2.1while循环51i=2#既是循环变量,又是求和的参数result=1#记录和值whilei<=100:result+=ii+=1
print(result)示例3-6使用不当死循环模拟存钱罐当“罐内硬币数量与新存入硬币数量之和小于或等于存钱罐容量上限”时允许存入3.2.1while循环51limit=500save=0balance=int(input('请输入新存入硬币数量:'))whilesave+balance<=limit:save+=balanceprint('现有硬币:%d,上限:%d,剩余:%d'%(save,balance,limit-save))balance=int(input('存入硬币数量:'))示例3-7作用:提前结束循环行为break:退出当前循环,继续执行后面的语句continue:跳至while/for判断要不要进入下一次循环3.2.2break和continue52i=1whilei<=5:ifi==3:continueprint(i)i+=1示例3-9i=1whilei<=5:ifi==3:breakprint(i)i+=1示例3-8应用1:遍历并处理可迭代对象的元素3.2.3for循环52按照某种顺序逐个访问对象中每一项内容的过程iterable,Python中支持元素遍历的对象,包括序列、集合、字典、生成器等for循环变量in可迭代对象:代码块应用1:遍历并处理可迭代对象的元素3.2.3for循环53for循环变量in可迭代对象:代码块列表元素求和3.2.3for循环53list1=[3,4,0,-1,7]result=0foreinlist1:result+=eprint(result)示例3-10list1=[3,4,0,-1,7]i,result=0whilei<len(list1):result+=list1[i]i+=1应用2:实现明确次数的循环range()3.2.3for循环54用法说明示例range(n)生成[0,n]范围内的n个整数range(5)-->序列:0,1,2,3,4range(m,n)生成[m,n-1]范围内的n-m个整数range(1,5)-->序列:1,2,3,4range(m,n,step)以step为步长,生成[m,n-1]范围内的整数序列range(1,10,3)-->序列:1,4,7[1,100]整数求和3.2.3for循环54result=0foriinrange(1,101):result+=i示例3-1214天短期投资回报计算3.2.3for循环54result=100000.00#收益,初始值为本金10万rate=0.0385/365#日利率foriinrange(14):result=result+result*rate示例3-13不一定要在循环体中使用循环变量应用3:同时遍历多个可迭代对象3.2.3for循环54list1=[1,2,3]list2=['a','b','c']fornum,charinzip(list1,list2):print(num,char)示例3-14应用3:同时遍历多个可迭代对象3.2.3for循环55list1=['a','b','c']forindex,valueinenumerate(list1):print(index,value)示例3-15选择结构:if语句01020403循环结构:while/for循环结构:进阶使用异常与异常处理目
录循环结构:进阶使用0304异常与异常处理目
录选择结构:if语句0102循环结构:while/forelse子句嵌套循环while/for可以带一个else子句,循环正常结束时进入while循环:当循环条件不满足而退出循环后会进入for循环:当可迭代对象的所有元素遍历完而退出循环后进入因break退出循环不会进入else分支主要用途:收尾工作,如打印信息、记录日志等3.2.4else子句55else子句使用3.2.4else子句55list1=[1,2,3,-1,-2,4]
fornuminlist1:ifnum<=0:print('列表中含有非正数元素')breakelse:print('列表中所有元素均为正数')print('测试结束')示例3-16嵌套循环:在一个循环内部放置另一个循环九九乘法表3.2.5
嵌套循环56foriinrange(1,10):forjinrange(1,i+1):
print('%d*%d=%d'%(i,j,i*j),end='\t')print()#换到新的一行示例3-17选择结构:if语句01020403循环结构:while/for循环结构:进阶使用异常与异常处理目
录异常与异常处理04目
录选择结构:if语句0102循环结构:while/for03循环结构:进阶使用异常的概念和类型异常的捕获异常的处理异常:Python程序执行期间发生的一个特殊错误,它会中断正常的程序流程,让程序停止运行异常处理:确保程序在出现异常时能够得到处理,而不是直接终止运行3.3.1
异常的概念与类型62异常测试:除数为0的异常3.3.1
异常的概念与类型63total_cost=float(input('请输入总价格:'))total_weight=float(input('请输入总重量:'))print('单价:%.2f'%(total_cost/total_weight))print('计算完成')示例3-20异常类:Python将导致程序终止执行的异常情况封装为不同的类,通过命名表明其错误原因3.3.1
异常的概念与类型64异常类说明异常类说明BaseException所有异常类的基类SyntaxError语法错误除法AttributeError访问对象没有的属性触发TypeError不适当的操作对象触发IndexError访问序列不存在的索引触发ValueError函数参数无效触发KeyError访问字典不存在的键触发IOError输入输出错误IndentationError缩进错误NameError访问没有定义的变量触发try结构:先捕获要处理的异常对象,再进行处理3.3.2
异常的捕获与处理64try:#尝试执行的代码块except[异常类型as对象别名]:#处理异常的语句块eles:#try块顺利完成后需要执行的语句块finally:#不论是否发生异常最终都要执行的语句块try...except:Python捕获处理异常的基本结构3.3.2
异常的捕获与处理64try:#尝试执行的语句except:#异常处理语句将尝试执行的语句放在try块中try中没有发生异常,不执行任何异常处理程序一旦发生异常,程序将创建相应异常类型的对象抛出except分支捕获其后指定类型的异常对象,如果没有指定则捕捉所有类型进入except分支处理try块中发生异常之后的语句不会再执行try...except捕获处理所有异常3.3.2
异常的捕获与处理65try:total_cost=float(input('请输入总价格:'))total_weight=float(input('请输入总重量:'))print('单价:%.2f'%(total_cost/total_weight))except:
print('发生异常!')print('计算完成')示例3-21try...多个except处理不同异常3.3.2
异常的捕获与处理65try:total_cost=float(input('请输入总价格:'))total_weight=float(input('请
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河道整治工程围挡施工合同
- 工业生产线电力施工合同
- 管道铺设机械施工合同模板
- 地下停车场回填土施工协议
- 电影院内部油工施工合同
- 园林绿化分包协议
- 产业园区办公用房交易合同模板
- 出纳兼职岗位协议财务
- 2025酒店装修包清工合同
- 2024年规范化国际空运代理协议模板一
- 慈溪市2024-2025学年四上数学期末教学质量检测模拟试题含解析
- 2024-2025学年佛山市南海区六上数学期末达标检测试题含解析
- 2024年浙江省单独考试招生文化课考试数学试卷真题(含答案详解)
- 2025年高考化学二、三轮复习策略讲座
- 2022年高考数学试卷(上海)(秋考)(空白卷)
- 湖南省长沙市2023-2024学年四年级上册期末数学试题
- 山东省济南市语文小升初2024年模拟试题与参考答案
- 装配式建筑复习试题及答案
- 空气动力学仿真技术:湍流模型:k-ε湍流模型原理与应用
- 榛子食品深加工生产项目可行性研究报告-2024年重点项目
- 支撑梁拆除安全协议书
评论
0/150
提交评论