Python 3永远运行循环问题

时间:2018-06-11 14:36:56

标签: python

我目前正在尝试运行一个将永远循环的脚本,但出于某种原因,如果我在IDE中的覆盆子pi上运行它将永远循环,但是一旦我在启动时通过终端/命令行执行它一次扫描后崩溃或退出

import sqlite3

conn = sqlite3.connect('barcode.db')
cursor = conn.cursor()


def create_table():
    cursor.execute('CREATE TABLE IF NOT EXISTS Barcode(Barcode TEXT)')

create_table()

while True:
    barcode = input("Scan barcode: ")
    print("Barcode scanned: " + barcode)
    cursor.execute("INSERT INTO Barcode VALUES (?)", [barcode])
    conn.commit()

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:0)

通过评论中的错误消息明确了该问题:

"TypeError: cannot concatenate 'str' and 'long' objects 

Python 3中不存在long类型。我不确定如何将其配置为在启动时运行,但它使用的是Python 2解释器。对于您的特定脚本:

barcode = input("Scan barcode: ")
print("Barcode scanned: " + barcode)

违规代码。 Python 2中的input将自动在输入上调用eval(),在这种情况下,它可以将其转换为数字。如果你真的希望在Python 2中运行它,那么你需要raw_input,但是那个代码将不会在Python 3中运行,因为raw_input被删除了。

我认为解决方案将改为python myscript.pypython3 myscript.py。如果您正在使用NOOBS,那么您应该已经使用过NOOBS。