我正在尝试制作一个程序,让用户输入条形码和数量,并根据包含条形码,产品数量和产品描述的文本文件进行检查。
确切的测试文件看起来像这样,但每行之间没有空格。
12345678,imac,1049.00
12345670,macbookpro,1749.00
11111111,iphone,599.00
22222222,macbook,1249.00
87654321,ipadPro,549.00
我的代码并不总是有效。例如,如果您输入' 11111111'作为条形码,它打印"未找到的产品"当它进入" 12345678"时,它的行为应该像它一样。我不确定为什么会这样,但我相信有人可以告诉我。感谢
#"""
order = []
print("Enter a GTIN-8 product code and the quantity required. Press '/' when you're done")
print("")
while True:
try:
number = input("Enter GTIN: ")
if number == "/":
break
else:
if len(number) == 8:
int(number)
qty = input("Enter quantity: ")
int(qty)
order.append(number)
order.append(qty)
print("")
else:
print("Length of GTIN-8 barcode should be 8.")
except ValueError:
print("Only enter numbers.")
continue
#"""
#order = ["12345678", "2", "12345670", "2", "11111111", "3", "87654321", "8"]
file = open("file.txt", "r")
count = 0
for line in file:
product = line.split(',')
if order[count] == product[0]:
totalCost = float(order[1]) * float(product[2].strip('\n'))
receipt = product[productCount], product[1], order[1], product[2].strip('\n'), str(totalCost)
receipt = " ".join(receipt)
print(receipt)
else:
print("Product not found")
count = count + 2
if count >= len(order):
break
答案 0 :(得分:0)
正如Jean-Francois Fabre指出的那样,在你的for循环中,你只是检查文件的第一行是否与你的订单匹配,然后才放弃并打印未找到的产品。即使您解决了这个问题,另一个问题是,您只是循环读取文件一次。您应该重构代码,以便for循环的外部循环遍历订单,内部循环查看文件的行,直到找到/到达文件的末尾。