python - 条形码批量扫描 - 为什么此代码需要两次扫描才能终止?

标签 python python-3.x raspberry-pi4

我是一名 Python 程序员新手,正在尝试编写一个 Python 脚本来运行条形码扫描站(Raspberry Pi 4、RPiOS、Python 3.7.3)。我想扫描一定数量的元素,完成​​后我想扫描不同的条形码来处理输入。如果批量计数满足,它将从那里发送 GPIO 信号,或者如果计数过高或过低,则直接终止程序。

我写的内容很成功,但有一个异常(exception):当扫描第二个条形码来处理输入时,需要扫描两次才能触发脚本的其余部分。我很困惑为什么会这样,并且确信这是我忽略的简单事情。

import RPi.GPIO as GPIO
GPIO.setwarnings(False)
import time

good = 38

GPIO.setmode(GPIO.BOARD)

GPIO.setup(good,GPIO.OUT)
GPIO.output(good,GPIO.HIGH)

try:
    def batch_order():

        batch = input("Enter the number of parts on the order: ")
        barcode1 = input("Scan MASTER barcode: ")
        print("Begin scanning barcodes: ")
        count = 0
    
        while True:
            
            if input() == barcode1:
                count+= 1
                print("Part count: %s"%(str(count)))
            elif input() != barcode1:
                time.sleep(0.2)
                if batch == str(count):
                    print("Order complete! Now printing shipping label...")
                    time.sleep(0.2)
                    GPIO.output(good,False)
                    time.sleep(15)
                    GPIO.output(good,True)
                    break
                else:
                    print("Order incorrect, %s of %s parts scanned."%(str(count), batch))
                    time.sleep(2)
                    break
            
    batch_order()

except KeyboardInterrupt:
    
    GPIO.cleanup()
    print("QUIT")
    GPIO.cleanup()

我想做的就是消除在elif input() !=barcode1:处终止程序所需的双重扫描。任何帮助将不胜感激,谢谢!

最佳答案

只需获取input()一次并分配它

value = input()

if value == barcode1:
   ...
else:  # there is also no other case
   ...

关于python - 条形码批量扫描 - 为什么此代码需要两次扫描才能终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67390213/

相关文章:

python - 返回 pandas 中指定值的列名称

python - 使用Scrapy选择包含特定属性的所有Div的XPATH

python - 为什么将 numpy 数组与列表进行比较会消耗如此多的内存?

python - 在 Python 中存储 key 和密码的位置

python - chunksize 不是从 csv 文件的第一行开始

python-3.x - 删除启动消息以更改 Spark 日志级别

python - 如何查找单词 - 第一个字母大写,其他字母小写

python - Docker下PyAudio没有声音

server - 本地网络上的树莓派访问服务器

python - 在 Raspberry Pi 4 上使用 Chromedriver 运行 Selenium 的问题