版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目4结构化程序项目内容跳转语句顺序结构循环结构选择结构01020403项目目标知识目标熟悉顺序结构的语法格式及功能熟悉选择结构的语法格式及功能熟悉循环结构的语法格式及功能了解跳转语句的语法格式及功能会使用顺序结构解决实际问题会使用选择结构解决实际问题会使用循环结构解决实际问题会灵活使用跳转语句解决实际问题技能目标
顺序结构01思考:什么是流程控制?程序中的语句默认自上而下顺序执行(顺序结构)。流程控制意指在程序执行过程中,通过一些特定的指令更改程序中语句的执行顺序,使程序产生跳跃(分支结构)、回溯(循环结构)等现象。什么是IPO程序控制?IPO是一种程序编写方法。在进行程序设计时,无论程序的规模如何,每个程序都有统一的运算模式:输入数据(Input)、处理数据(Process)、输出数据(Output)),这种朴素的运算模式即IPO。IPO程序控制
输入(Input)是一个程序的开始。程序要处理的数据有多种来源,形成了多种输入方式,包括:文件输入、网络输入、控制台输入、交互界面输出、随机数据输入、内部参数输入等。
处理(Process)是程序对输入数据进行计算产生输出结果的过程。计算问题的处理方法统称为“算法”,它是程序最重要的组成部分。可以说,算法是一个程序的灵魂。
输出(Output)是程序展示运算成果的方式。程序的输出方式包括:控制台输出、图形输出、文件输出、网络输出、操作系统内部变量输出等。顺序结构
程序中的语句默认自上而下顺序执行,即顺序结构。
顺序结构是计算机程序中最简单最基本的结构。在顺序结构中,编译/解释系统要求顺序地执行且必须执行有先后顺序排列的每一个最基本的处理单位,常用的顺序排列就是IPO程序控制流程。顺序结构实例1:
已知三角形三边长度分别为a、b、c,其半周长为peri,根据海伦公式计算三角形面积area。
三角形半周长和三角形面积公式分别如下:三角形半周长peri=(a+b+c)/2三角形面积area=(peri*(peri-x)*(peri-y)*(peri-z))**0.5本例子要求编写程序,实现接收用户输入的三角形边长,计算三角形面积的功能。
本实例是典型的顺序结构。通过使用Python常用运算符,按照顺序结构要求进行语句书写来编写程序。根据海伦公式计算三角形面积时,需要先获取三角形各边的边长,然后计算三角形的半周长,通过三角形的半周长与边长计算三角形面积。a=eval(input('边长a='))b=eval(input('边长b='))c=eval(input('边长c='))#计算半周长peri=(a+b+c)/2#计算面积area=(peri*(peri-a)*(peri-b)*(peri-c))**0.5print('三角形面积s=%0.1f'%area)任务实践-换算体重
加快建设航天强国是党的二十大建设现代化强国部署之一。2003年10月我国实现了载人航天,经过二十年的发展,我国已实现登上月球的梦想。众所周知,月球上物体的体重是在地球上的16.5%,假设你在地球上的体重是65kg,试想你在月球上的体重会是多少?是否发生传说的失重现象?请编写程序验证。
根据题意,计算在月球上的体重前需要使用input()函数输入在地球上的体重。由于体重是数字类型,所以在程序中需要使用数字类型表示体重。根据月球上物体的体重是在地球上的16.5%来计算月球上的体重,例如,地球上体重为65kg,那么月球上的体重为65*16.5/100。任务实践-换算体重#获取月球上的体重mwew=float(input(“请输入你的体重(kg):”))mw=ew*16.5/100print(‘如果在地球上的体重是{}kg,那么在月球上的体重将是{:.1f}’.format(ew,mw))分支结构02分支结构
程序开发中经常会用到条件判断,譬如,用户登录时需判断用户名和密码是否全部正确,进而决定用户是否能够成功登录。类似这种需求的功能,都可以使用分支结构实现。分支结构是通过if语句实现的,if语句是最简单的条件判断语句,可以控制程序执行的流程。if语句可使程序产生分支,根据分支数量的不同,if语句分为单分支(if)、双分支(if-else)和多分支(if-elif-else)语句。if语句由if关键字、条件表达式和代码块三部分组成,它根据条件表达式的判断结果选择是否执行相应的代码块。单分支if语句单分支if语句产生一个分支,根据条件成立否决定是否执行代码块。
格式:if条件表达式:
代码块单分支if语句实例:从键盘输入一个数,输出其绝对值。
x=float(input('请输入一个数:'))y=xifx<0:y=-xprint('{}的绝对值是{}'.format(x,y))实例:判断4位回文数。
所谓回文数,就是各位数字从高位到低位正序排列和从低位到高位逆序排列都是同一数值的数。例如,数字1221按正序和逆序排列都是1221,因此1221就是一个回文数;而数字1234的各位数字按逆序排列是4321,4321与1234不是同一个数,因此1234就不是一个回文数。本实例要求编写程序,判断输入的4位整数是否是回文数。num=int(input("请输入一个4位数:"))flag="不是回文数"sig=int(num//1000)ten=int(num//100%10)hud=int(num//10%10)ths=int(num%10)order=ths*1000+hud*100+ten*10+sigifnum==order:flag="是回文数"print(flag)单分支if语句双分支if-else语句if-else语句产生两个分支,可根据条件表达式的判断结果选择执行哪一个分支。if条件表达式:
代码块1else:
代码块2实例:确定水仙花数。
水仙花数是一个3位数,它的每位数字的3次幂之和等于它本身,例如,153、370就是一个水仙花数。
num=int(input(“请输入一个三位整数:"))hund=int(num//100)#百位ten=int(num//10%10)#十位single=int(num%10)#个位ifhund**3+ten**3+single**3==num:print(f"{num}是水仙花数")else:print(f"{num}不是水仙花数")双分支if-else语句多分支if-elif-else语句如果程序需要处理多种情况,可以使用if-elif-else语句。if条件表达式1:
代码块1elif条件表达式2:
代码块2elif条件表达式3:
代码块3elif条件表达式n-1:
代码块n-1else:
代码块n多分支if-elif-else语句实例:奖金发放。假设某销售公司为激发员工的工作积极性,年终会根据员工为公司创造的利润发放销售奖金,奖金发放规则如下:
利润(万元)奖金提成(%)I<=101%10<I<=203%20<I<=405%40<I<=6010%60<I<=8015%I>8020%profit=float(input(“请输入当月利润,单位为万元:"))ifprofit<=10:bonus=profit*0.01elifprofit<=20:bonus=profit*0.03elifprofit<=40:bonus=profit*0.05elifprofit<=60:bonus=profit*0.1elifprofit<=80:bonus=profit*0.15else:bonus=profit*0.20print('当月应发放奖金总数为%.2f元'%bonus*10000)If嵌套if语句嵌套指的是if语句内部包含if语句,其格式如下:if条件表达式1:if条件:
代码块1if条件表达式2:
代码块2关于if嵌套语句,需要说明:(1)if语句可以嵌套多层,不仅限于两层。(2)外层和内层的if判断都可以使用if语句、if-else语句和elif语句。多分支if-elif-else语句实例:快递计费系统。假设某快递网点提供华东地区、华南地区、华北地区、西北地区的寄件服务,其中,华东地区编号为01、华南地区编号为02、华北地区编号为03,西北地区编号为04,该快递网点的寄件价目表如下:地区编号首重(<=2kg)续重(元/kg)华东地区(01)10元2元华南地区(02)12元3元华北地区(03)14元2元西北地区(04)16元3元weight=float(input("请输入快递重量:"))print('编号01:华东地区编号02:华南地区编号03:华北地区编号04:西北地区')place=input("请输入地区编号:")ifweight<=2:ifplace=='01':print('快递费为10元')elifplace=='02':print('快递费12元')elifplace=='03':print('快递费14元')elifplace=='04':print('快递费16元')else:excess_weight=weight-2ifplace=='01':many=excess_weight*2+10print('快递费为%.1f元'%many)elifplace=='02':many=excess_weight*3+12print('快递费为%.1f元'%many)elifplace=='03':many=excess_weight*2+14print('快递费为%.1f元'%many)elifplace=='04':many=excess_weight*3+16print('快递费为%.1f元'%many)多分支if-elif-else语句实例:脑力大乱斗”休闲益智游戏的关卡中,有一个题目是从三个数中找出最大数。游戏中的“最大数”指的是外表的大小,而不是数值的大小。num_one=int(input(“请输入第一个数:"))num_two=int(input(“请输入第二个数:"))num_three=int(input(“请输入第三个数:"))ifnum_one>num_two:ifnum_one>num_three:print(‘最大数是:’,num_one)else:print(‘最大数是:’,num_three)else:ifnum_two>num_three:print(‘最大数是:’,num_two)else:print(‘最大数是:’,num_three)任务实践-根据BMI值确定健康状况
BMI又称为身体质量指数,它是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。
本任务要求编写程序,实现“根据BMI确定健康状况”判定。
根据题意,首先获取体重和身高,然后根据BMI公式计算其BMI的值。身体质量指数(BMI)=体重(kg)÷身高2height=float(input('请输入您的身高(m):'))weight=float(input('请输入您的体重(kg):'))BMI=weight/(height*height)print('您的BMI值为%.2f'%BMI)ifBMI<18.5:print('体重过轻')elif18.5<=BMI<=23.9:print('体重正常')elif24<=BMI<=27:print('体重过重')elif28<=BMI<=32:print('体重肥胖')else:print('非常肥胖')循环结构03循环结构
Python中的循环结构可以实现重复执行某个计算的功能,它包含while循环结构和for循环结构两种类型。While循环while循环是一个条件循环语句,当条件满足时重复执行代码块,直到条件不满足为止。格式:while条件表达式:
代码块While语句首先判断条件表达式的结果是否为True,若结果为True执行while循环中的代码块,然后再次判断条件表达式的结果是否为True,若结果仍为True,则再次执行代码块...直至条件表达式的结果为False时结束循环。while语句实例:检测登录系统账号。登录系统一般具有账号和密码检测功能,即检测用户输入的账号和密码是否正确。若用户输入的账号或密码不正确,系统就会提示“用户名或密码错误”和“您还有*次机会”;若用户输入的账号和密码正确,系统就会提示“登录成功”;若输入的账号和密码错误次数超过3次,系统就会提示“输入错误次数过多,请稍后再试”。
本实例要求编写程序,模拟登录系统账号及密码检测功能,并限制账号或密码输错的次数最多为3次。
while语句count=0 #用于记录用户错误次数whilecount<3:user=input("请输入您的账号:")pwd=input("请输入您的密码:")ifuser=='admin'andpwd=='123': #进行账号密码比对print('登录成功')breakelse:print("用户名或密码错误")count+=1 #初始变量值自增1ifcount==3: #如果错误次数达到3次,则提示并退出print("输入错误次数过多,请稍后再试")else:print(f"您还有{3-count}次机会") #显示剩余次数请输入您的账号:admin请输入您的密码:123登录成功for语句for循环可以对可迭代对象(序列)进行遍历。for临时变量in可迭代对象:
执行语句1
执行语句2......可迭代对象可以使字符串、列表、元组、集合、字典。for语句for循环常与range()函数搭配使用,生成一个数字序列,以控制循环中代码段的执行次数。range()函数在for循环中的语法格式如下。foriinrange(strat,end,scan):
循环语句块
这里,start:计数初值,默认值为0,例如range(3)等价于ange(0,3)。end:计数终值,但不包括end值,例如range(0,3)是指[0,1,2]区间,不包括3。scan:计数步长,即计数增量,默认值为1,例如range(0,3,1)等价于range(3)。for语句
实例:数据加密。数据加密是保存数据的一种方法,通过加密算法和密钥将数据从明文转换为密文。假设在当前开发的程序中需要对用户的密码进行加密处理,已知用户的密码为6位数字,其加密规则如下。●获取每个数字的ASCII值。●将所有数字的ASCII值进行累加求和。●将每个数字对应的ASCII值按从前往后的顺序进行拼接,并将拼接后的结果进行反转。●将反转的结果与前面累加的结果相加,所得的结果即为加密后的密码。本实例要求编写程序,按照上述加密规则将用户输入的密码进行加密,并输出加密后的密码。for语句pwd=input('请输入密码:')num_asc=0 #ASCII累加值初值为0str_pwd='' #ASCII拼接值初值为空forwinpwd:asc_val=ord(w) #获取每个元素的ASCII值num_asc+=asc_val #对遍历的ASCII值进行累加操作str_pwd+=str(asc_val) #对获取的码值进行拼接操作
reversal_num=str_pwd[::-1] #将拼接的ASCII值进行倒序排列encryption_num=int(reversal_num)+num_asc#倒序结果与累加值相加print(f"加密后的密码为:{encryption_num}")for语句
实例:登录系统账号检测。本实例要求利用for循环编写程序,在3次机会中模拟登录系统账号和密码的检测功能。forcountinrange(3):user=input("请输入您的账号:")pwd=input("请输入您的密码:")ifuser=='admin'andpwd=='123': #进行账号密码比对print('登录成功')breakelse:print("用户名或密码错误")if3-count-1!=0:print(f"您还有{3-count-1}次机会") #显示剩余次数else:print("输入错误次数过多,请稍后再试")循环嵌套循环之间可以互相嵌套,进而实现更为复杂的逻辑。循环嵌套按不同的循环语句可以划分为while循环嵌套和for循环嵌套。1。while循环嵌套while循环中可以嵌套while循环。while条件表达式1:
代码块1......while条件表达式2:
代码块2 ......for循环也可以嵌套使用,其格式如下。for临时变量in可迭代对象:
代码块1for临时变量in可迭代对象:
代码块22。for循环嵌套循环嵌套
实例:乘法口诀是中国古代筹算中进行乘法、除法、开方等运算的基本计算规则,沿用至今已有两千多年。试编程打印。foriinrange(1,10):forjinrange(1,i+1):print(str(j)+"*"+str(i)+"="+str(i*j),end="\t")print('')任务实践-设计逢7拍手游戏
逢7拍手游戏的规则是:从1开始顺序数数,数到有7或者包含7的倍数的时候拍手。
本任务要求编写程序,实现“逢七拍手”游戏,输出100以内需要拍手的数字。
根据题意,判断一个数字是否与7相关,可分为以下两种情况:是否为7的倍数,即一个数取模值为0;是否包含7,使用find()方法判断,当返回值为-1时表示不包含7。任务实践-设计逢7拍手游戏#本题是模拟逢7拍手游戏foriinrange(1,101):#把i转成字符串,使用find方法(字符串中不包含时,返回-1)include=str(i).find("7")#判断条件:既不包含7,也不是7的倍数ifinclude==-1andint(i)%7!=0:#输出,换行符改为顿号print(i,end="、")#如果包含7输出拍手符号星号*elifinclude!=-1orint(i)%7==0:print("*",end='、')
循环中的else语句
Python语言中,可以在while循环和for循环中使用else语句,这样,循环正常执行完后会紧接着执行else语句的内容。如果循环中遇到break语句,则会退出循环,而不会执行else语句。使用else语句的while循环的语法格式:while条件表达式:
循环语句块1else:
语句块2循环中的else语句使用else语句的for循环的语法格式:for循环变量in序列
循环语句块1else:
语句块2跳转语句04跳转语句
循环结构一般会执行完所有的情况后自然结束,但有些情况下需要跳出循环,这就需要使用跳转语句。python的跳转语句有两个,一个是break语句,用于跳出离它最近一级的循环,通常与if语句结合使用。另一个是continue语句,用于跳出当前循环,继续执行下一次循环。跳转语句可以改变循环结构的执行流程。break语句break语句可用于结束当前整个循环,它跳出离它最近一级的循环,通常与if语句结合使用,放在if语句代码块中。for临时变量in可迭代对象:
执行语句if条件表达式:
代码块break其格式如下:while条件表达式:
代码块if条件表达式:
代码块breakcontinue语句continue语句用于跳出当前循环,继续执行下一次循环。forelementin[0,-2,5,7,-10]:ifelement<=0:continueprint(element)Python中的pass语句是空语句,它是为了保持程序结构的完整性。pass语句不做任何事情,一般用作占位语句。pass语句Python中的pass语句是空语句,它是为了保持程序结构的完整性。pass语句不做任何事情,一般用作占位语句。跳转语句实例实例1:编程判断一个整数是否为素数。
n=int(input('输入一个非负整数:'))flag=1foriinrange(2,n):if(n%i==0):flag=0breakifflag==1:print('%d是素数'%n)else:print('%d不是素数'%n)实例2:统计晚会参加人数。某学校举办迎新晚会,要求每位入场嘉宾在进门时按任意键一次(空格键除外),终止进场时按空格键。迎新晚会结束后,学校希望查看参加迎新晚会的人数,试编程实现。
本实例通过循环结构和选择结构配合break跳转语句实现统计参加晚会的人数的功能。n=0code=input('请输入一个字符')whileTrue:ifcode=='':breakelse:n+=1code=input('请输入一个字符')print(f'参加晚会的人数是{n}')实例3:统计被3整除的数。本实例是统计10~20的整数中能被3整除的数有几个?并输出其中每个整数是否被3整除。
sum=0foriinrange(10,21):ifi%3!=0:print(f'{i}不能被3整除')continueprint(f'{i}能被3整除')sum+=1print(f'10-20之间的整数能被3整除的数共有{sum}个')任务实践-设计猜数游戏
猜数游戏是一个古老的密码破译类、益智类小游戏,通常由两个人参与,一个人设置一个数字,一个人猜数字,当猜数的人说出一个数字,由出数字的人告知是否猜中:若猜测的数字大于设置的数字,出数字的人提示“很遗憾,你猜大了”;若猜测的数字小于设置的数字时,出数字的人提示“很遗憾,你猜小了”;若猜数的人在规定的次数内猜中设置的数字,出数字的人提示“恭喜,猜数成功”。
本任务要求编写程序,实现遵循上述规则的猜数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年电梯安全知识培训内容高频考点
- 2026年安全培训内容酒店重点
- 2026年知识体系小学开学安全培训内容
- 2026年城市海绵化改造项目融资合作合同
- 2026年儿童服装厂安全培训内容完整指南
- 哈密地区巴里坤哈萨克自治县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 西宁市城西区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 昆明市石林彝族自治县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 2026年租房合同协议书 打印核心要点
- 双鸭山市友谊县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 四川省广元市高2026届第二次高考适应性检测数学+答案
- TSG08-2026《特种设备使用管理规则》全面解读课件
- 2026广东广州市黄埔区大沙街道招聘编外聘用人员4人备考题库及参考答案详解
- 《2026年化学制药企业安全风险防控专项工作方案》解读
- 2026新疆兵团第七师胡杨河市公安机关社会招聘辅警358人笔试备考试题及答案解析
- 企业车间绩效考核制度
- 医疗服务价格项目立项指南解读辅导2026
- 2026年江西赣州市高三一模高考数学试卷试题(含答案详解)
- 中兴新云逻辑测试题
- 全过程造价咨询服务的质量、进度、保密等保证措施
- 2025年四川省眉山市中考数学试卷
评论
0/150
提交评论