如何处理Python中的错误
我是Python新手,这次我想在Python中练习错误处理。 这是我的练习: 我有两个列表:如何处理Python中的错误,python,Python,我是Python新手,这次我想在Python中练习错误处理。 这是我的练习: 我有两个列表:l1=[1,2,3,4,5,6]sil2=[0,1,0,2,john,4]。我想迭代l1,对于每个索引,我希望它的元素被l2中相同索引上的元素除以。如果有错误,我希望打印每个列表中的元素以及索引 我做错了什么事。你能帮我吗? 请在下面找到我的代码: l1 = [1, 2, 3, 4, 5, 6] l2 = [0, 1, '0', '2', 'john', 4] try: x=0 floa
l1=[1,2,3,4,5,6]
sil2=[0,1,0,2,john,4]
。我想迭代l1,对于每个索引,我希望它的元素被l2中相同索引上的元素除以。如果有错误,我希望打印每个列表中的元素以及索引
我做错了什么事。你能帮我吗?
请在下面找到我的代码:
l1 = [1, 2, 3, 4, 5, 6]
l2 = [0, 1, '0', '2', 'john', 4]
try:
x=0
float(x)
for indexl1, elementl1 in enumerate(l1):
for indexl2, elementl2 in enumerate(l2):
x = elementl1 / elementl2
print('-------')
except ValueError as ve:
print('error, not number', elementl1, elementl2, indexl1, ve)
except ZeroDivisionError as zde:
print('error, zerodiv', elementl1, elementl2, indexl1, zde)
else:
print(x)
您只需移动try,内部循环除外:
l1 = [1, 2, 3, 4, 5, 6]
l2 = [0, 1, '0', '2', 'john', 4]
for indexl1, elementl1 in enumerate(l1):
for indexl2, elementl2 in enumerate(l2):
try:
x = elementl1 / elementl2
print('-------')
except ValueError as ve:
print('error, not number', elementl1, elementl2, indexl1, ve)
except ZeroDivisionError as zde:
print('error, zerodiv', elementl1, elementl2, indexl1, zde)
else:
print(x)
请用您遇到的错误更新您的问题。当我运行此代码时,它的运行与我预期的一样:我得到
错误,zerodiv 1 0 0 0 0 0除以零
,因为第一个迭代路径遇到了ZeroDivision错误,错误处理退出了循环。您希望错误处理在循环中发生,因为错误导致它从循环中断(因此您没有使它通过第一项)。我想显示错误并转到下一次迭代。我想这是我得到的blocked@Edelovic您可以将try移动到循环内部以外的位置。