Python3基础教程第5章课件

PPT
  • 阅读 97 次
  • 下载 0 次
  • 页数 58 页
  • 大小 225.421 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Python3基础教程第5章课件
可在后台配置第一页与第二页中间广告代码
Python3基础教程第5章课件
可在后台配置第二页与第三页中间广告代码
Python3基础教程第5章课件
可在后台配置第三页与第四页中间广告代码
Python3基础教程第5章课件
Python3基础教程第5章课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 58
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】Python3基础教程第5章课件.pptx,共(58)页,225.421 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2353.html

以下为本文档部分文字说明:

Python3基础教程第2版慕课版第5章程序控制结构本章主要内容:分支结构循环结构异常处理5.1程序的基本结构程序的三种基本结构为:顺序结构、分支结构和循环结构。顺序结构的程序按语句的先后顺序依次执行各条语句。通常,程序默认为顺序结构

Python总是从程序的第一条语句开始,按顺序依次执行语句。典型的顺序结构。#输入两个整数,用不同的转换方法a=eval(input('请输入第1个整数:'))b=int(input('请输入第2个整数:'))#将a转换为浮点数

输出print('float(%s)='%a,float(a))print('格式化为浮点数:%e,%f'%(a,b))#创建复数输出print('complex(%s,%s)='%(a,b),complex(a,b))分支结构指程序根据条件执行不同的代码块。分支结构又可分为单分支结构、双

分支结构和多分支结构,示例代码如下。ifx>0:print('%s是正数'%x)#条件x>0成立时执行该语句else:print('%s小于等于0'%x)#条件x>0不成立时执行该语句循环结构指程序根据条件重复执行同一个代码块示例代码如下。f

orxinrange(5):#x依次取0、1、2、3、4print(x)#重复执行该语句5次5.2分支结构Python使用if语句实现程序的分支结构,包括单分支结构、双分之结构和多分支结构。本节主要内容:单分支结构双分

支结构多分枝结构if……else三元表达式5.2.1单分支结构单分支if语句的基本结构如下。if条件表达式:语句块当条件表达式计算结果为True时,执行语句块中的代码否则,不执行语句块中的代码。单分支if语句的执行流程如图所示示例代码如下。>>>x=5>>>ifx

>0:...print(x,'是正数')...5是正数5.2.2双分支结构双分支if语句的基本结构如下。if条件表达式:语句块1else:语句块2当条件表达式计算结果为True时,执行语句块1中的代码;否则,执行语句块2

中的代码。双分支if语句的执行流程如图所示示例代码如下。>>>x=-5>>>ifx>0:...print(x,'是正数')...else:...print(x,'不是正数')...-5不是正数5.2.3多分支结

构多分支if语句的基本结构如下。if条件表达式1:语句块1elif条件表达式2:语句块2……elif条件表达式n:语句块nelse:语句块n+1else部分可以省略。多分支if语句的执行流程如图所示

示例代码如下。>>>x=85>>>ifx<60:...print('不及格')...elifx<70:...print('及格')...elifx<90:...print('中等')...else:...print('优秀')...中等5.2.4i

f…else三元表达式if…else三元表达式是简化版的if…else语句,其基本格式如下。表达式1if条件表达式else表达式2当条件表达式计算结果为True时,将表达式1的值作为三元表达式的结果;否则,将表达式2的值作为三元表达式的结果。示例代码如下。>>>a=2>>>b=3>

>>x=aifa<belseb#a<b结果为True,将a的值2赋值给x>>>x2>>>x=aifa>belseb#a>b结果为False,将b的值3赋值给x>>>x3列表三元表达式基本格式如下。[表达式1,表达式2][条件表达式]当条件表达式计算结果为False时,将表达式1的值

作为三元表达式的值;否则,将表达式2的值作为三元表达式的值示例代码如下。>>>x=5>>>y=10>>>[x,y][x<y]#x<y结果为True,返回y的值10>>>[x,y][x>y]#x>y结果为Fal

