私は店のように動作するプログラムを作成しようとしていますが、何らかの理由でそれが必要なときに配列に何も入れません。なぜコードは何も配列に入れませんか?
私はこのようなルックスを使用しています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
どの配列ですか? 'receipt = []'? 'print()'を使って、コードの異なる場所の変数の値をチェックしてください。たぶんあなたは 'receipt = []'を使ってすべての値を間違った場所で削除するでしょう。 – furas