在我的代码中,我正在验证用户输入的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)
答案 0 :(得分:0)
您似乎在if块中定义了数量。因为&#34; 0&#34;长度不是8位数,永远不会定义数量,并且由于浮动(数量)而引发错误。考虑在if块之外定义Quantity。