Запуск 2-го цикла for на основе первого

#python #for-loop #nested #nested-loops

#python #цикл for #вложенный #вложенные циклы

Вопрос:

Я пытаюсь написать программу, которая будет вычислять будущую стоимость обучения. Стоимость обучения сегодня составляет 10000 долларов США, с увеличением на 5% каждый год. Я пытаюсь написать программу, которая сообщает мне стоимость обучения в 10 году, а также общую стоимость обучения за 10-13 лет вместе взятых.

Я почти уверен, что я на правильном пути, написав 2 цикла for, но моя программа не будет запущена.

 def tuition():

    tuition_cost=10000
    increase=1.05
    running_total=0

#first loop includes tuition for years 1-10 
#update tuition for year 10
    for year in range (1,11,1):
        tuition_cost=((tuition_cost*(increase**year))

    print(tuition_cost)

    for year in range (10,14,1):
        tuition_cost=(tuition_cost*(increase**year))
        running_total=running_total tuition_cost

    print(running_total)

tuition()   
  

У кого-нибудь есть какие-либо предложения?

Комментарии:

1. Не будет выполняться? Разве это ничего не делает? Вызывает ли это какую-либо ошибку?

2. В строке отсутствуют круглые скобки tuition_cost=((tuition_cost*(increase**year))

3. Сначала он выдавал синтаксическую ошибку из-за дополнительных круглых скобок в моем первом forloop. После того, как я это исправил, он будет запущен, но даст неверные результаты в 140 000 с чем-то и 275 000 с чем-то. Ответы должны составлять около $ 16000 и $ 70000

4. Я полагаю, что ваша проблема в том, что вы обновляете tuition_cost все 10 раз… Это означает, что на первом проходе цикла вы обновляете значение с увеличением первого года, затем вы обновляете его, а на втором проходе вы обновляете if в течение первых двух лет… Если вы удалите часть » * year , я полагаю, вы получите что-то разумное.

5. Неправильные результаты связаны с тем, что вы переназначаете tuition_cost , но вычисляете, как если tuition_cost бы все еще было 10000. Вы можете либо найти 1000*(1.05**year) , либо выполнить tuition_cost = tuition_cost*1.05 для каждого года, но выполнение обоих даст вам неправильный ответ

Ответ №1:

Попробуйте это:

 def tuition():
    tuition_cost=10000
    increase=1.05

    print('the cost for the year 10:', tuition_cost*(increase**10))

    running_total = 0
    for year in range(10):
        running_total  = tuition_cost*(increase**year)

    print('the cost for 10 years:', running_total)

    for year in range(10,14,1):
        running_total  = tuition_cost*(increase**year)

    print('the cost for 14 years:', running_total)

tuition()   
  

Комментарии:

1. определение стоимости обучения (): стоимость обучения = 10000 увеличение = 1,05 running_total = 0 #первый цикл включает в себя обучение в течение 1-10 лет # обновление стоимости обучения за 10 год за год в диапазоне (1,11,1): стоимость обучения = (стоимость обучения * ( год увеличения)) печать (стоимость обучения) за год в диапазоне (10,14,1): стоимость обучения =(стоимость обучения *(год увеличения )) running_total=running_total печать платы за обучение(running_total) плата за обучение()

Ответ №2:

Я думаю, ваша программа должна выглядеть так:

 tuition_cost = 10000
increase = 1.05
running_total = 0

for year in range(0, 11):
    price_for_year = tuition_cost*(increase**year)
    print(price_for_year)

for year in range(10, 14):
    running_total  = price_for_year
    price_for_year = tuition_cost*(increase**year)
    print(running_total)