《Python大数据基础与实战》课件-Python大数据基础与实战(第5章 流程控制)_第1页
《Python大数据基础与实战》课件-Python大数据基础与实战(第5章 流程控制)_第2页
《Python大数据基础与实战》课件-Python大数据基础与实战(第5章 流程控制)_第3页
《Python大数据基础与实战》课件-Python大数据基础与实战(第5章 流程控制)_第4页
《Python大数据基础与实战》课件-Python大数据基础与实战(第5章 流程控制)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

第五章流程控制5.4break和continue语句5.2选择结构5.3循环结构5.1条件表达式5.5案例实战前面章节已经学习了Python的基本语法和内置的数据结构,本章学习Python常用的流程控制语句。程序流程控制语句是程序设计语言的基础,是编程的重点。Python通过选择语句if、if…else、if…elif…else和循环语句while、for等来实现程序的流程控制功能。5.1条件表达式5.1条件表达式在选择结构和循环结构中,常常需要对条件表达式的值进行判断来确定下一步的执行流程。在Python中,条件表达式的构成要比其它语言灵活得多,单个常量、变量或者任意合法表达式(包括函数调用表达式)都可以作为条件表达式。5.1条件表达式条件表达式中可以使用算术运算符、关系运算符、逻辑运算符、位运算符和矩阵相乘运算符等条件表达式的值为False的情况False、0(0.0、0j)、None、空列表、空元组、空集合、空字典、空字符串、空range;对象或其它空迭代对象,Python解释器均认为等价于False。条件表达式的值为True的情况条件表达式的值只要不是False,Python均认为与True等价。Python不同于其它语言,条件表达式中不能使用赋值运算符“=”,否则会抛出异常。5.2选择结构5.2选择结构-单分支选择结构单分支选择结构是最简单的一种形式。Python提供了if语句来支持单分支结构,其语法结构如下所示:if条件表达式:

满足条件时要执行的语句块注意:同一语句块的所有语句缩进相同。5.2选择结构-单分支选择结构代码示例如下:math=65print('开始进入if语句并判断表达式的值是否为True')ifmath>=85: #条件表达式

print('数学成绩优秀') #if语句块,满足条件执行,否则不执行print('if语句运行结束') #if语句结构外语句5.2选择结构-双分支选择结构单分支结可以决定条件为真时要做的事情,无法决定条件为假时如何做,这就需要使用双分支选择结构的if…else语句。其语法结构如下:if条件表达式:满足条件时要执行的语句块1else:

不满足条件时要执行的语句25.2选择结构-双分支选择结构代码示例如下:day="正月初一"ifday==“年三十”:

#if语句条件表达式

print('今天是除夕') #if语句块,满足条件执行else:

#if语句块,不满足条件执行

print('过年了')print('可以拿压岁钱了')5.2选择结构-多分支选择结构多分支结构if…elif…else语句对if条件语句中的多个条件进行判断,然后执行相应的语句块,其用法如下:if条件表达式1:

满足条件1时要执行的语句块1elif条件表达式2:

满足条件2时要执行的语句块2elif条件表达式3:

满足条件3时要执行的语句块3else:

不满足上述条件时执行的语句块45.2选择结构-多分支选择结构if…elif…else语句执行流程如图5.2选择结构-多分支选择结构示例如下:score=int(input("请输入你的分数:")) ifscore>=90: print("你的等级是:A") elifscore>=80: print("你的等级是:B") elifscore>=60: print("你的等级是:C") elifscore>=40: print("你的等级是:D") elifscore>=0: print("你的等级是:E") else: print("祝贺你已经完成成绩分级。")5.2选择结构-选择结构的嵌套if嵌套就是在一个选择结构的语句块中包含另一个选择结构,其用法如下:if条件表达式1:

满足条件1时要执行的语句块1 if条件表达式2:

满足条件2时要执行的语句块块2 else:

不满足条件2时要执行的语句块3else:

不满足条件1时要执行的语句块45.2选择结构-选择结构的嵌套message=["你的成绩及格","你的成绩中等","你的成绩良好","你的成绩优秀","你的成绩不及格"]score=int(input("请输入你的分数:"))if0<=score<=100:

index=(score-60)//10

ifindex>=0:

print(message[index])

else:

print(message[-1])else:

print("错误的成绩,成绩必须在0和100之间")5.3循环结构5.3循环结构

