《Python教材》-模块3Python流程控制_第1页
《Python教材》-模块3Python流程控制_第2页
《Python教材》-模块3Python流程控制_第3页
《Python教材》-模块3Python流程控制_第4页
《Python教材》-模块3Python流程控制_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块3

Python流程控制13.1选择结构

在登陆邮箱时,如果用户名和密码正确,登录邮箱成功,否则屏幕会显示“用户名或密码错误”,需要重新输入。这种根据条件来做出判断的例子,在程序编写中,选择结构程序可以实现这一判断功能。选择结构通过判断条件是否成立,来决定执行哪个分支。选择结构有多种形式,分为:单分支选择结构、双分支选择结构、多分支选择结构。23.1.1单分支选择结构

if语句单分支结构的语法形式如下:

if条件表达式:语句/语句块当条件表达式结果为True时,执行语句块,否则该语句块将不被执行,继续执行后面的代码。如图3-1所示。3是

条件表达式是否成立?语句块否图3-1单分支选择结构3.1.1单分支选择结构

【例题3-1】从键盘上输入三个数,将最大的数输出。a=eval(input("请输入第一个数:"))b=eval(input("请输入第二个数:"))c=eval(input("请输入第三个数:"))ifa>b:b=aifb>c:c=bprint("最大值为:{0}".format(c))【运行结果】请输入第一个数:56请输入第二个数:78请输入第三个数:8最大值为:7843.1.2双分支选择结构

if语句双分支结构的语法形式如下:

if条件表达式:语句块1

else:

语句块2当条件表达式结果为True时,执行语句块1,否则执行语句块2,如图3-2所示。5是

条件表达式是否成立?语句块1否图3-2双分支选择结构语句块23.1.2双分支选择结构

【例题3-2】从键盘上输入一个整数,判断输入的数值是正数还是负数。a=eval(input("请输入一个整数:"))ifa>=0:print("您输入了一个正数")else:print("您输入了一个负数")【运行结果】请输入一个整数:7您输入了一个正数63.1.2双分支选择结构

Python中有一个三目运算符,可以实现与双分支类似的效果,三目运算符的语法形式:value1ifconditionelsevalue2当condition成立时,返回value1的值,反之返回value2的值。【例题3-2】用三目运算符表示a=eval(input("请输入一个整数:"))print("您输入了一个正数")ifa>0elseprint("您输入了一个负数")【运行结果】请输入一个整数:-6您输入了一个负数73.1.3多分支选择结构

多分支选择结构的语法格式如下:

if条件表达式1:语句块1

elif条件表达式2:语句块2

elif条件表达式3:

语句块3 ……

else:语句块n当满足条件表达式1,执行语句1,不满足条件表达式1满足条件表达式2,执行语句1,不满足条件表达式1和条件表达式2,满足条件表达式3,执行语句3以此类推,所有条件都不满足,执行语句块n,如图3-3所示。83.1.3多分支选择结构

9……否

条件表达式1是否成立?

条件表达式2是否成立?

条件表达式3是否成立?语句块2语句块3语句块n是是是否否图3-3多分支选择结构语句块13.1.3多分支选择结构

【例题3-3】用多分支结构处理身体指标BMI问题,身体质量指标:BMI(BodyMassIndex)是国际上常用的衡量人体肥胖和健康状况的标准。BMI=体重(kg)/身高2(m2)表3-1BMI国际标准10分类国际BMI值偏瘦<18.5正常18.5~25偏胖25~30肥胖≥303.1.3多分支选择结构

height=eval(input("请输入身高(米)"))weight=eval(input("请输入体重(公斤)"))bmi=weight/pow(height,2)print("BMI的值为:{:.2f}".format(bmi))index=""ifbmi<18.5:index="偏瘦"elif

bmi<25:index="正常"elif