se,返回x的值55.3循环结构本节主要内容:for循环while循环循环控制:continue、break5.3.1遍历循环:forfor语句实现遍历循环,其基本格式如下。forvarino

bject:循环体else:语句块2else部分可以省略。object是一个可迭代对象。for语句执行时,依次将object中的数据赋值给变量var——该操作称为迭代。var每赋值一次,则执行一次循环体。循环执行结束时,如果有else部分,则执行对应的语句块。els

e部分只在正常结束循环时执行。如果用break跳出循环,则不会执行else部分。在for语句中,用n表示object中数据的位置索引,for语句循环的执行流程如图所示示例代码如下。#用x迭代元组中的对象,其中包含了一个嵌套的子元组>>>forxin(1,2,3,(4,5

)):...print(x)...123(4,5)>>>forxin'book’:#用x迭代字符串中的每个字符...print(x)...book>>>forxin(1,2,3):...print(x*2)...else:#else部分在循环正常结束时执行...print('loo

pover')...246loopover2.使用range()函数可以使用range()函数来生成包含连续多个整数的range对象,其基本格式为:range(end)range(start,end[,step])只指定一个参数(end

)时,生成整数范围为0~end-1。指定两个参数(start和end)时,生成整数范围为start~end-1。整数之间的差值为step,step默认为1。示例代码如下。>>>forxinrange(3):...print(x)...012>>>forxinrange(-2,2):

...print(x)...-2-101>>>forxinrange(-2,2,2):...print(x)...-20可在for循环中用多个变量来迭代序列对象,示例代码如下。>>>for(a,b)in(

(1,2),(3,4),(5,6)):...print(a,b)...123456#等价于fora,bin((1,2),(3,4),(5,6)):与赋值语句类似,可以用“*”表示给变量赋值一个列表,示例代码如下。>>>for(a,*b)in((1,2,'abc'),(3

