2016-11-23 2 views
-1

У меня есть код, который открывает текстовый файл и запрашивает у пользователя, хотите ли он ввести код продукта 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 
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 

Мой код:

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

'if len (gtin8) == 8:' не может быть правильным, так как 'gtin' является целым числом. –

+0

Эта проблема не исправлена, но она дает мне ошибку, говоря об этом ... Traceback (последний последний звонок): Файл «N: \ Year 10-11 \ Computing \ A453 \ Контрольная задача оценки 2 \ Контролированная оценка Code.py ", строка 17, в cost = float (itemsplit.split (", ")) AttributeError: объект 'list' не имеет атрибута 'split' –

ответ

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

Спасибо за комментарий! Оно работает! –

+1

Цените свою помощь! –

 Смежные вопросы

  • Нет связанных вопросов^_^