You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python循环实现条码扫描回退功能的问题求助

条码扫描回退功能实现问题

我们批量扫描设备条码时,常因条码间距过近导致误扫。现有Python循环代码仅支持输入条码和按q结束,无回退功能,误扫后只能重启脚本或手动修改Access数据库。

尝试用.pop()实现按e删除最后一条记录的回退功能,但输入的e被误加入序列号列表,相关代码及输出如下:

初始代码

# get serial numbers for equipment
print("------------------------")
serial_numbers = []
print("Scan barcode, type 'q' when you are done.")
# loop for user to insert multiple serial numbers.
while True:
    s = input("Scan Code: ")
    if s == "q":
        break
    serial_numbers.append(s)
print("Here is the list of serial numbers:")
print(serial_numbers)

修改后的错误代码

# get serial numbers for equipment
print("------------------------")
serial_numbers = []
print("Scan barcode, Type 'e' to delete last scanned item. Type 'q' when you are done.")
# loop for user to insert multiple serial numbers.
while True:
    s = input("Scan Code: ")
    if s == "e":
        serial_numbers.pop()
        print(serial_numbers)
    if s == "q":
        break
    serial_numbers.append(s)

错误输出

Scan barcode, Type 'e' to delete last scanned item. Type 'q' when you are done.
Scan Code: 31P11JJ0019US
Scan Code: 31P11JJ0019US
Scan Code: 31P11JJ0019US
Scan Code: 31P11JJ0019US
Scan Code: e
['31P11JJ0019US', '31P11JJ0019US', '31P11JJ0019US']
Scan Code: 31P11JJ0019US
Scan Code: e
['31P11JJ0019US', '31P11JJ0019US', '31P11JJ0019US', 'e']
Scan Code:

正确实现方案

问题根源

错误在于输入e时,执行完删除操作后没有跳过后续的添加语句,导致e被加入列表。另外未考虑列表为空时执行pop()会报错的情况。

修正后的代码

# 获取设备序列号
print("------------------------")
serial_numbers = []
print("扫描条码,按'e'删除最后一条记录,按'q'结束输入。")
# 循环接收多个序列号输入
while True:
    s = input("扫描条码: ")
    if s == "q":
        break
    elif s == "e":
        if serial_numbers:  # 仅当列表非空时执行删除
            serial_numbers.pop()
            print(f"当前序列号列表: {serial_numbers}")
        else:
            print("列表为空,没有记录可删除!")
    else:
        # 非指令字符,添加到列表
        serial_numbers.append(s)
print("最终序列号列表:")
print(serial_numbers)

关键改进点

  • 用elif和else分支区分指令和条码输入,确保e不会被添加到列表
  • 增加列表非空判断,避免空列表执行pop()引发异常
  • 优化提示信息为中文,适配使用场景

内容的提问来源于stack exchange,提问作者TylerTheD3V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:10:40