首页 > 解决方案 > 如何在不中断循环的情况下返回变量?

问题描述

我想知道如何return()在不中断循环的情况下循环执行?我正在做秒表并试图返回一个变量,但似乎不起作用;

我的代码:

def stopwatch():
  for i in range(10):
    return(i+1)
  
x = stopwatch()
print(x)

我的输出是:1

如何修复我的代码?

标签: pythonloops

解决方案


也许您正在寻找发电机?

def stopwatch():
    for i in range(10):
        yield i + 1

您可以通过以下方式逐步获得生成器的“返回”:

x1 = stopwatch()
next(x1)
# Out: 1
next(x1)
# Out: 2
# etc...

或者通过再次循环它(即使与循环简单列表相比,我没有看到任何优势):

x2 = stopwatch()
for num in x2:
     print(num)

推荐阅读