1、“异常”的概念
:::tips
每当发生让python不知所措的错误时,他都会创建一个异常对象。
如果你编写了处理该异常的代码,程序将继续运行;
否则,程序将停止运行,并显示一个traceback,其中包含有关异常的报告。
:::
2、处理ZeroDvisionError
总所周知,不能除0。如果你这么做了,python将会报错;但如果使用以下try-except
代码块:
try:
print(5/0)
except ZeroDivisionError:
print("这种玩意儿你也写得出来?")
:::tips 输出:这种玩意儿你也写得出来? ::: 程序正常运行结束。
应用举例:
print("输入两个数,我来除它!")
print("输入q退出程序!")
while True:
first_number = input("\n第一个数:")
if first_number =='q':
print("拜拜了您嘞!")
break
second_number =input("\n第二个数,搞快点:")
try:
ans=int(first_number)/int(second_number)
except ZeroDivisionError:
print("除0这种事你都干得出来??")
else:
print(ans)
输出如下:
输入两个数,我来除它!
输入q退出程序!
第一个数:2
0.6666666666666666
第一个数:5
第二个数,搞快点:0
除0这种事你都干得出来??
3、处理FileNotFoundError
与上同理
filename = 'zhebushiyaobaiyangma.txt'#没有这文件
try:
with open(filename) as a:
b = a.read()
except FileNotFoundError:
msg = "麻了,你这 "+filename + " 文件找不到嘞"
print(msg)
输出如下: :::tips 麻了,你这 zhebushiyaobaiyangma.txt 文件找不到嘞 :::
4、分析文本
方法split()以空格为分隔符将字符串分拆成多个部分,并将这些部分都存储到一个列表中
filename = 'alice.txt'#这个文件存了《Alice in Wonderland》
try:
with open(filename) as f_obj:
contents = f_obj.read()
except FileNotFoundError as e:
msg = "Sorry, the file " + filename + " does not exist."
print(msg)
else:
# 计算这个文件大约有多少个词
words = contents.split()
num_words = len(words)
print("The file " + filename + " has about " + str(num_words) + " words.")
:::tips 输出:The file alice.txt has about 29461 words. :::
5、装哑巴
try:
#sth.
except FileExistsError:
pass #这里
else:
#sth.
这里的pass就是什么都不做,啥也不会发生。pass也可以用作占位符,以便日后的操作