python学习笔记——程序的异常处理和其他内置函数
1.try-except语句
python异常信息中最重要的是异常类型,它表明异常发生的原因,也是程序处理异常的依据。
try-except基本语法结构如下:
try:
<语句块1>
except <异常类型>:
<语句块2>
1.1例子
try:
num = eval(input("请输入一个数字:"))
print(num**3)
except:
print("输入错误,请输入一个整数!")
---------------------------------------------
请输入一个数字:!
输入错误,请输入一个整数!
2. 异常的高级用法
try-except语句可以支持多个except语句,语法如下:
try:
<语句块1>
except <异常类型1>:
<语句块2>
···
except <异常类型N>:
<语句块N+1>
except:
<语句块N+2>
当except语句不指定异常类型时,代表它可以处理任何情况下的异常。
2.1 例子
try:
vol = "QAZXSWEDCVFRTGBNHYUJMKIOLP"
num = eval(input("请输入整数,获得自己的幸运字母:"))
print(vol[num])
except NameError:
print("请输入一个整数!")
except:
print("其他错误")
------------------------------------------------------------
请输入整数,获得自己的幸运字母:no
请输入一个整数!
请输入整数,获得自己的幸运字母:!
其他错误
3.异常语句与finally,else配合使用
语法格式:
try:
<语句块1>
except <异常类型1>:
<语句块2>
else:
<语句块3>
finally:
<语句块4>
简而言之,如果有异常情况出现,走try,except,finally三条路,如果没有异常出现,则走try,else,finally三条路。
3.1例子
try:
vol = "QAZXSWEDCVFRTGBNHYUJMKIOLP"
num = eval(input("请输入整数,获得自己的幸运字母:"))
print(vol[num])
except:
print("请输入一个整数!且在[0,25]区间内!")
else:
print("没有发生异常!")
finally:
print("程序运行结束!")
-------------------------------------------------------------
请输入整数,获得自己的幸运字母:6
E
没有发生异常!
程序运行结束!
=================== RESTART: ========================
请输入整数,获得自己的幸运字母:qwq
请输入一个整数!且在[0,25]区间内!
程序运行结束!
4.异常处理小结
Python能识别多种异常类型,但不建议读者编写程序时过度依赖try-except 这种异常处理机制。try-except 异常一般只用来检测极少发生的情况,例如,用户输入的合规性或文件打开是否成功等。对于索引字符串超过范围的情况应该尽量在程序中采用if语句直接判断,而避免通过异常处理来应对这种可能发生的“错误”。
对于面向商业应用的软件产品,稳定性和可靠性是最重要的衡量指标之一。这类软件产品也不会滥用try-except类型语句。因为采用try-except语句会影响代码的可读性,增加代码维护难度,因此,一般只在关键地方采用try-except 类型语句处理可能发生的异常。建议读者结合函数设计统筹应用异常处理。更多经验还需要实践来积累。
——没看懂,到底该什么时候该使用异常语句呢?
——程序员都是对它又爱又恨,其实,想用就用吧,用户体验好才是王道!
5.其他内置函数
python中一共有68个内置函数,前期已经接触到了很多,现在再次对内置函数进行一次拓展,以便接下来的运用。
all()函数一般针对组合数据类型,如果其中每个元素都是True,则返回True,否则返回False。需要注意的是,整数0、空字符串"".空列表[]等都被当作False。
any()函数与all()函数相反,只要组合数据类型中任何一个是True,则返回True,全部元素都是False时返回False。
reversed()函数返回输入组合数据类型的逆序形式。
sorted()函数对一个序列进行排序,默认从小到大排序。
type()函数返回每个数据对应的类型。
5.1例子
>>> all(num)
False
>>> any(num)
True
>>> list(reversed(num))
[5, 4, 3, 2, 1, 0]
>>> sorted(num)
[0, 1, 2, 3, 4, 5]
>>> sorted(num,reverse = True)
[5, 4, 3, 2, 1, 0]
>>> type(num)
<class 'list'>