Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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
奇数嵌套循环不';t正确地中断(Python3.x)_Python_Python 3.x_Nested Loops_Break - Fatal编程技术网

奇数嵌套循环不';t正确地中断(Python3.x)

奇数嵌套循环不';t正确地中断(Python3.x),python,python-3.x,nested-loops,break,Python,Python 3.x,Nested Loops,Break,下面的代码应该打印多行 1 2 3 1 1 1 1 3 夹杂着一行行行的 0 0 但是,它实际打印的是多行 1 2 3 1 1 1 1 3 夹杂着一行行行的 0 0 代码: hmap是一个二维浮点值数组,传递给该代码所在的函数 这段代码应该生成一系列矩形,供其他(不相关的)代码部分稍后使用。“通过”的矩形(最小/最大值的差值不大于v)会导致 待打印。不“通过”的矩形应导致 当循环中断时,作为和的嵌套打印。为什么不工作?代码块上的缩进看起来不正确。有else语句与for语句对齐

下面的代码应该打印多行

1
2
3
1
1
1
1
3
夹杂着一行行行的

0
0
但是,它实际打印的是多行

1
2
3
1
1
1
1
3
夹杂着一行行行的

0
0
代码:
  • hmap
    是一个二维浮点值数组,传递给该代码所在的函数
这段代码应该生成一系列矩形,供其他(不相关的)代码部分稍后使用。“通过”的矩形(最小/最大值的差值不大于
v
)会导致

待打印。不“通过”的矩形应导致


当循环中断时,作为和的嵌套
打印。为什么不工作?

代码块上的缩进看起来不正确。有
else
语句与
for
语句对齐,等等。Python使用缩进来分隔这样的代码块。仔细检查代码或此处复制的内容是否正确对齐。如果问题中的缩进不正确,请随意编辑。

代码可能打破了错误的循环,我可能错了。 对于while循环,创建一个布尔变量并将其设置为true。然后在while循环中,在需要时使用if语句使其为false

top_loop, bottom_loop = True, True
while top_loop:
    # do something
    while bottom_loop:
        # do something
        if condition:
            top_loop = False
我还没有想到for循环。 在这个链接上有一个答案,为循环命名并打破for循环。它使用contextlib库


在尝试运行代码时,我遇到了一个
索引器:列表索引超出范围的错误。看起来您可能已经转置了列和行索引。尝试将
[c][r]
下标更改为
[r][c]

# [...]
            for c in range(x, x+wtemp):
                for r in range(y, y+htemp):
                    minh = min(minh,hmap[r][c])
                    maxh = max(maxh,hmap[r][c])
# [...]

我不确定这是否是不正确的中断/打印的原因,但这肯定会有所不同。

Python for语句可能还有其他块。哇,谢谢。每天学习新的东西。此外,对问题的改进要求通常应该出现在对问题的评论中,而不是答案中。顺便说一句,while和try语句也可以包含else子句。对,我认为代码行为不正确的原因是缩进,缩进可能就是答案,但同时也希望让人相信这可能是问题中的复制/粘贴问题。结果我不知道我在说什么:)你能提供一个导致这个失败的
hmap
v
的例子吗?几乎任何
hmap
都可以工作,只要它是一个等长数组(包含浮点值)的数组
v
也是一个浮点数,所以也可以将其设置为任意值。哈哈。cmd输出没有改变,但是该函数现在在实际程序中工作得非常好。我没有遇到
索引器的原因是因为我一直在使用“方形”数组。我不确定这在我的代码中是如何工作的。这可能会引起一些问题。