我有一个代码可以打开文本文件并询问用户是否要输入gtin-8产品代码。但我无法找到产品的总成本。任何帮助将非常感谢!这是我的文本文件和代码......
文字档案:
gtin8 name cost
34512340 plain brackets £0.50
56756777 100 mm bolts £0.20
90673412 L-shaped brackets £1.20
76842309 Screwdriver £3.00
89432106 Radiator Key £4.00
34267891 Panel Saw £12.00
67532189 Junior Hacksaw £7.00
98123470 Wrench £8.00
18653217 Shovel £8.00
67543891 Hammer £10.00
23879462 File £7.00
我的代码:
loop = True
productsfile = open("Products.txt", "r+")
recieptfile = open("Receipt.txt", "w")
search = productsfile.readlines()
while True:
yesno = input("Would you like to type in a gtin-8 product code?(yes/no)" )
if yesno == "yes":
gtin8 = int(input("Please enter your GTIN-8 code: "))
if len(gtin8) == 8:
while True:
for line in search:
if gtin8 in line:
productline = line
recieptfile = open("Receipt.txt", "w")
recieptfile.writelines("\n" + "+")
quantity = int(input("What is the quantity of the product you require? "))
itemsplit = productline.split(",")
cost = float(itemsplit[3])
totalcost = (cost)*(quantity)
recieptfile.writelines("Your total cost is: ", totalcost)
else:
print("Here is your reciept", "reciept.txt", "r")
答案 0 :(得分:0)
我修复了你的脚本,使其更具可读性和清晰度。基本上,在您不想再添加产品之前,它会继续询问产品。它还会检查产品是否存在。它将产品及其价格存储在字典中。
recieptfile = open("Receipt.txt", "w")
product_lines = open("Products.txt", "r").readlines()
products = [i.split() for i in product_lines][1:]
product_costs = dict()
for i in products:
product_costs[i[0]] = float(i[-1][1:])
total_cost = 0
first_item = True
while True:
yesno = input("Would you like to type in a gtin-8 product code?(yes/no)" )
if yesno == "yes":
gtin8 = input("Please enter your GTIN-8 code: ")
if gtin8 in product_costs:
quantity = int(input("What is the quantity of the product you require? "))
price = product_costs[gtin8]
cost = price * quantity
if not first_item:
recieptfile.write("\t+\n")
recieptfile.write("{0}\t{1}".format(gtin8, cost))
total_cost += cost
first_item = False
else:
print("Product not found")
else:
recieptfile.write("\nYour total cost is: {0}".format(total_cost))
break
recieptfile.close()
with open('Receipt.txt', 'r') as recieptfile:
print("Here is your reciept:")
print(recieptfile.read())