|
10鱼币
本帖最后由 Cria 于 2020-5-24 08:54 编辑
已知列表['0','1','2','','a',['1','2','3']],采用异常处理结构编写程序,将每个列表元素转换为整型,类型转换过程中若未发生异常,打印“第i个位置元素是数值型”;若发生ValueError和TypeError异常,打印“第i个位置元素转换为整型时发生异常”,并打印异常信息;无论是否存在异常,均打印“第i个位置元素为X”,其中X为该元素的值。
- a = ['0','1','2','','a',['1','2','3']]
- for i in range(len(a)):
- try:
- inta = int(a[i])
- except (ValueError,TypeError) as e: #直接指名道姓效率更高一些
- print("第{}个位置元素转换为整型时发生异常".format(i+1))
- else:
- print("第{}个位置元素是数值型".format(i+1))
- finally:
- print("第{}个位置元素为{}".format(i+1,a[i]))
复制代码
- a = ['0','1','2','','a',['1','2','3']]
- for index , i in enumerate(a):
- try:
- i = int(i)
- except (ValueError , TypeError):
- print('第%d个位置元素转换为整型时发生异常' % index)
- else:
- print('第%d个位置元素是数值型' % index)
- finally:
- print('第%d个位置元素为%s' % (index,i))
-
复制代码
拖了这么久,不好意思
给个参考。。。。。。(最佳答案还是很全的)
而且呀
为什么没人用else呢?
emmm。。。。。
try:
。。。。
execpt:
。。。。
else:
。。。。
finally:
。。。。
本帖最后由 Twilight6 于 2020-5-24 08:15 编辑
- ls = ['0', '1', '2', '', 'a', ['1', '2', '3']]
- for i in range(len(ls)):
- try:
- ls[i] = int(ls[i]) # 将 列表的第i个元素转化为整型
- except ValueError: # 捕获ValueError
- print(f'第{i+1}个位置元素转换为整型时发生异常:ValueError')
- except TypeError: # 捕获TypeError
- print(f'第{i+1}个位置元素转换为整型时发生异常:TypeError')
- print(f'第{i+1}个位置元素为', ls[i]) # 题目要求不管转化是否出错都打印
复制代码
哈哈啊哈哈 我发现错误了 
|
评分
-
查看全部评分
|