python异常处理练习题_1

python中关于异常处理的练习题:

  1. python中用来抛出异常的关键字是(C)
    A.try B.except C.raise D.finally

  2. ( C )类是所有异常类的父类
    A.Throwable B.Error C.Exception D.BaseException

  3. 对于except字句的排列,下列哪种是正确的( C )
    A.父类在先,子类在后
    B.子类在先,父类在后
    C.没有顺序,谁在前谁先捕获
    D.先有子类,其他如何排列都无关

  4. 在异常处理中,如释放资源、关闭文件、关闭数据库等由( C )来完成。
    A.try字句 B.catch子句 C.finally字句 D.raise子句

  5. 当方法遇到异常又不知如何处理时,下列哪种说法是正确的( B )
    A.捕获异常 B.抛出异常 C.声明异常 D.嵌套异常

  6. 自己动手编写一个列表越界的异常。

list_1=[1,2,3,4]
print('list_1[20]')
  1. 在练习6的基础上,用finally语句,实现如果抛出异常就输出index out of bound!
list_1=[1,2,3,4]
try:
	print(list_1[20])
finally:
	print('index out of bound!')
  1. 在练习7的基础上,用except语句
list_1=[1,2,3,4]
try:
	print(list_1[20])
except:
	print('index out of bound!')
  1. 编写代码,运算a/b,先判断b是不是等于零,如果b等于零,抛出分母为零异常。
def yunsuan(a,b):
  if b==0:
  	raise Exception('分母为零')
  else:
  	print('a/b')
  1. 编写代码,调用CCircle方法,计算圆的面积。并且自己定义一个异常类,如果半径为负值,抛出自己定义的异常。
import math
def RadioError(Exception):
	def __init__(self,info):
		self.info=info
	def show(self)
		print(self.info)
def CCircle(r):
	if r<0:
		raise RadiosError('半径为负值')
	else:
		print(math.pi*(r**2))
  1. 从命令行得到5个整数,放入一列表中,然后打印输出,要求:如果输入数据不为整数,要捕获产生的异常,显示“请输入整数”,捕获输入参数不足5个的异常(越界),显示“请输入至少5个整数”。
list_1=[]
for i in range(5):
	try:
		j=int(input('请输入一个整数:'))
	except:
		print('请输入整数!')
	else:
		list_1.append(j)
if len(list_1) != 5:
	raise Exception ('请输入至少五个整数!')
  1. 写一个方法sanjiao(a, b, c),判断三个参数是否能构成一个三角形,如果不能则抛出异常IllegalArgumentException,显示异常信息a,b,c”不能构成三角形”,如果可以构成则显示三角形三个边长,在方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
def sanjiao(a,b,c):
	if a+b>c and a+c>b and b+c>a:
		print(a,b,c)
	else:
		raise IIlegalAargumentException('不能构成三角形')
sanjiao(3,4,5)
sanjiao(1,4,5)

以上代码可以实现,但是下面这个不能实现,目前还没找到原因,不知道为啥。

def sanjiao(a,b,c):
	if a+b>c and a+c>b and b+c>a:
		print(a,b,c)
	else:
		raise IIlegalAargumentException('%s,%s,%s不能构成三角形',a,b,c)
i=input('给一个边长:')
j=input('再给一个边长:')
k=input('还有一个边长:')
sanjiao(i,j,k)
  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值