Я пытаюсь создать программу, которая будет работать как магазин, но по какой-то причине она не помещает ничего в массив, когда я этого хочу.Почему код не помещает ничего в массив?
CSV-файл, который я использую, выглядит так:
24937597 Basic Hatchet 20
49673494 Hardened Axe 100
73165248 Steel Axe 500
26492186 Utility Truck 2000
54963726 Small Trailer 600
17667593 Shabby Sawmill 200
76249648 SawMax 01 5000
34865729 Basic Hammer 70
46827616 50mm Nails 0.10
46827623 20mm Nails 0.05
Мой код выглядит следующим образом:
import csv
import time
retry='yes'
while retry=='yes':
receipt=[]
total=0
numofitems=0
with open ('Stock File.csv','r') as stock:
reader=csv.reader(stock, delimiter=',')
print('Welcome to Wood R Us. Today we are selling:')
print(' ')
print('GTIN-8 code Product name Price')
for row in reader:
print(row[0]+' '+row[1]+' '+row[2])
print(' ')
choice='product'
while choice=='product':
inputvalid='yes'
barcode=input('Enter the GTIN-8 code of the product you wish to purchase: ')
quantity=int(input('Enter the quantity you wish to purchase: '))
for row in reader:
if barcode in row:
cost=int(row[2])
price=quantity*cost
total=total+price
receipt.append(barcode+row[1]+str(quantity)+row[2]+str(price))
numofitems=numofitems+1
print('Do you want to buy another product or print the receipt?')
choice=input('product/receipt ')
if choice=='receipt':
inputvalid='yes'
for i in range(0, numofitems):
print(str(receipt[i]))
time.wait(0.5)
print(' ')
print('Total cost of order '+str(total))
else:
inputvalid='no'
if inputvalid=='no':
print('Invalid input')
if inputvalid=='yes':
print(' ')
print('Do you want to make another purchase?')
retry=input('yes/no ')
while retry!='yes':
while retry!='no':
print(' ')
print('Invalid input')
print('Do you want to make another purchase?')
retry=input('yes/no ')
retry='yes'
retry='no'
if retry=='no':
print('Goodbye! See you again soon!')
Кто-нибудь знает, как это исправить?
Почему вы используете строковые значения при наличии встроенных булевых значений? –
Почему вы пытаетесь повторить цикл 'reader'? – user2357112
какой массив? 'получение = []'? используйте 'print()' для проверки значений в переменных в разных местах кода. Возможно, вы удалите все значения, используя 'получение = []' в неправильном порядке. – furas