2016-11-23 8 views
-1

Ich habe einen Code, der die Textdatei öffnet und fragt den Benutzer, ob sie einen GTIN-8-Produktcode eingeben möchten. Aber ich kann die Gesamtkosten des Produktes nicht finden. Jede Hilfe würde sehr geschätzt werden! Hier ist meine Textdatei und Code ...Lesen und Schreiben von einer Textdatei mit Benutzeranfragen

Textdatei:

gtin8 name cost 
34512340 plain brackets £0.50 
56756777 100 mm bolts £0.20 
90673412 L-shaped brackets £1.20 
76842309 Screwdriver £3.00 
6 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 

Mein Code:

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") 
+1

'wenn len (gtin8) == 8:' kann nicht stimmen, da 'gtin' eine ganze Zahl ist. –

+0

Dieses Problem ist nicht behoben, aber es gibt mir einen Fehler, der dies ... Traceback (zuletzt letzten Aufruf): Datei "N: \ Jahr 10-11 \ Computing \ A453 \ Controlled Assessment Aufgabe 2 \ Controlled Assessment Code.py ", Zeile 17, in Kosten = float (itemsplit.split (", ")) AttributeError: 'Liste' Objekt hat kein Attribut 'Split' –

Antwort

0

ich das Skript oben geregelt, so dass sie besser lesbar und klar ist. Grundsätzlich werden Sie weiterhin nach Produkten fragen, bis Sie keine weiteren hinzufügen möchten. Es überprüft auch, ob das Produkt existiert oder nicht. Es speichert die Produkte und ihre Preise in einem Wörterbuch.

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()) 
+0

Danke für den Kommentar! Es klappt! –

+1

Schätzen Sie Ihre Hilfe! –

Verwandte Themen