bmi<30:index="偏胖"else:index="肥胖"print("BMI的值为:国际标准{0}".format(index))11【运行结果】请输入身高(米)1.75请输入体重(公斤)66BMI的值为:21.55BMI的值为:国际标准正常3.1.4选择结构的嵌套

在if-else语句的缩进块中可以包含其他if-else语句,称为嵌套if-else语句。在嵌套的选择结构中,根据对齐的位置来进行else与if的配对。语法格式如下:

if条件表达式1:语句块1

if条件表达式2:语句块2

else:语句块3

else:

if条件表达式4:语句块4条件表达式1为真时,执行语句块1,然后判断条件表达式2。条件表达式2为真时,执行语句块2,否则执行语句块3;条件表达式1为假时,判断条件表达式4。条件表达式4为真时,执行语句块4,否则结束整个选择结构。123.1.4选择结构的嵌套

上面语法中if和else的隶属关系如图3-4所示。最外层1,是双分支if-else语句,内层2分为上下两部分,上面的部分是双分支if-else语句,下面的部分是单分支if语句。13

if条件表达式1:语句块1

if条件表达式2:语句块2

else:语句块3

else:

if条件表达式4:语句块4

图3-4嵌套语句if和else的隶属关系图

1223.1.4选择结构的嵌套

【例题3-4】输入一个分数,判断分数的等级并输出,输入数据小于0大于100,输出“成绩不合法,请重新输入”;90以上是A,80以上是B,70以上是C,60以上是D。60以下是E。score=int(input("请输入一个成绩:"))grade="ABCD"ifscore<0orscore>100:print("成绩不合法,请重新输入")else:num=score//10ifnum>=6:print("成绩是:{0}--等级是:{1}".format(score,grade[9-num]))else:print("成绩是:{0}--等级是:E".format(score))

143.1.4选择结构的嵌套

【运行结果】第一种情况:请输入一个成绩:200成绩不合法,请重新输入第二种情况:请输入一个成绩:85成绩是:85--等级是:B第三种情况:请输入一个成绩:37成绩是:37--等级是:E153.2循环结构日常生活中,有许多具有规律性的重复操作,如一年春、夏、秋、冬四季,就是按照顺序不断重复出现的;每周七天,从周日、周一、周二……直到周六,也是循环出现的。循环结构是在一定条件下反复执行某段程序的流程结构,循环语句是由循环体及循环的终止条件两部分组成的,被反复执行的程序被称为循环体,循环的终止条件决定循环体能否继续执行。163.2.1for循环和while循环

1.for循环for循环一般用于循环次数可以提前确定的情况,尤其适用于枚举和遍历序列或者迭代对象中元素的场合,常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。for循环语法结构:for循环变量in序列:

循环体173.2.1for循环和while循环

for循环又称遍历循环,有保留字for和in组成,完整遍历所有元素后结束,每次循环,所获得元素放入循环变量,并执行一次语句。for循环执行流程如图3-5所示。18

条件表达式语句块1图3-5for循环执行流程循环体语句循环变量在序列中循环变量不在序列中3.2.1for循环和while循环

【例题3-5】使用for循环计算1-100的整数的和。sum=0foriinrange(1,101):sum+=iprint("1-100的和是:{0}".format(sum))【运行结果】1-100的和是:5050193.2.1for循环和while循环

2.while循环while循环一般用于循环次数难以提前确定的情况,也可以用于循环次数确定的情况。while循环和if条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while就会一直重复执行那段代码块。while语句的语法格式如下:while条件表达式:

循环体203.2.1for循环和while循环

21

条件表达式是否成立?

图3-6while循环结构的执行流程循环体语句是否3.2.1for循环和while循环

【例题3-6】使用while循环计算1-100的整数的和。sum=0i=1while

i<=100:sum=sum+ii=i+1print("1-100的和:{0}".format(sum))【运行结果】1-100的和:5050223.2.1for循环和while循环

3.循环结构中else用法无论是while循环还是for循环,其后都可以紧跟着一个else代码块,它的作用是当循环条件为False跳出循环时,程序会最先执行else代码块中的代码。其语法结构为:23for循环变量in序列:

