[英]How to break out of a While True loop in Python
我正在使用 RFID 阅读器读取 Python 中的卡片,我想检测卡片在几秒钟、几分钟和几小时内被检测到的时间。
一旦检测到卡并开始计数,程序就会开始运行,但问题是当卡被移除时代码不会中断,而是即使没有检测到卡也会继续计数。
代码附在下面:
import time as tm
import serial
import readCard
def getActivity():
# tm.sleep(3)
while True:
card = readCard.readCard()
cards = card
if card != '':
seconds = 0
minutes = 0
hours = 0
while True:
print(str(hours).zfill(2) + ":"
+ str(minutes).zfill(2) + ":"
+ str(seconds).zfill(2))
seconds = seconds + 1
tm.sleep(1)
if seconds == 60:
seconds = 0
minutes = minutes + 1
if minutes == 60:
minutes = 0
hours = hours + 1
else:
print('No Card Detected...')
getActivity()
output如下:
00:00:00
00:00:01
00:00:02
00:00:03
00:00:04
00:00:05
如果检测到卡,我希望时间开始计算,一旦卡被移除,程序应该开始打印出“未检测到卡...”。
你永远不会从第二个while True
离开。 您必须每秒读取卡片并检查卡片是否已被移除。 将下面的代码添加到第二个while True
。 我认为这可能会解决您的问题,并且在取出卡后,程序会从while
break
。
if readCard.readCard() == '':
break
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.