版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python程序设计12-8月-26第三章流程控制第3章程序流程控制本章学习目标掌握顺序结构程序设计及Python基础输入输出语句理解、认识并运用Python条件表达式掌握选择结构程序设计、可理解并运用选择的嵌套掌握选择循环程序设计、可理解并运用循环的嵌套使用三种基本程序流程控制方法进行综合程序设计目录1条件表达式顺序结构2
选择结构3循环结构4程序流程控制实例51顺序结构顺序结构是Python程序设计基本结构中最简单的一种,程序员只需按照处理顺序依次写出相应的语句即可。一个程序通常包括输入、处理和输出3个部分。输入语句和输出语句反映了程序运行中与用户的交互,而处理是指要进行的数据操作与运算,根据解决的问题不同而需要使用不同的语句来实现,其中最基本的数据处理语句是赋值语句。1顺序结构(输入语句)Python基本输入输出是指从键盘输入数据,输出则是到屏幕,也称为控制台输入输出。Python用内置函数input实现标准输入,其格式为:Input([输入提示字符串])注:[输入提示字符串]是可选项,如有则运行时在控制台原样显示,一般用于提示用户输入数据。1顺序结构(输入语句)input函数从标准输入设备(键盘)读取一行数据,并返回一个字符串(不包括最后的换行符)。1顺序结构(输入语句)input函数把输入的任何内容都作为字符串,如果要输入数值数据,可以使用类型转换函数将字符串转换为数值。1顺序结构(输入语句)除了显示提示给单个变量赋值以为,还可以使用input和eval函数嵌套,同时给多个变量赋值。1顺序结构(输出语句)基本的输出方法是用print函数,其调用格式为:print([输出项1,输出项2,…,输出项n][,sep=分隔符][,end=结束符])注:其中输出项之间以逗号分隔,没有输出项时输出一个空行。sep表示输出时各输出项之间的分隔符(默认以空格分隔),end表示结束符(默认以回车换行结束)。print函数从左至右求每一个输出项的值,并将各输出项的值依次显示在屏幕的同一行上。1顺序结构(输出语句)只要print函数确定了end结束符,则输出后不会换行,程序中后续输出会跟着一行输出。所以上面最后一条print函数如在程序中运行时,如后续还有输出语句,则输出会紧跟在#字符后。1顺序结构(顺序结构程序)
结合前面章节的数据类型、运算符和表达式等相关语句,可以按语句应该出现的前后顺序来编写顺序结构程序,程序会严格按语句的前后顺序依次执行的。目录1条件表达式顺序结构2
选择结构3循环结构4程序流程控制实例52条件表达式为了实现程序流程控制的多样化,Python程序允许根据具体条件(True和False)来有选择或是重复执行部分代码,这里的条件指通过关系运算和逻辑运算构成的条件表达式。在选择和循环结构中,条件表达式的值只要不是False、0、空列表、空字符串、空对象等,均认为与True等价。2条件表达式(关系运算及其表达式)Python的关系运算包括:小于<小于等于<=大于>大于等于>=等于==不等于!=关系运算符用于两个量的比较判断,关系运算的结果会根据比较结果具体取值True或False。与算数表达式类似,关系运算符和运算对象通过合理排列即形成的是关系表达式。2条件表达式(逻辑运算及其表达式)Python的逻辑运算包括:与and或or非not逻辑运算结果也是True或False。其中and和or是双目运算符,not是单目运算符,逻辑运算符中,not的优先级最高,其次是and、or。逻辑表达式是用逻辑运算符将逻辑量(可以是关系表达式、其它逻辑表达式)连接起来的式子。2条件表达式(其他条件表达式)成员运算符in主要判定某序列对象是否包含了特定成员,常用于在指定的序列中查找某个值是否存在,格式如下:<成员>in<序列对象><成员>notin<序列对象>身份运算符is和isnot也常用于程序中判定条件,是双目运算符,其格式为左右分别写一个变量,返回的是两个变量是否指向同一个对象。目录1条件表达式顺序结构2选择结构3循环结构4程序流程控制实例53.3选择结构根据条件表达式,Python即可通过计算得到的True或False来有选择的执行代码,从而形成不同的程序流程控制结构。选择结构也称为分支结构,是根据给定的条件表达式取值,来决定程序的执行流程,Python通过if语句来实现各种不同的选择结构。3.3选择结构(单分支选择结构)#输入两个整数,再按大小分别输出x1,x2=eval(input("请输入两个整数x1,x2:"))ifx1<x2:tmp=x2x2=x1x1=tmpprint("大数为:",x1,",小数为:",x2)3.3选择结构(双分支选择结构)#分别输入三角形边长,求三角形面积frommathimport*x,y,z=eval(input("输入三边长x,y,z:"))ifx+y>zandx+z>yandy+z>x:p=(x+y+z)/2s=sqrt(p*(p-x)*(p-y)*(p-z))print("三角形面积为:",s)else:print("输入数据作为三角形边长无法构成三角形,无法计算!")3.3选择结构(多分支选择结构)#输入两个数,比较并输出大小关系a,b=eval(input("请输入两个数a,b:"))ifx==y:print("两数相等!")elifx>y:print("较大数为:",x)else:print("较大数为:",y)3.3选择结构(选择结构的嵌套)#根据键盘输入的3个数,找出最大值a,b,c=eval(input("请输入三个数a,b,c:"))ifa>b:ifa>c:print("最大值为:",a)else:print("最大值为:",c)else:ifb<c:print("最大值为:",c)elseprint("最大值为:",b)目录1条件表达式顺序结构2选择结构3循环结构4程序流程控制实例54循环结构循环结构的基本思想是重复执行某些代码,其主要利用计算机运算速度快以及能进行逻辑控制的特点,来满足大量重复的程序功能需求。Python语言有两种语句用于循环结构的实现:while语句和for语句。4循环结构(while)#使用while循环计算1到100中所有整数的和。sum=0i=1whilei<=100:sum=sum+ii=i+1print("1到100的整数和为:"+sum)4循环结构(while)在while循环结构中,还可使用else子句,else中的语句会在循环正常执行完(条件表达式的值为False)的情况下执行。而循环非正常退出时(指在循环体内执行break语句强制退出),else语句则不会执行。#输入若干偶数,统计偶数个数并计算这个偶数个数。count=0sum=0number=int(input("输入一个正整数:"))whilenumber%2==0:count=count+1sum=number+sumnumber=int(input("输入一个正整数:"))else:print("输入的偶数个数为",count,",和为",sum)4循环结构(for)#使用for循环找出所有三位的水仙花数。fornumberinrange(100,1000):digit1=number//100digit2=(number//10)%10digit3=number%10ifdigit1**3+digit2**3+digit3**3==number:print("找到水仙花数:",number)else:print("循环正常结束,找到所有的水仙花数")4循环结构(break)在循环结构中,break语句可被用在循环体内,如break被执行,所在循环后续会立刻终止(包括循环的最后的else子句),即跳出所在循环体直接执行后续语句。#输入一个正整数,判断其是否为素数(break版本)t=int(input("请输入一个大于1的整数:"))foriinrange(2,t):ift%i==0:print(t,"不是素数")breakelse:print(t,"是素数")4循环结构(continue和pass)循环内如执行continue语句会结束本次循环,整个循环结构还不会退出。对于while,执行continue后会进行条件表达式判断,看是否进行下一轮循环;对于for,是先将序列对象的下个元素赋给变量后,根据情况决定是否继续循环。pass语句是一个空语句,执行不做任何操作,用于在某些场合下需要一个语句但实际却什么都不做的情况。4循环结构(循环的嵌套)#列出2-100间所有的素数。count=0foriinrange(2,101):j=2while(j<i):if(i%j==0):breakj=j+1else:count=count+1print("{:>5}".format(i),end="")ifcount%5==0:print("\n")目录1条件表达式顺序结构2选择结构3循环结构4程序流程控制实例55程序流程控制实例求一元二次方程ax2+bx+c=0的实数根。frommathimport*a,b,c=eval(input("输入方程的参数a,b,c:"))delta=b**2-4*a*cifdelta>0:x1=(-b+sqrt(delta))/(2*a)x2=(-b-sqrt(delta))/(2*a)print("方程有两个实根:{0},{1}".format(x1,x2))elifdelta==0:x=-b/(2*a)print("方程有一个实根:{0}".format(x))else:print("该方程无实根")5程序流程控制实例猜分数游戏,要求程序运行后会随机产生一个整数(1-100之间),给游戏者8次机会猜具体多少分,每次如猜错程序会提示所猜分数偏大或偏小,8次机会内游戏者如猜对则游戏通过。importrandomscore=random.randint(0,100)i=1while(i<=8):print("输入你猜的数,第",i,"次机会",end=":")num=int(input())if(num==score):Breakelif(num>score):print("猜的数大了!")else:print("猜的数小了!")i=i+1if(i<9):print("恭喜猜对了,分数的确是:",score)else:print("没有机会了,下次再来吧!")5程序流程控制实例打印乘法口诀表。显示任意两个个位数及其相乘的结果,一共9行,程序难点是如何设置循环。从规律上看,9行数据输出可以设计为一个循环,循环体执行一次输出一行,每行数据的显示又有规律可遵循,即可再设置内循环实现。i=1while(i<=9):j=1while(j<i):print(j,"*",i,"=","{:>2}".format(j*i),sep="",end=";")j=j+1print(j,"*",i,"=","{:>2}".format(j*i),sep="")i=i+1程序流程控制实验讲解程序运行录入某学生的姓名、专业、年龄以及语文、数学成绩,在使用输出语句在控制台显示出来。#使用标准化输入某大学生的个人信息name=input("请输入您的姓名:")major=input("请输入您的专业:")age=int(input("请输入您的年龄:"))ywScore,sxScore=eval(input("输入您的语文,数学成绩(例如83.5,92):"))#使用标准化输出各个变量值,并用合理字符串连接print("姓名:",name,"专业:",major,"年龄:",age,sep="")print("***语文成绩:",ywScore,"***数学成绩:",sxScore,sep="",end="***")程序流程控制实验讲解输入某同学的Python课程成绩,成绩大于等于60显示“Pyhon课程通过考核”,小于60显示“Pyhon课程未通过考核,需要补考”score=int(input("请输入某同学的Python课程成绩:"))ifscore>=60:print("Pyhon课程通过考核")else:print("Pyhon课程未通过考核,需要补考")程序流程控制实验讲解使用if-elif多分支选择结构编写程序,程序运行时输入某同学的高等数学课程成绩,成绩大于等于90显示“高数成绩等级优秀”,小于90大于等于80显示“高数成绩等级良好”,小于80大于等于70显示“高数成绩等级中等”,小于70大于等于60显示“高数成绩等级及格”,小于60“高数成绩等级不及格,需要补考”。score=int(input("请输入高等数学课程成绩:"))ifscore>=90:print("高数成绩等级优秀")elifscore>=80:print("高数成绩等级良好")elifscore>=70:print("高数成绩等级中等")elifscore>=60:print("高数成绩等级及格")else:print("高数成绩等级不及格,需要补考")程序流程控制实验讲解使用if分支选择结构的嵌套编写程序,程序运行时输入某个顾客是否是合作企业客户和个人客户,如果顾客为合作企业客户,所购商品原价大于10万打7折,小于10万大于6万打8折,小于6万大于3万打9折,3万以下不打折;如果客户是个人客户,所购商品原价大于15万打7折,小于15万大于10万打8折,小于10万大于5万打9折,5万以下不打折。isCustomer=input("该顾客是合作企业客户吗?(是/否)")purchase_amount=float(input("请输入所购商品原价:"))ifisCustomer.lower()=="是":ifpurchase_amount>100000:discounted_price=purchase_amount*0.7elif60000<purchase_amount<=100000:discounted_price=purchase_amount*0.8elif30000<purchase_amount<=60000:discounted_price=purchase_amount*0.9else:discounted_price=purchase_amountprint(f"合作企业客户,原价{purchase_amount},折后价{discounted_price}")else:ifpurchase_amount>150000:discounted_price=purchase_amount*0.7elif100000<purchase_amount<=150000:discounted_price=purchase_amount*0.8elif50000<purchase_amount<=100000:discounted_price=purchase_amount*0.9else:discounted_price=purchase_amountprint(f"个人客户,原价{purchase_amount},折后价{discounted_price}")程序流程控制实验讲解使用while循环结构编写Python源程序,程序运行时输入某个大学班级的班级名,再依次输入班级所有学生的Python成绩,当输入一个负数时代表所有学生成绩输入结束,程序最后需要输出这个班级的班级名、并统计班级学生总数、Python成绩的最高成绩、最低成绩、平均成绩。class_name=input("请输入班级名:")stuNum=0scoreSum=0highest_score=float('-inf')lowest_score=float('inf')score=float(input("请输入学生的Python成绩:"))whilescore>=0:stuNum+=1scoreSum+=scoreifscore>highest_score:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国橡胶制品行业市场集中度、竞争格局及投融资动态分析报告(智研咨询)
- 2026-2027学年八年级英语上册 期末测试卷(人教辽宁版)(二)
- 金色降落伞项目2026年技术服务合同样本
- 水上运输练习题及精准答案
- 计量经济学综合试题及答案
- 煤炭采样考核试题与精准答案
- 2026-2030中国螺旋泵产业应用趋势与投资运行状况监测研究报告
- 2026年微观经济学期末复习题库
- 2026年法律职业资格考试刑法客观题专项练习
- 2026-2030中国成人失禁用非织造胶粘剂行业市场发展趋势与前景展望战略研究报告
- 2026年云南省地矿测绘院有限公司招聘(37人)笔试备考试题及答案详解
- 2026浙江省交通投资集团有限公司成员单位中后台职能岗位(第二批)联合招聘15人笔试模拟试题及答案详解
- 临床成人危重症ENI全程防治新进展
- 2026年执业医师乡村全科执业助理医师考试真题及答案
- 环卫车辆更新改造项目可行性研究报告
- GB/Z 160-2025电气简图用图形符号IEC 60617标准化设计指南
- XXX公司2026年度安全生产资金投入计划(安全生产资金投入制度)
- 2026届云南省红河州、文山州第四次州统测预测历史试题(含答案)
- 2026光伏组件回收技术突破与循环经济产业链构建白皮书
- 2026年省级行业企业职业技能竞赛(家畜(猪)繁殖员)练习题及答案
- 沙雅县2026年古勒巴格镇示范村人居环境整治项目水土保持方案报告表
评论
0/150
提交评论