Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在嵌套for循环中使用try例外_Python_Loops_Exception_Try Except - Fatal编程技术网

Python 在嵌套for循环中使用try例外

Python 在嵌套for循环中使用try例外,python,loops,exception,try-except,Python,Loops,Exception,Try Except,我有一个嵌套循环,在这个循环中,我对三维数组中的每个网格点执行计算。其中一些网格点会触发错误。我想计算每个可能的网格点,并跳过那些触发错误的网格点 我试过: 以sharedmem.MapReduce(np=45)作为池: def计算功能(abc): 对于范围(241)内的k: 尝试: 对于范围内的j(int(datetime_范围)): 对于范围内的l((abc),abc+1): 值=计算值(pr[j,k,l],te[j,k,l],de[j,k,l]) 数组[j,k,l]=值 除了(索引器、Va

我有一个嵌套循环,在这个循环中,我对三维数组中的每个网格点执行计算。其中一些网格点会触发错误。我想计算每个可能的网格点,并跳过那些触发错误的网格点

我试过:

以sharedmem.MapReduce(np=45)作为池:
def计算功能(abc):
对于范围(241)内的k:
尝试:
对于范围内的j(int(datetime_范围)):
对于范围内的l((abc),abc+1):
值=计算值(pr[j,k,l],te[j,k,l],de[j,k,l])
数组[j,k,l]=值
除了(索引器、ValueError):
持续
pool.map(cape_func,范围(0479))
^上面,计算了一些网格点,但我认为当异常中捕捉到k值时,代码不会计算该k的其余网格点

下面,我尝试添加另一个try-except块来迭代所有网格点。我认为这不起作用——它似乎在无限循环

以sharedmem.MapReduce(np=45)作为池:
def计算功能(abc):
对于范围(241)内的k:
尝试:
对于范围内的j(int(datetime_范围)):
尝试:
对于范围内的l((abc),abc+1):
值=计算值(pr[j,k,l],te[j,k,l],de[j,k,l])
数组[j,k,l]=值
除了(索引器、ValueError):
持续
除了(索引器、ValueError):
持续
pool.map(cape_func,范围(0479))

我想您可能在寻找一个
通过
语句,而不是
继续
。但我可能不太理解你的问题。在旁注上,你能不能不把它矢量化


由于所有循环都在一个范围内,因此它看起来似乎唯一可能抛出
索引
错误的是
calc
函数。为什么不用函数和数组赋值来包装这两行代码呢

为什么不把try-catch放在第三个内部for循环中的表达式周围呢?我想您可能在寻找
pass
语句,而不是
continue
。但我可能不太理解你的问题。在旁注中,您不能将其矢量化吗?看起来唯一可能抛出
索引
错误的是
计算
函数,因为您的所有循环都在一个范围内。为什么不用函数和数组赋值来包装这两行代码呢?是的,可能需要
通过
,因为我认为
继续
退出for循环。谢谢@juliabougutskaya,这可能是最好的解决方案。我不知道为什么我以前没有这样做,有时候你只需要另一双眼睛。仍然存在一些根本性的错误,但我认为尝试除外是有效的。我必须进一步调查此事。