ループを繰り返さずにファイルを書き込むにはどうすればよいですか?ファイルへのループの書き込みを続行する方法と、各条件が満たされた後に初期値を0にリセットする方法は?
def main():
infile=open("sales.txt","w")
infilelist=[]
#call function
totalsale_each,salesperson=sales(infile,infilelist)
for salesamount in infilelist:
infile.write(salesamount)
infile.close()
def sales(infile, infilelist):
#set initial
t_sales=0
n_sales=int(input("Number of sales"))
while t_sales<n_sales:
#increasement
t_sales+=1
#for loop
for s in range(1,n_sales+1):
totalsale_each=0 #set the acc for total sales by each sales person
sales_person=input("sales person name:")
print("sales for sales no. "+str(s)+"by"+sales_person+":")
infilelist.append(sales_person)
for count in range (1,5): #assuming one sales person can sell max and min of 5item per cust
sales=float(input('sales#' +str(count)+ ':'))
if sales<=300:
t_sales=t_sales+sales
totalsale_each=totalsale_each+sales
if sales>300: #if sales>300, need to change the sales person
#that sales person needs to finish serving the rest of that cust's items
t_sales=t_sales+sales
sales_person=input("another sales pesron")
infilelist.append(sales_person)
infilelist.append(str(totalsale_each)) #to write total sales for each person
return totalsale_each,sales_person
main()
これは私のPythonテストです:
Number of sales: 2
sales person name:A
sales for sales no.1 by A:
sales#1:100
sales#2:150
sales#3:350
another sales pesronB
sales#4:200
sales person name:C
sales for sales no.2 by C:
sales#1:200
sales#2:500
another sales pesronD
sales#3:500
another sales pesronE
sales#4:200
実行後に取得するファイルは
A
100.0
250.0
B
250.0
450.0
C
200.0
D
200.0
E
200.0
400.0
しかし、私が取得したいのは以下のようなものです:
A
600
B
200
C
700
D
500
E
200
どうすれば修正できますか?
売上高が300を超えたときに次の営業担当者を尋ねた後、infilelist.append(sales_person)とinfilelist.append(totalsale_each)をどこに置くかがわかりません。
ありがとうございました