目录
2.双分支结构(根据判断条件结果而选择不同向前路径的运行方式)
分支结构
注意:在每个if,elif, else 后要接上:(冒号),不然会出现语法错误。
1.单分支结构
if <条件>: #若条件为真值,执行语句块
<语句块>
2.双分支结构(根据判断条件结果而选择不同向前路径的运行方式)
if <条件>:
<语句块1>
else :
<语句块2> #若条件为真值执行语句块1,若为假则执行语句块2
紧凑结构:适应于简单表达式的二分支结构
<表达式1> if <条件> else <表达式2>
3.多分支结构(适用于多条件的判断,以及分级的问题)
if <条件>:
<语句块1>
elif <条件>: #可以出现多个elif,但在使用过程中要注意多个条件之间的包含关系。
#若条件出现数值的判断,要注意范围的覆盖以及区间
<语句块2>
elif <条件>:
<语句块3>
······
else :
<语句块4>
程序的异常处理
异常和错误:编程语言的异常和错误是两个相似但不同的概念。异常和错误都可能引起程序执行错误而退出,它们属于程序没有考虑到的例外情况。然而,绝大多数不可控因素是可以预见的,例如,程序期望获得数字输入却得到了其他字符输入、打开一个不存在的文件等。这种可以预见的例外情况称为异常,异常发生后经过妥善处理可以继续执行。另外一些因为程序编码逻辑产生不可预见的例外情况称为错误,错误发生后程序无法恢复执行,而且程序本不该处理这类可能的例外。
1.常见错误类型
AssertionError 断言语句失败(assert 后的条件为假)
AttributeError 访问的对象属性不存在
ImportError 无法导入模块或者对象,主要是路径有误或名称错误
IndentationError 代码没有正确对齐,主要是缩进错误
IndexError 下标索引超出序列范围
IOError 输入/输出异常,主要是无法打开文件
KeyError 访问字典里不存在的键
NameError 访问一个未声明的变量
OverflowError 数值运算超出最大限制
SyntaxError python语法错误
TabError Tab和空格混用
TypeError 不同类型数据之间的无效操作(传入对象类型与要求的不符合)
ValueError 传入无效的值,即使值的类型是正确的
ZeroDivisionError 除法运算中除数0 或者 取模运算中模数为0
一旦程序发生异常,表明该程序在执行时出现了非正常的情况,无法再执行下去。默认情况下,程序会终止退出。
————————————————
版权声明:本文为CSDN博主「公子聪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_50486192/article/details/123064964
2.异常处理语句:try-except 语句
python 异常信息中最重要的部分是异常类型,它表明发生异常的原因,也是处理异常的依据。
基本语法格式
try :
<语句块1>
except :
<语句块2>
#当执行语句块1时出现异常,则程序执行语句块2
try :
<语句块1>
except <异常类型>:
<语句块2>
#当执行语句块1时出现异常,且异常类型属于except,程序执行语句块2
3.异常高级用法
语法格式
try :
<语句块1>
except <异常类型1>:
<语句块2>
except <异常类型2>:
<语句块3>
······
except <异常类型N>:
<语句块N+1>
except :
<语句块N+2>
第一个到第N个except语句中都指定了异常类型,说明这些except 都对应处理指定的异常,最后一个except未标明异常类型,则出现除以上指定的异常类型外,执行该except 对应的语句块。该过程类似于 if-elif-else 。
异常语句中也可以加入else finally 等关键字,格式如下
try :
<语句块1>
except <异常类型>:
<语句块2>
else :
<语句块3>
finally:
<语句块4>
可用多个except 来判断多种异常类型,在这个其中,finally中的语句块4无论是否执行语句块1,一定会执行,而else后的语句块3只在程序执行语句块1后执行,else 可以看成程序在执行语句块1后的追加处理(奖励)
在使用try-except 中会影响程序的可读性,增加代码维护难度,所以不太建议过度依赖,但用不用决定权在于自己,开心最重要!!!!