繁体   English   中英

如何在 Python 中跳出 While True 循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM