位置:学校首页 > 学校动态>北京新手学Python需要多久哪家机构合适
北京新手学Python需要多久哪家机构合适?在北京Python培训班有很多,但是根据机构规模和教学水平,小编推荐您可以到北京中公优就业了解一下!中公教育是大型的多品类职业教育机构,提供超过100个品类的综合职业就业培训服务。公司在超过1000个直营网点展开经营,深度覆盖300多个地级市,并正在向数千个县城和高校扩张。
捕获多个异常
除了可以捕获到指定的异常和没有发生异常这两种情况外,还有第三种情况,就是在try和except之间的代码块中,发生了异常,但不是指定的异常:
try:
#将输入x和y的代码放进try中,其余不变
x=int(input('请输入被除数:'))
y=int(input('请输入除数:'))
result=x/y
print('结果为{}'.format(result))
except ZeroDivisionError:
print('除数不能为零')
print('='*30)
尝试输入被除数为一个不能转换为整数的字符串,如字母'c':
请输入被除数:c
Traceback(most recent call last):
File"example.py",line 2,in<module>
x=int(input('请输入被除数:'))
ValueError:invalid literal for int()with base 10:'c'
Python解释器提示出错了,ValueError,而上述代码只能捕获ZeroDivisionError,这就是第三种情况,如果发生了异常,但不是指定的ZeroDivisionError,Python解释器仍然报错(除非在外层的try-except语句中处理了这个异常)。
如果想同时处理这两种异常,那么可以将这两种异常名称全部写在except语句后面,用逗号分隔开,并用括号括起来:
try:
x=int(input('请输入被除数:'))
y=int(input('请输入除数:'))
result=x/y
print('结果为{}'.format(result))
except(ZeroDivisionError,ValueError):
print('除数不能为零,且被除数与除数必须为数字')
print('='*30)
运行修改后的程序,输入被除数为'c':
请输入被除数:c
除数不能为零,且被除数与除数必须为数字
==============================
由此可见,成功处理了ValueError。再次运行程序,试试它还能不能处理ZeroDivisionError:
请输入被除数:10
请输入除数:0
除数不能为零,且被除数与除数必须为数字
=============================
可以同时处理这两种异常,要处理更多的异常也是如此,只要在括号中添加待处理的异常即可。除此之外,还可以使用多个except关键字,分别处理这两种异常的情况,这样做的好处是可以根据不同的异常进行不同的处理:
try:
x=int(input('请输入被除数:'))
y=int(input('请输入除数:'))
result=x/y
print('结果为{}'.format(result))
except ZeroDivisionError:#处理ZeroDivisionError
print('除数不能为零!')
except ValueError:#处理ValueError
print('除数与被除数必须为数字!')
print('='*30)
测试是否能处理这两种异常,首先测试是否处理ValueError:
请输入被除数:s
除数与被除数必须为数字!
==============================
然后测试是否处理ZeroDivisionError:
请输入被除数:10
请输入除数:0
除数不能为零!
==============================
由此可见,使用两个except关键字能够分别处理这两种异常情况。