【发布时间】:2022-07-06 23:39:42
【问题描述】:
我正在尝试调用一个方法,然后有一个 while 循环,只要该方法正在运行,它就会运行并记录数据。当方法完成运行时,它将停止记录。我最初尝试使用 while True: , for 循环, if False: return data and break。但是在 if False 语句中的 return data and break 出现 code unreachable 错误。我拿出了 if 语句,现在有了这个:
def recordData(memory_service):
""" Record the data from ALMemory.
Returns a matrix of values
"""
print "Recording data ..."
data = list()
# while program is running, record data
print "4"
kickCall()
while True:
print "5"
line = list()
for key in ALMEMORY_KEY_NAMES:
print "6"
value = memory_service.getData(key)
line.append(value)
print "7"
data.append(line)
return data
# break
但是,这仅在应该有很多数据时保存了一行数据。 (print# 语句只是检查)
这里是代码输出:Code output
带有 if 语句的代码:
def recordData(memory_service):
""" Record the data from ALMemory.
Returns a matrix of values
"""
print "Recording data ..."
data = list()
print "4"
kickCall()
while True:
print "5"
line = list()
for key in ALMEMORY_KEY_NAMES:
print "6"
value = memory_service.getData(key)
line.append(value)
print "7"
data.append(line)
if False:
print "8"
return data
break
print "9"
'''
【问题讨论】:
-
如果我理解正确的话,你只需要把回车移到左边。如果你有一个
return,循环将不会被进一步执行。只需确保最终break循环即可。 -
return data在 while 循环内。我认为不缩进返回语句 1 级将返回您想要的输出 -
hello @thinkgruen - 当我这样做时,它会将返回语句突出显示为“此代码无法访问”
-
return将在第一次迭代时跳出循环;您需要某种 conditional 返回,以使所有循环多次执行。 (否则,您根本不需要循环。)简单地取消缩进return语句确实使其无法访问,因为现在 nothing 终止循环:条件始终为真,并且没有 @ 987654329@ 声明终止它。 -
您需要一些方法来确定程序一旦停止运行,然后跳出循环并仅在那时返回。您能否提供有关您正在观看的其他节目的更多信息?
标签: python while-loop