Python循环控制结构whileforwhile循环一般用于循环次数难以提前确定的情况,也可以用于循环次数确定的情况。for循环一般用于循环次数可以提前确定的情况,尤其是用于枚举序列或迭代对象中的元素。一般优先考虑使用for循环。相同或不同的循环结构之间都可以互相嵌套,实现更为复杂的逻辑。5.3循环结构

while循环和for循环的执行流程如图5.3循环结构while循环常见用法:while条件表达式:循环体for循环常见用法:for<循环变量>in<可迭代对象或迭代器>:循环体5.3循环结构else子句常见用法for...else语法形式如下:for<循环变量>in<可迭代对象或迭代器>:

循环体else:

代码块while...else语法形式如下:while条件表达式:

循环体else:

代码块5.3循环结构循环简单代码示例如下:count=0 #初始化循环控制变量whilecount<5: #条件表达式的值为True时,执行循环体

print(count,"islessthan5") #注意缩进要一致

count+=1

#循环控制变量自增,避免死循环else: print(count,"isnotlessthan5") #表达式的值为False时执行else语句块5.3循环结构循环简单代码示例如下:name=[“XiJing”,“University”]

#定义一个列表forcinname:

#遍历列表中的每一个元素

ifc=="XiJing": print("founded!")else: print(“Thesearchiscomplete”)

#遍历完列表的元素后执行print鸡兔同笼问题。假设共有鸡、兔30只,脚90只,求鸡、兔各有多少只。forjiinrange(1,30):if2*ji+(30-ji)*4==90:print('ji:',ji,'tu:',30-ji)5.3循环结构5.3循环结构循环结构的优化在编写循环语句时,应该尽量减少循环内部不必要的计算,将与循环变量无关的代码尽可能放到循环体的外面。优化前的代码:digits=(1,2,3,4)result=[]foriinrange(1000):foriindigits:

forjindigits:

forkindigits:

result.append(i*100+j*10+k)#i,j,k各执行执行1000*4**3次5.3循环结构5.3循环结构优化后的代码:digits=(1,2,3,4)result=[]foriinrange(1000):foriindigits:

i=i*100 #i执行1000*4次

forjindigits:

j=j*10 #j执行1000*4**2次

forkindigits:

result.append(i+j+k) #k执行1000*4**3次5.4break和continue语句5.4break和continue语句break和continue都是循环控制关键字,为循环结构提供额外的控制break和continue可以与for和while循环搭配使用break和continue只能在循环中使用,不能单独使用在嵌套循环中,break和continue只对最近的一层循环起作用5.4break和continue语句示例代码:求i除以2的余数,如果余数为0结束当次循环,继续执行后续循环;如果余数不为0则打印i,并判断如果i>=7就结束整个循环,执行循环后语句。foriinrange(10): ifi%2==0:

continue print(i,end=",") ifi>=7:

breakelse: #由于break会提前跳出循环体,所以else子句不会得以执行

print("循环结束")

5.5案例实战5.5案例实战-案例描述编写程序打印空心等边三角形的程序。编写程序打印九九乘法表的程序。编写程序输出50以内的勾股数,要求每行显示6组,各勾股数无重复。5.5案例实战-案例实现打印空心三角形:先定义一个变量rows记录等边三角形边长,用循环嵌套和if-elif-else语句控制等边三角形边上点的位置。代码如下:rows=int(input("输入行数:"))foriinrange(0,rows): #i控制每一行forkinrange(0,2*rows-1): #k控制每一行中的列数if(i!=rows-1)and(k==rows-i-1ork==rows+i-1):#控制每行打印*的位置

print("*",end="\t")elifi==rows-1: #最后一行

ifk%2==0: print("*",end="\t")else:print("",end="\t")else: #控制每行打印空格的位置

print("",end="\t")print("\n")5.5案例实战-案例实现打印九九乘法表:使用两层循环完成任务,外层循环控制打印的行数,内层循环控制打印的列数和值。print("九九乘法表")i=1 #外层循环控制变量初始化foriinrange(1,10):j=1 #内层循环控制变量初始化

forjinrange(1,i+1):print("%d*%d=%-2d"%(i,j,i*j),end='')j+=1print("\n")i+=15.5案例实战-案例实现输出50以内的勾股数:可以采用多种循环的穷

温馨提示

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

评论

0/150

提交评论