【发布时间】:2019-09-12 20:54:02
【问题描述】:
我实现了一个嵌套的 while 循环。这是问题的源代码:
While/Break working as expected
while length < k and i < len(words):
# Do something
if len(word) + length < k:
# Check condition
else:
break
output.append(formatLine(line, length, k))
我正在尝试根据条件构建单词列表(包括空格的单词长度应小于宽度 k)。一旦达到边界,我需要打破我正在做的内部 while 循环。
但是 - 如果我在休息前将格式化的行添加到输出列表中,我不会得到预期的结果。如果我打破了内部的 while 循环,然后在从 while 循环出来后将该行附加到输出中,我将获得与我的解决方案一样的预期输出。
所以我的问题是 - 为什么 Python 会以这种方式行事。在内部while循环之外初始化的变量“line”应该在break之前具有相同的值;或者,如果我打破了内部 while 循环并在此之后立即访问该值。但这并没有发生。
While/Break not working as you would think
while length < k and i < len(words):
# Do something
if len(word) + length < k:
# Check condition
else:
output.append(formatLine(line, length, k))
break
【问题讨论】:
-
所以我不是唯一一个一直打错“pythong”的人:)
-
这两个代码不等价。这里缺少minimal reproducible example 很难回答,但问问自己,你确定代码总是会中断吗? (因为,当代码没有达到中断时会发生什么?)
标签: python python-2.7 loops while-loop break