Python 程序的输出 | 第十套(异常处理)

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

  • 难度级别: 简单

注意: 所有程序都在 python 版本 3 及更高版本上运行。

1)以下程序的输出是什么?

data = 50
try:
	data = data/0
except ZeroDivisionError:
	print('Cannot divide by 0 ', end = '')
else:
	print('Division successful ', end = '')

try:
	data = data/5
except:
	print('Inside except block ', end = '')
else:
	print('HY', end = '')
复制代码

a) Cannot divide by 0 HY
b) Cannot divide by 0
c) Cannot divide by 0 Inside except block HY
d) Cannot divide by 0 Inside except block

答: (a)
说明:  else 代码块只有在 try 块没有发生异常时才会执行。

2) 以下程序的输出是什么?

data = 50
try:
	data = data/10
except ZeroDivisionError:
	print('Cannot divide by 0 ', end = '')
finally:
	print('Haiyong ', end = '')
else:
	print('Division successful ', end = '')
复制代码

a) Runtime error
b) Cannot divide by 0 Haiyong
c) Haiyong Division successful
d) Haiyong

答: (a)
解释:  python 中不允许 finally 块后面的 else 块。使用这种格式时,Python 会抛出语法错误。

3) 以下程序的输出是什么?

value = [1, 2, 3, 4]
data = 0
try:
	data = value[4]
except IndexError:
	print('HY', end = '')
except:
	print('Haiyong ', end = '')
复制代码

a) Haiyong
b) HY
c) HY Haiyong
d) 编译错误

答: (b)
解释: 一次只捕获一个异常,即使try 块中的throw 异常很可能属于多个异常类型。

4) 以下程序的输出是什么?

value = [1, 2, 3, 4]
data = 0
try:
	data = value[3]
except IndexError:
	print('HY IndexError ', end = '')
except:
	print('Haiyong IndexError ', end = '')
finally:
	print('Hai IndexError ', end = '')

data = 10
try:
	data = data/0
except ZeroDivisionError:
	print('HY ZeroDivisionError ', end = '')
finally:
	print('Hai ZeroDivisionError ')
复制代码

a) HY ZeroDivisionError HY ZeroDivisionError
b) HY ZeroDivisionError Hai ZeroDivisionError
c) Hai IndexError HY ZeroDivisionError Hai ZeroDivisionError
d) Hai IndexError HY ZeroDivisionError

答: (c)
解释: 无论是否发生异常,finally 代码块总是被执行。如果发生异常,则先执行 except 块,然后执行 finally 块。

5) 以下程序的输出是什么?

value = [1, 2, 3, 4, 5]
try:
	value = value[5]/0
except (IndexError, ZeroDivisionError):
	print('Haiyong ', end = '')
else:
	print('HY', end = '')
finally:
	print('Hai ', end = '')
复制代码

a) Compilation error
b) Runtime error
c) Haiyong HY Hai
d) Haiyong Hai

答: (d)
解释:  python 中定义了 try 之间的 finally 块之间的 else 块。如果 try 块中没有异常,则执行 else,然后执行 finally 块。可以定义一个except块来捕获多个异常。

猜你喜欢

转载自juejin.im/post/7074817549447200782