,4,5)):...print(a,b)...1[2,'abc']3[4,5]4.嵌套的for循环Python允许嵌套使用for循环,即在for循环内部使用for循环。例如,下面的代码输出100以内的素数——除了1和它本身之外不能被其他数整除的数是素数。print(1,2,3,end="

")#1、2、3是素数,直接输出,end=""使后续输出不换行forxinrange(4,100):forninrange(2,x):ifx%n==0:#若余数为0,说明x不是素数,结束当前for循环

breakelse:print(x,end='')#正常结束for循环,说明x是素数,输出else:print('over')5.3.2无限循环:while1.while语句循环的基本结构while语句基本结构如下。while条件

表达式:循环体else:语句块2,else部分语句可以省略。while语句循环的执行流程如图所示。如果条件表达式始终为True,则构造无限循环——也称“死循环”。计算1+2+……+100。s=0n=1whilen<=100:s=s+nn=n+1print('1+2+...+100

=',s)用while循环来输出100以内的素数。x=1whilex<100:n=2whilen<x-1:ifx%n==0:break#若余数为0,说明x不是素数,结束当前循环n+=1else:print(x,en

d='')#正常结束循环,说明x没有被任何数整除,是素数,输出x+=1else:print('over')2.嵌套使用while循环Python允许在while循环的内部使用while循环。例如,下面的代码输出九九乘法表。

a=1whilea<10:b=1whileb<=a:print('%d*%d=%2d'%(a,b,a*b),end='')b+=1print()a+=15.3.3循环控制:break和continue在for循环和while循环中可以使用break和continue语

句。break语句用于跳出当前循环,即提前结束循环(包括跳过else)。continue则用于跳过循环体剩余语句,回到循环开头开始下一次循环。用for循环找出100~999范围内的前10个回文数字——3位数中个位和百位相同的数字为回文数字。a=[]n=0forxinrang

e(100,999):s=str(x)ifs[0]!=s[-1]:continue#如果x不是回文数字,回到循环开头,x取下一个值开始循环a.append(x)#x是回文数字,将其加入列表n+=1#累计获得的回文数字个数ifn==1

0:break#找出10个回文数字时,跳出for循环print(a)#break跳出时,跳转到该处执行将上面的代码中的for循环改为while循环,可以实现相同的功能,代码如下。a=[];n=0;x=100whilex<999:s=str(x)ifs[0]!=

s[-1]:x=x+1continue#x如果不是回文数字,回到循环开头,x取下一个值开始循环a.append(x)#x是回文数字,将其加入列表n+=1#累计获得的回文数字个数x=x+1ifn==10:break#找出10个回文数字时,跳出

while循环print(a)#break跳出时,跳转到该处执行5.4异常处理本节主要内容:异常处理基本结构捕捉多个异常except…as捕捉所有异常异常处理结构的嵌套try…finally终止行为raise语句异常链:异常引发异常assert语句•异常指程序在运行过程中发生的错

误,异常会导致程序意外终止。•异常处理可捕捉程序中发生的异常,执行相应的处理代码,避免程序意外终止。•程序中的语法错误不属于异常。5.4.1异常处理基本结构异常处理的基本结构如下。try:可能引发异常

的代码except异常类型名称:异常处理代码else:没有发生异常时执行的代码finally:不管是否发生异常,都会执行的代码在处理异常时,将可能引发异常的代码放在try语句块中。在except语句中指明捕捉处理的异常类型

名称,except语句块中为异常处理代码。程序运行时,如果try语句块中的代码发生了指定异常,则执行except语句块。else语句块中为没有发生异常时执行的代码,else语句块可以省略。finally部分的代码不管是否发生异常都会执

行,可以省略finally语句块。示例代码whileTrue:n=eval(input('请输入一个正整数:'))ifn==-1:break#输入为-1时结束程序ifn<0:continue#计算n的阶乘s=1forxinrange(2,n+1):#当n不是整数时,会发生TypeErro

r异常s*=xprint('%s!='%n,s)捕捉异常whileTrue:try:n=eval(input('请输入一个正整数:'))ifn==-1:break#输入为-1时结束程序ifn<0:continue#计算n的阶乘s=1forxinra

nge(2,n+1):#当n不是整数时,会发生TypeError异常s*=xprint('%s!='%n,s)exceptTypeError:#异常处理print('输入数据错误,必须是正整数!')Python内置的常见异常类型Attribu

teError:访问对象属性出错时引发的异常,例如访问不存在的属性或属性不支持赋值等。EOFError:使用input()函数读文件,遇到文件结束标志EOF时发生的异常。文件对象的read()和readline()方法遇到EOF时返回空字符串,不会引发异常。

ImportError:导入模块出错引发的异常。IndexError:使用序列对象的下标超出范围时引发的异常。StopIteration:迭代器没有可执行迭代的迭代元素引发的异常。IndentationError:使用了不正确的缩进引发的异常。TabError:同时使用

Tab键和空格导致缩进不一致引发的异常。TypeError:在运算或函数调用时,使用了不兼容的类型引发的异常。ZeroDivisionError:除数为0时引发的异常。5.4.2捕捉多个异常使用多个except语句捕捉可能出现的多种异常如下。>>>x=[1,2]

>>>try:...x[0]/0...exceptZeroDivisionError:...print('除0错误')...exceptIndexError:...print('索引下标超出范围')...else:...print('没有错误')...除0错误5.4.3

except…as在except语句中可以使用as为异常类创建一个实例对象>>>x=[1,2]>>>try:...x[0]/0#此处引发除0异常...except(ZeroDivisionError,IndexError)asexp

:#处理多种异常...print('出错了:')...print('异常类型:',exp.__class__.__name__)#输出异常类名称...print('异常信息:',exp)#输出异常信息...出错了:异常类型:ZeroDivisionError异常信息:divisio

nbyzero5.4.4捕捉所有异常except语句省略了异常类型,则不管发生何种类型的异常,均会执行except语句块中的异常处理代码>>>try:...2/0#引发除0异常...except:...print('出错了'

)...出错了sys.exc_info()方法sys.exc_info()方法返回一个三元组:(type,value,traceobj)type为异常类的类型,可用__name__属性获得异常类的名称。value为异常类的实例对象,直接将其输出可获得异常描述信息。tr

