我的验证有时会中断

时间:2016-12-31 08:31:00

标签: python-3.x

在我的代码中,我正在验证用户输入的GTIN代码。如果用户输入的数字不是数字,长度为8位而不是我的文本文件,则会输出Product Not Found但是当我输入除数字以外的任何东西进行测试时,它运行正常。但是,当我输入一个像0这样的单个数字时它完全断开并说Quantity is not defined,数量是我的变量之一,我不知道为什么会这样说。

编辑:当我输入0时,其输出Product Not Found仍会给我错误。

file = open("read_it.txt" , "r")
for line in file:
            line = line.strip('\n')
            print(line)
allprice=[]
while True:
    GTIN=(input("please enter GTIN for product or press enter for receipt"))
    if(GTIN==''):
       final = sum(allprice)
       final=str(final)
       print("total cost {0:33} £{1}".format("is",final))
       break
    else:
        if GTIN.isnumeric() and len(GTIN)==8 and GTIN in open('read_it.txt').read():
            while True:
                Quantity=""
                Quantity=(input("Please enter the Quantity"))
                if Quantity.isdigit():
                    break
                else:
                    print("enter a number!")
        else:
            print("Product Not Found")

        with open("read_it.txt", "r") as text_file:
            for items in text_file:
                line = items.strip('\r\n').split(",")
                if GTIN in items:
                    product = line[1]
                    indprice = line[2]
                    finprice = float(indprice)* float(Quantity)
                    finprice=int(finprice)
                    print("{:<10} {:<10} {:<10} £{:<10} £{:<10}".format(GTIN,product,Quantity,indprice,finprice))

    allprice.append(finprice)

1 个答案:

答案 0 :(得分:0)

您似乎在if块中定义了数量。因为&#34; 0&#34;长度不是8位数,永远不会定义数量,并且由于浮动(数量)而引发错误。考虑在if块之外定义Quantity。