循环体[else:else子句代码块]

while条件表达式:

循环体[else: else子句代码块]3.2.1for循环和while循环

修改【例题3-6】的代码,添加else代码块sum=0i=0while

i<=100:sum=sum+ii=i+1else: print("1-100的和:{0}".format(sum))else代码块的用法会在讲解

break语句时具体介绍。【运行结果】1-100的和:5050243.2.2break与continue

在执行while循环或者for循环时,只要条件表达式的值为真(True)时,程序将会一直执行循环体。但在某些场景,我们可能希望在循环结束前就强制结束循环,Python提供了2种强制离开当前循环体的办法,break语句和continue语句。break语句用来提前结束break语句所属层次的循环,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句continue语句用来跳过当前循环的剩余语句,然后继续进行下一轮循环。253.2.2break与continue

1.break语句通过例题3-7看一下break语句的使用方法。【例题3-7】将给定的字符串中的每个字符单独输出,遇到字符‘h’,停止输出,并输出“字符串中有字符‘h’,输出终止!”,如果字符串中没有字符‘h’,“输出字符串中没有字符‘h’,所有字符已输出!”。263.2.2break与continue

str=input("请输入一个字符串:")isfind=Falseforsinstr:ifs=='h':isfind=Trueprint("字符串中有字符‘h’,输出终止!")breakprint("当前字母:{0}".format(s))ifnotisfind:print("输出字符串中没有字符‘h’,所有字符已输出!")

27请输入一个字符串:python当前字母:p当前字母:y当前字母:t字符串中有字符‘h’,输出终止!请输入一个字符串:program当前字母:p当前字母:r当前字母:o当前字母:g当前字母:r当前字母:a当前字母:m输出字符串中没有字符'h’,所有字符已输出!3.2.2break与continue

修改例题3-7的代码,使用for循环和else语句搭配。str=input("请输入一个字符串:")forsinstr:ifs=='h':print("字符串中有字符'h’,输出终止!")breakprint("当前字母:{0}".format(s))else:print("输出字符串中没有字符'h’,所有字符已输出!")283.2.2break与continue

2.continue语句str=input("请输入一个字符串:")isfind=Falseforsinstr:ifs=='h':isfind=Trueprint("字符串中有字符‘h’,已跳过!")continueprint("当前字母:{0}".format(s))ifnotisfind:print("输出字符串中没有字符‘h’,所有字符已输出!")

29break语句:请输入一个字符串:python当前字母:p当前字母:y当前字母:t字符串中有字符‘h’,输出终止!continue语句:请输入一个字符串:python当前字母:p当前字母:y当前字母:t字符串中有字符‘h’,已跳过!当前字母:o当前字母:n3.3综合案例

【例题3-8】根据输入的年份是否是闰年进行判断,输出对应的结果,例如输入:1980,输出:1980年是闰年。year=int(input("请输入您要判断的年份:"))if((year%4==0andyear%100!=0)or(year%400==0)):str="是"else:str="不是"print("{0}年{1}闰年".format(year,str))【运行结果】请输入您要判断的年份:19801980年是闰年303.3综合案例

【例题3-9】一个5位数,判断它是不是回文数。如12321是回文数,个位与万位相同,十位与千位相同。ans=["是","不是"]i=int(input("请输入一个五位数:"))ifi<10000ori>99999:print("您输入的数据不是五位数")else:i=str(i)flag=0forjinrange(0,2):ifi[j]!=i[4-j]:flag=1breakprint("{0}{1}回文".format(i,ans[flag]))31【运行结果】请输入一个五位数:6787667876是回文>>>请输入一个五位数:1234512345不是回文>>>请输入一个五位数:999999您输入的数据不是五位数>>>

3.3综合案例

【例题3-10】输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。importstrings=input("请输入一个字符串:")letter=0space=0digit=0other=0forcins:ifc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论