Cria 发表于 2020-5-20 23:32:41

py异常方面

本帖最后由 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)
    except (ValueError,TypeError) as e:   #直接指名道姓效率更高一些
      print("第{}个位置元素转换为整型时发生异常".format(i+1))
    else:
      print("第{}个位置元素是数值型".format(i+1))
    finally:
      print("第{}个位置元素为{}".format(i+1,a))
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-20 23:32:42

本帖最后由 Twilight6 于 2020-5-24 08:15 编辑

Cria 发表于 2020-5-24 08:11
真就打印‘第i个位置元素。。。。。’

ls = ['0', '1', '2', '', 'a', ['1', '2', '3']]

for i in range(len(ls)):
    try:
      ls = int(ls)# 将 列表的第i个元素转化为整型

    except ValueError:# 捕获ValueError
      print(f'第{i+1}个位置元素转换为整型时发生异常:ValueError')

    except TypeError:# 捕获TypeError
      print(f'第{i+1}个位置元素转换为整型时发生异常:TypeError')

    print(f'第{i+1}个位置元素为', ls)# 题目要求不管转化是否出错都打印
哈哈啊哈哈 我发现错误了{:10_245:}

xiangjianshinan 发表于 2020-5-21 01:14:43

lsa = ['0','1','2','','a',['1','2','3']]
for i in range(len(lsa)):
    print("第{}个位置元素为{}".format(i+1,lsa))
    try:
      inta = int(lsa)
      print("第{}个位置元素是数值型".format(i+1))
    except:
      print("第{}个位置元素转换为整型时发生异常".format(i+1))

Twilight6 发表于 2020-5-21 01:46:24

本帖最后由 Twilight6 于 2020-5-24 08:16 编辑

ls = ['0', '1', '2', '', 'a', ['1', '2', '3']]

for i in range(len(ls)):
    try:
      ls = int(ls)# 将 列表的第i个元素转化为整型

    except ValueError:# 捕获ValueError
      print(f'第{i+1}个位置元素转换为整型时发生异常:ValueError')

    except TypeError:# 捕获TypeError
      print(f'第{i+1}个位置元素转换为整型时发生异常:TypeError')

    print(f'第{i+1}个位置元素为', ls)# 题目要求不管转化是否出错都打印
香蕉君~如果帮助♀到你♂就给个最佳吧~~{:10_273:}

老八秘制 发表于 2020-5-21 07:22:36

Twilight6 发表于 2020-5-21 01:46
香蕉君~如果帮助♀到你♂就给个最佳吧~~

你的头像被盗了{:10_256:}

Twilight6 发表于 2020-5-21 07:29:50

老八秘制 发表于 2020-5-21 07:22
你的头像被盗了

是啊那个 ZZ 我之前看错一个帖子以为是自己回复的

永恒的蓝色梦想 发表于 2020-5-21 08:12:57

Twilight6 发表于 2020-5-21 01:46
香蕉君~如果帮助♀到你♂就给个最佳吧~~

空气突然焦♂灼♂{:10_256:}

Twilight6 发表于 2020-5-21 08:14:06

永恒的蓝色梦想 发表于 2020-5-21 08:12
空气突然焦♂灼♂

{:10_275:}{:10_273:}
https://xxx.ilovefishc.com/album/202003/31/111806sdzhrkjo4ak3px51.jpg

sunrise085 发表于 2020-5-21 08:55:47

用两个except捕获两种异常并打印异常信息,然后用finally进行元素的输出打印
ls = ['0','1','2','','a',['1','2','3']]
for i in range(len(ls)):
    try:
      ls = int(ls) # 将列表的第i个元素转化为整型
    except ValueError as error1: # 捕获ValueError
      print('第%d个位置元素转换为整型时发生异常:'%i,error1)
    except TypeError as error2:# 捕获TypeError
      print('第%d个位置元素转换为整型时发生异常:'%i,error2)
    finally:
      print('第%d个位置元素为'%i,ls) # finally语句,不管有没有异常都会执行

焦健鬼 发表于 2020-5-21 10:20:04

Twilight6 发表于 2020-5-21 07:29
是啊那个 ZZ 我之前看错一个帖子以为是自己回复的

谁盗的

Twilight6 发表于 2020-5-21 10:21:15

焦健鬼 发表于 2020-5-21 10:20
谁盗的

看日志

Cria 发表于 2020-5-24 08:11:13

Twilight6 发表于 2020-5-21 01:46
香蕉君~如果帮助♀到你♂就给个最佳吧~~

真就打印‘第i个位置元素。。。。。’{:10_277:}

Twilight6 发表于 2020-5-24 08:12:14

Cria 发表于 2020-5-24 08:11
真就打印‘第i个位置元素。。。。。’

哈哈香蕉君 不然你是什么要求

Cria 发表于 2020-5-24 08:41:07

Twilight6 发表于 2020-5-24 08:13
哈哈啊哈哈 我发现错误了

自信♂回头{:10_256:}

Twilight6 发表于 2020-5-24 08:42:20

Cria 发表于 2020-5-24 08:41
自信♂回头

如果帮助到你 你懂的 {:10_273:}
https://xxx.ilovefishc.com/album/202003/31/111806sdzhrkjo4ak3px51.jpg
页: [1]
查看完整版本: py异常方面