如何在 while 循环中使用 return 语句?
How to use the return statement in a while loop?
在我的程序中,我有一个定时器函数,它使用了一个while循环。我希望它在循环时 return 从它开始的时间过去,而不停止功能。
def timer():
time_ = 0
while True:
time.sleep(1)
time_ += 1
return time_
但是 return 打破了循环。
如果时间是 x,我需要类似 return 的东西来启动另一个函数:
if timer() < 20:
# do something
else:
# do something else
您每次调用 timer()
函数时都会重置 time_ = 0
。
尝试在函数外部实例化 time_
,以便下次调用 timer()
函数时它可以继续递增。
time_ = 0
def timer ():
time_ += 1
return time
使用yield
。它类似于 return
,但可以在循环中使用。有关详细信息,请参阅 What does the "yield" keyword do?
def timer():
time_ = 0
while True:
time.sleep(1)
time_ += 1
yield time_
for i in timer():
if i < 20:
# do something
else:
# do something else
在我的程序中,我有一个定时器函数,它使用了一个while循环。我希望它在循环时 return 从它开始的时间过去,而不停止功能。
def timer():
time_ = 0
while True:
time.sleep(1)
time_ += 1
return time_
但是 return 打破了循环。 如果时间是 x,我需要类似 return 的东西来启动另一个函数:
if timer() < 20:
# do something
else:
# do something else
您每次调用 timer()
函数时都会重置 time_ = 0
。
尝试在函数外部实例化 time_
,以便下次调用 timer()
函数时它可以继续递增。
time_ = 0
def timer ():
time_ += 1
return time
使用yield
。它类似于 return
,但可以在循环中使用。有关详细信息,请参阅 What does the "yield" keyword do?
def timer():
time_ = 0
while True:
time.sleep(1)
time_ += 1
yield time_
for i in timer():
if i < 20:
# do something
else:
# do something else