如何处理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

我是Python新手,这次我想在Python中练习错误处理。 这是我的练习: 我有两个列表:
l1=[1,2,3,4,5,6]
si
l2=[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移动到循环内部以外的位置。