Проверка домашнего задания на Цикл While

Сделал домашнее задание на цикл while.
Ниже будет код, но мне хотелось бы чтобы вы предложили свой вариант, чтобы сравнить как можно было бы сделать тоже самое, и получше понять цикл while. Если у меня есть ошибка в коде, пишите.

Задача: цикл while

Ежемесячная стипендия студента составляет educational_grant руб., а расходы на проживание превышают стипендию и составляют expenses руб. в месяц. Рост цен ежемесячно увеличивает расходы на 3%, кроме первого месяца Составьте программу расчета суммы денег, которую необходимо единовременно попросить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги и стипендию.

Формат вывода: Студенту надо попросить ХХХ.ХХ рублей `

educational_grant, expenses = 10000, 12000
mesyac = 0
procent = 0.03
prosit = 0
while mesyac != 9:
    expenses += expenses * procent
    mesyac += 1
    prosit = prosit + expenses
    print(mesyac, '%.2f' % expenses, '%.2f' % prosit,)

print('Студенту надо попросить', '%.2f' % prosit, 'рублей')

введите сюда описание изображения `


Ответы (2 шт):

Автор решения: MaxU

В своем решении вы не учли стипендию и рост цен у вас начинается с первого месяца, а не со второго.

In [229]: total_exp, month = 0, 0
     ...: while month < 10:
     ...:     total_exp += expenses * 1.03**month
     ...:     print(f"month: {month+1}, expenses: {total_exp}")
     ...:     month += 1
     ...: res = total_exp - 10*educational_grant
     ...: print(res)
month: 1, expenses: 12000.0
month: 2, expenses: 24360.0
month: 3, expenses: 37090.8
month: 4, expenses: 50203.524000000005
month: 5, expenses: 63709.629720000004
month: 6, expenses: 77620.9186116
month: 7, expenses: 91949.54616994801
month: 8, expenses: 106708.03255504645
month: 9, expenses: 121909.27353169784
month: 10, expenses: 137566.55173764878
37566.551737648784
→ Ссылка
Автор решения: MBo

Следите за условиями. Месяцев 10. Рост цен - кроме первого месяца. И где учитывается стипон?

educational_grant, expenses = 10000, 12000
mesyac = 0
procent = 0.03
prosit = 0
while mesyac < 10:
    mesyac += 1
    nehvatat= expenses - educational_grant
    print(mesyac, '%.2f' % expenses, '%.2f' % nehvatat,)
    prosit += nehvatat
    expenses += expenses * procent

print('Студенту всего надо попросить', '%.2f' % prosit, 'рублей')

1 12000.00 2000.00
2 12360.00 2360.00
3 12730.80 2730.80
4 13112.72 3112.72
5 13506.11 3506.11
6 13911.29 3911.29
7 14328.63 4328.63
8 14758.49 4758.49
9 15201.24 5201.24
10 15657.28 5657.28
Студенту всего надо попросить 37566.55 рублей
→ Ссылка