aceobj是一个堆栈跟踪对象(traceback类的实例对象),使用traceback模块的print_tb()方法可获得堆栈跟踪信息示例代码>>>x=[1,2,3]>>>try:...print(x[3])...except:...

importsys...x=sys.exc_info()...print('异常类型:%s'%x[0].__name__)...print('异常描述:%s'%x[1])...print('堆栈跟踪信息:')...importtraceback...traceback.print_tb(x[2

])5.4.5异常处理结构的嵌套Python允许在异常处理结构的内部嵌套另一个异常处理结构。在发生异常时,没有被内部捕捉处理的异常可以被外层捕捉。>>>x=[1,2]>>>try:...try:...5/0...excep

tZeroDivisionError:...print('内部除0异常')...x[2]/2#内部没有捕捉的异常...exceptIndexError:...print('外层下标越界异常')5.4.6try…finally终止行为不管try语句块中是否发生异常,finally语句块中的代码

都会执。try:print(5/0)#发生除0异常except:print('出错了!’)#发生异常后执行该语句finally:print('finally部分已执行!’)#不管是否发生异常,都会执行该语句print('over')#异常处理结构的后续代码5.4.7raise语句

raise语句基本格式如下。raise异常类名#创建异常类的实例对象,并引发异常raise异常类实例对象#引发异常类实例对象对应的异常raise#重新引发刚发生的异常Python执行raise语句时,会引发异常并传递异常类的实例对象。1.用类名引发异常在raise语句中指定异常类名时,会创建

该类的实例对象,然后引发异常,示例代码如下。>>>raiseIndexError#引发异常Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>IndexError2.用异常类实例

对象引发异常可以直接使用异常类实例对象来引发异常,示例代码如下。>>>x=IndexError()#创建异常类的实例对象>>>raisex#引发异常Traceback(mostrecentcalllast):File"<stdin>",line1,in<mod

ule>3.传递异常不带参数的raise语句可再次引发刚发生过的异常,其作用就是向外传递异常,示例代码如下。>>>try:...raiseIndexError#引发IndexError异常...except:...print('出错了')...raise#

再次引发IndexError异常4.指定异常信息在使用raise语句引发异常时,可以为异常类指定描述信息。>>>raiseIndexError('索引下标超出范围')Traceback(mostrecentcallla

st):File"<stdin>",line1,in<module>IndexError:索引下标超出范围>>>raiseTypeError('使用了不兼容类型的数据')Traceback(mostrecentcalllast):File"<stdi

n>",line1,in<module>TypeError:使用了不兼容类型的数据5.4.8异常链:异常引发异常可以通过raise…from…语句,使用异常来引发另一个异常。>>>try:...5/0#引发除0异常...exceptExceptionasx:...raiseIndex

Error('下标越界')fromx#引发另一个异常5.4.9assert语句assert语句的基本格式如下。assert条件表达式,dataassert语句在条件表达式的值为False时,引发AssertionError异常,data作为异常描述信息。>>>x=0>>

>assertx!=0,'变量x的值不能为0'Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>AssertionError:变量x的值不能为0用try来捕捉assert语句引发的Ass

ertionError异常。>>>try:...importmath...x=-5...assertx>=0,'参数x必须是非负数'...exceptExceptionasex:...print('异常类型:',ex.__class__.__name__)...print('异常信息:

',ex)...异常类型:AssertionError异常信息:参数x必须是非负数5.5综合实例在IDLE创建一个Python程序,输出数字金字塔分析:图形共9行每行前面的空格比上一行少一个第n行的数字为:n、n-1……1、2……n

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?