Python - break 语句在 while 循环内的 else 语句中不起作用

Python - break statement not working in else statement within while loop

当我使用 break 语句时,代码中的 while 循环拒绝终止,我真的很困惑为什么会这样。

point = 0
while point < len(list_of_line_lists) - 1:
    sentence = list_of_line_lists[point]["text"]
    datapoint = point
    while True:
        try:
            if list_of_line_lists[datapoint]["author"] == list_of_line_lists[datapoint + 1]["author"]:
                sentence += list_of_line_lists[datapoint + 1]["text"]
                datapoint += 1
                print(datapoint)
            else:
                print("this isn't breaking")
                break
        except IndexError:
            break

在我上面的代码中,else 语句中的 break 语句拒绝触发。其中的代码被执行,因为输出中出现了一系列“这没有中断”,但循环本身并没有终止。这是我的输出结果(直到我自己手动停止它):

this isn't breaking
this isn't breaking
this isn't breaking
this isn't breaking
this isn't breaking
this isn't breaking
this isn't breaking

知道为什么会这样吗?

内循环正在中断,但外循环没有。原因是因为您在外部 while 循环中使用了 point 变量,但是 (point) 变量值永远不会改变 (incremented/decremented).