Как мне убедиться, что все мои значения вычисляются в моем цикле? - PullRequest
0 голосов
/ 30 апреля 2019

Я работаю над «сохранить назначение изменений», где я округляю покупки до целого доллара и добавляю изменения в сберегательный счет.Тем не менее, цикл не проходит через все значения в моем внешнем текстовом файле.Он вычисляет только последнее значение.Я попытался разделить файл, но он выдает ошибку.В чем может быть проблема?мой внешний текстовый файл выглядит так:

10.90 13.59 12.99 (каждый в разных строках)

def main ():

account1 = BankAccount()                  
file1 = open("data.txt","r+")       # reading the file, + indicated read and write
s = 0       # to keep track of the new savings
for n in file1:
    n = float(n)    #lets python know that the values are floats and not a string
    z= math.ceil(n)      #rounds up to the whole digit
    amount = float(z-n)         # subtract the rounded sum with actaul total to get change
    print(" Saved $",round(amount,2), "on this purchase",file = file1)
    s = amount + s
    x = (account1.makeSavings(s))

1 Ответ

1 голос
/ 30 апреля 2019

Я вполне уверен, что причина этого в том, что вы печатаете сумму денег, которую вы сохранили в файл. В общем случае вы не хотите изменять длину объекта, по которому вы выполняете итерацию, потому что это может вызвать проблемы.

account1 = BankAccount()                  
file1 = open("data.txt","r+")       # reading the file, + indicated read and write
s = 0       # to keep track of the new savings
amount_saved = []
for n in file1:
    n = float(n)    #lets python know that the values are floats and not a string
    z= math.ceil(n)      #rounds up to the whole digit
    amount = float(z-n)         # subtract the rounded sum with actaul total to get change
    amount_saved.append(round(amount,2))
    s = amount + s
    x = (account1.makeSavings(s))
for n in amount_saved:
    print(" Saved $",round(amount,2), "on this purchase",file = file1)

Это напечатает суммы, которые вы сохранили в конце файла после того, как закончите итерацию по нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...