В нашем курсе Python нам дали эту проблему.Нам нужно получить данные об учетных записях из файла, выполнить некоторые манипуляции и вывести результаты ... Я попытался использовать первое значение учетной записи в качестве начального минимума.Это не работает.Он делает что-то, чего я не знаю, и просто отключает весь цикл for
.
accounts.txt
- это файл, в котором хранятся идентификатор, тип сбережений и стоимость.Например,
66096 d 873323
29615 c 849977
45387 s 186640
95384 c 933363
13615 c 733321
46396 c 714610
17428 s 833671
43730 d 308296
92061 c 670423
51798 c 156063
58083 s 940510
Итак, вот код:
file=open('accounts.txt',mode='r')
linep=file.readlines()
mins=linep[0].split()[2]
sumc=0
maxc=0
sums=0
sumd=0
avrd=0
cntr=0
for i in file:
if i.split()[1]=='c':
sumc+=int(i.split()[2])
if int(i.split()[2])>=maxc:
maxc=int(i.split()[2])
elif i.split()[1]=='s':
sums+=int(i.split()[2])
if int(i.split()[2])<=mins:
mins=int(i.split()[2])
elif i.split()[1]=='d':
sumd+=int(i.split()[2])
cntr+=1
avrd=sums/cntr
print('The sum of all checking accounts is:',sumc)
print('The sum of all saving accounts is:',sums)
print('The sum of all deposit accounts is:',sumd)
print('The maximum balance for all checking accounts is:',maxc)
print('The minimum balance for all savings accounts is:',mins)
print('The average balance for all deposit accounts is:',avrd)
Это работает, когда вы устанавливаете mins=99999999999
, но я не думаю, что это хорошее решение.
Что ж, вывод должен был выглядеть следующим образом:
The sum of all checking accounts is: 209315463
The sum of all saving accounts is: 50272914
The sum of all deposit accounts is: 19976046
The maximum balance for all checking accounts is: 998992
The minimum balance for all savings accounts is: 150
The average balance for all deposit accounts is: 554890.1666666666
Но 2-я и 3-я строки все испортили, так что у меня есть
The sum of all checking accounts is: 0
The sum of all saving accounts is: 0
The sum of all deposit accounts is: 0
The maximum balance for all checking accounts is: 0
The minimum balance for all savings accounts is: 873323
Итак, что же делатьдумаешь?Я знаю, вы можете использовать мин и макс, но мы говорим об этом колледже.Они хотят сделать это таким образом.