#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)