深圳建设品牌网站,经营网站的备案,怎么查一个公司是否正规公司,ps切片以后 怎么做网站【目录】 文章目录 1. try...except语法解析2. 程序异常3. except的4种使用方式3.1 单独的except3.2 except 异常名称3.3 except 异常类型 as 别名3.4 except (异常类型1,异常类型2) as 别名 4. 总结 【正文】 1. try…except语法解析
try[traɪ]#xff1a;尝试。
except[…【目录】 文章目录 1. try...except语法解析2. 程序异常3. except的4种使用方式3.1 单独的except3.2 except 异常名称3.3 except 异常类型 as 别名3.4 except (异常类型1,异常类型2) as 别名 4. 总结 【正文】 1. try…except语法解析
try[traɪ]尝试。
except[ɪkˈsept]把…排除在外。
try...except语句是Python中的异常处理机制用于捕获和处理异常。
【作用】
在程序发生异常时执行特定的代码块以避免程序崩溃或产生不可预料的结果。
【语法】
try:block1
except ExceptionName as alias:block1block[blɒk]代码块。
ExceptionName异常名称。
as作为如同。
alias [ˈeɪlɪəs]别名。
try 和 except是关键字。
注意关键字后面需要跟英文冒号: 。
注意英文冒号:后面的代码块需要有4个空格的缩进。
【参数说明】 block1表示可能出现错误的代码块。 ExceptionName 可选参数代表用户要捕获的异常名称。 as alias可选参数表示给前面的的异常指定一个别名alias代表别名。 如果在ExceptionName右侧加上as alias则表示为当前的异常指定一个别名通过该别名可以记录异常的具体内容。 block2表示进行异常处理的代码块。这里可以输出固定的提示信息也可以通过别名输出异常的具体内容。
【温馨提示】
在使用try...except语句捕获异常后当程序出错时输出错误信息后程序会继续执行。
【语法框架1】
try:# 可能会发生异常的代码块
except :# 处理异常类型的代码块可以是提示性语句【语法框架2】
try:# 可能会发生异常的代码块
except 异常名称 :# 处理异常类型的代码块可以是提示性语句【语法框架3】
try:# 可能会发生异常的代码块
except 异常类型 as 别名:# 输出异常的具体内容print(别名)【语法框架4】
try:# 可能会发生异常的代码块
except (异常类型1,异常类型2,异常类型3) as 别名:# 输出异常的具体内容print(别名) 可能会发生异常的代码块如果存在多个异常情况时在except语句后面使用一对英文圆括号( )将可能出现的异常名称括起来多个异常名称之间使用英文逗号,分隔。
2. 程序异常
编程中程序不能正常运行的原因通常有2种 一是程序有语法错误。 二是程序语法没有问题但使用者操作不当或输入的数据不符合要求。
下面这段代码的作用是接收用户输入的两个整数并输出它们相除得到的结果。
【代码示例】
# input接收到的数据为字符串类型需要用int函数将其转换成整数类
a int (input(请输入第1个整数))
b int (input(请输入第2个整数))
# 计算a除以b
result a/b
print(结果为,result)【终端输出】
结果为 0.5操作者输入正常时终端显示的结果如下图所示 我粗心大意在终端输入时给第2个整数b输入的值为0终端显示的结果如下图所示 大家注意这段代码是没有语法错误的报错是因为给变量b赋的值为0。
【报错提示】
File D:\安迪笔记\1.基础语法\95-异常\95.py, line 5, in module
result a/b
ZeroDivisionError: division by zero运行代码程序报 ZeroDivisionError: division by zero 这个错误。 line 5表示第5行代码有错误。 ZeroDivisionError是一个异常的名称除数为0时会引发该错误。 division by zero表示被零除。
ZeroDivisionError是一个Python的异常用于表示除法运算中出现除数为零的情况。
当我们在程序中执行除法运算时如果除数为零就会抛出ZeroDivisionError异常。
这个异常的出现通常是由于代码逻辑错误或者错误的输入导致的。
上面的代码报错就是属于使用者操作不当或输入的数据不符合要求导致的程序异常。
出现这样的报错我们可以使用Python提供的异常处理机制。
可以用try...except语句捕获出现的异常让程序继续运行。
except的有4种使用方式我们依次来看。
3. except的4种使用方式
3.1 单独的except
try的意思是尝试我们把可能出现异常的代码放到try中注意try后面有英文冒号:冒号后有4个空格的缩进。
try :# input接收到的数据为字符串类型需要用int函数将其转换成整数类a int (input(请输入第1个整数))b int (input(请输入第2个整数))# 计算a除以bresult a/bprint(结果为,result)如果try后面的代码没有问题则程序正常输出结果。
如果try后面的代码出现异常则程序执行except后面的代码。
except后面接进行异常处理的代码块。
【代码示例】
try :# input接收到的数据为字符串类型需要用int函数将其转换成整数类a int (input(请输入第1个整数))b int (input(请输入第2个整数))# 计算a除以bresult a/bprint(结果为,result)
except :print(输入有问题程序不能正常输出结果。)【终端输出】 第1种情形是except后面什么参数也不加回车后跟上一句提示性语句这句语句你可以结合实际随意编写。
print(输入有问题程序不能正常输出结果。)该语句是一句提示信息在这里它就是进行异常处理的代码块。
3.2 except 异常名称
【代码示例】
try :# input接收到的数据为字符串类型需要用int函数将其转换成整数类a int (input(请输入第1个整数))b int (input(请输入第2个整数))# 计算a除以bresult a/bprint(结果为,result)
except ZeroDivisionError:print(输入有问题程序不能正常输出结果。)【终端输出】 except ZeroDivisionError:第2种情形是except后面加上ZeroDivisionError。
ZeroDivisionError是一个异常名称编写其它程序时这里需要根据实际情况替换成其它的异常名称。
Python中的异常名称有固定的写法后面会学。
观察上述2种情况的输出结果发现有没有异常名称输出的结果都是一样的。
但对于程序员来说有异常名称可以有一个提醒的作用。
3.3 except 异常类型 as 别名
【代码示例】
try :# input接收到的数据为字符串类型需要用int函数将其转换成整数类a int (input(请输入第1个整数))b int (input(请输入第2个整数))# 计算a除以bresult a/bprint(结果为,result)
except ZeroDivisionError as e:print(e)【终端输出】 except ZeroDivisionError as e:print(e)except是关键字。 ZeroDivisionError是异常名称这里可以替换成你觉得会发生的异常名称。 as是关键字不能更改。 e是别名它记录了异常的具体内容这里的e你可以根据你自己的喜好来命名。 :注意最后要加英文冒号哦。 print(e)输出程序记录的异常内容根据该内容我们可以排查是什么地方发生了异常。
这里程序记录的异常为division by zero表示除数为0。
看到异常原因我们下次在终端输入的时候不要给除数赋值为0就能避免这个异常。
3.4 except (异常类型1,异常类型2) as 别名
【代码示例】
# input接收到的数据为字符串类型需要用int函数将其转换成整数类
a int (input(请输入第1个整数))
b int (input(请输入第2个整数))
# 计算a除以b
result a/b
print(结果为,result)除了除数为0的异常上面的代码还可能有其它的异常。
我因为输入错误在给b赋值时不小心将0输错成了p终端输出结果如下图所示
【终端输出】 【报错提示】
Traceback (most recent call last):
File D:\安迪笔记\1.基础语法\95-异常\95.py, line 3, in module
b int (input(请输入第2个整数))
ValueError: invalid literal for int() with base 10: p运行上面的代码程序报 ValueError: invalid literal for int() with base 10: p 这个错误。 line 3表示第3行有语法错误。 ValueError是一个异常的名称表示传入的值错误。 invalid literal for int() with base 10: p表示用户输入的字符串是’p’而int()函数无法将这个字符串解析为一个有效的整数。
invalid[ɪnˈvælɪd]无效的。
literal [ˈlɪtərəl]文本常量。
base [beɪs]基础。
invalid literal for int() with base 10: p逐次翻译为使用十进制基数将字符串p转换为整数时出现无效的字面值。
invalid literal for int() with base 10: p这个错误是由于我尝试将一个非数字字符转换为整数而引发的。
在Python中int()函数用于将字符串转换为整数。
然而当你尝试将一个无法转换为整数的字符串如字母传递给int()函数时就会出现这个错误。
当b0的时候程序出现ZeroDivisionError异常。
当bp的时候程序出现ValueError异常。
我们发现同样的代码可能存在多个异常。
在捕获异常时如果需要同时处理多个异常我们可以采用下面的代码实现
【代码示例】
try :# input接收到的数据为字符串类型需要用int函数将其转换成整数类a int (input(请输入第1个整数))b int (input(请输入第2个整数))# 计算a除以bresult a/bprint(结果为,result)
except (ZeroDivisionError,ValueError) as e:print(e)【程序存在2个异常情况】
except (ZeroDivisionError,ValueError) as e:print(e)上面的程序可以捕获2个异常。
当b0的时候程序捕获了ZeroDivisionError异常输出division by zero。
当bp的时候程序捕获了ValueError异常输出invalid literal for int() with base 10: p。
【b0程序抛出ZeroDivisionError异常】 【bw程序抛出ValueError异常】 4. 总结
【语法总结】
try:# 可能会发生异常的代码块# 1. 单独的except
except :print(输入有问题程序不能正常输出结果。)# 2. except异常名称
except ZeroDivisionError:print(输入有问题程序不能正常输出结果。)# 3. except 异常名称 as 别名
except ZeroDivisionError as e:print(e) # 4. except (异常名称1, 异常名称1) as 别名
except (ZeroDivisionError,ValueError) as e:print(e)【没有try...except语句的输出结果】 【有try...except语句的输出结果】 【except语句中没有as的输出结果】 【except语句中有as的输出结果】