我目前正在撰寫閃電代碼,但我在 while 回圈中遇到了一些問題。我想在我設定的特定時間后停止 While 回圈。這是代碼。
class Light:
def __init__(self):
self.work_flag = False
def start(self):
self.work_flag = True
def stop(self):
self.work_flag = False
def mode_1(self):
print("turn on red green blue light")
sleep(0.5)
while self.work_flag:
print("turn on red light")
sleep(0.3)
print("turn on green light")
sleep(0.3)
print("turn on blue light")
sleep(0.3)
print("turn on red green light")
sleep(0.3)
print("turn on red blue light")
sleep(0.3)
print("turn on green blue light")
sleep(0.3)
light = Light()
def light_start():
light.start()
light.mode_1()
def light_stop():
light.stop()
light_start()
sleep(5)
light_stop()
uj5u.com熱心網友回復:
也許你應該添加 elapsed_time 方法。它會等到所有作業都在“一段時間”內完成,但我認為這還不錯。
import time
class Light:
def __init__(self):
self.work_flag = False
def start(self):
self.startTime = time.time() # start time
self.work_flag = True
def stop(self):
self.work_flag = False
def mode_1(self):
self.endTime = time.time() # end time
elapsedTime = self.endTime - self.startTime # elapsed time
print("turn on red green blue light")
time.sleep(0.5)
#if elapsedTime > 5: the work is done.
while self.work_flag and elapsedTime < 5: # 5 seconds
self.endTime = time.time() # end time
elapsedTime = self.endTime - self.startTime # elapsed time
print(elapsedTime)
print("turn on red light")
time.sleep(0.3)
print("turn on green light")
time.sleep(0.3)
print("turn on blue light")
time.sleep(0.3)
print("turn on red green light")
time.sleep(0.3)
print("turn on red blue light")
time.sleep(0.3)
print("turn on green blue light")
time.sleep(0.3)
light = Light()
def light_start():
light.start()
light.mode_1()
def light_stop():
light.stop()
start = time.time()
light_start()
time.sleep(5)
light_stop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/479426.html
標籤:python-3.x for循环
