python-3.x 如何在for循环中传递异常

c9qzyr3d  于 2023-01-22  发布在  Python
关注(0)|答案(1)|浏览(170)
a = [2,"cat",None,1]

try:
    for i in a:
        print(int(i))
except Exception as e:
    print(e)
    pass

如何在for循环中传递异常。我需要将for循环放在try中,并需要在异常中传递值,然后从列表中获取值1

xpszyzbs

xpszyzbs1#

您可以按如下所示修改代码,以便在for循环中传递异常,并且仍然从列表中获取值1:

a = [2,"cat",None,1]

for i in a:
    try:
        print(int(i))
    except Exception as e:
        print(e)
        pass

这样,try块将位于for循环内部,except块将处理在尝试将当前元素i转换为整数时引发的任何异常,如果引发异常,则将执行pass语句,允许循环继续到下一次迭代,而不停止整个循环。
另一种方法是使用列表解析,过滤掉不能转换为int的元素。

a = [2,"cat",None,1]

valid_list = [i for i in a if isinstance(i, (int,float))]
print(valid_list)

这样,最终的列表将只包含成功转换为int型的值,而非int型的值将被过滤掉。

相关问题