#python #python-3.x #loops
#python #python-3.x #циклы
Вопрос:
Я пытаюсь рассчитать бюджет, попросив пользователя ввести сумму, которую они хотят заложить в бюджет, и разбить ее на определенную сумму и вычитать эту сумму из оригинала с каждой итерацией и показывать им последний результат
budget = int(input("Please enter the amount you have budgeted for this month: "))
print(budget)
expensess = ['Rent','Food','Car','Gym','Phone','Travel','Savings']
balance=0
budget = budget
for i in expensess:
added_balance = int(input('How much did you budget for ' str(i)))
new_balance = int(budget - added_balance)
print(new_balance)
balance = new_balance
budget = balance
print("budget is " str(budget))
if balance is > budget:
print("You underbudgeted ")
else:
print('Good Job you would have extra money to spend' )
когда я запускаю это
Python 3.9.1 (tags/v3.9.1:1e5d33e, Dec 7 2020, 17:08:21) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
=== RESTART: C:UsersboxfoDesktopProgramming ChallengesBudget Analysis.py ==
Please enter the amount you have bugeted for this month: 6000
6000
How much did you budget for Rent2000
budget is 4000
How much did you budget for Food2000
budget is 6000
How much did you budget for Car3000
budget is 9000
How much did you budget for Gym
Комментарии:
1. Подсказка: вы пишете
new_balance = int(budget - added_balance)
, а также пишетеbalance = new_balance
. Это означает, что вы вычитаете из бюджета, но также добавляете этот результат в бюджет.2. Можете ли вы уточнить, с какой проблемой вы столкнулись в приведенном выше коде?
3. Предполагалось, что мой код рассчитает сумму денег, оставшуюся после вычета расходов из основного бюджета, но моя ошибка заключалась в том, что я вычитал из основного бюджета, а не из нового бюджета.
Ответ №1:
Вы должны уменьшить переменную бюджета, и вы можете рассчитать все, что вы хотите в своем вопросе:
budget -= balance
Я написал рабочую версию вашего кода с некоторыми комментариями.
Код:
budget = int(input("Please enter the amount you have budgeted for this month: "))
expensess = ["Rent", "Food", "Car"]
for i in expensess:
added_balance = int(input("How much did you budget for {}: ".format(i)))
budget -= added_balance # decrease the budget variable with the spend money
print("Current budget is {}".format(budget))
if 0 > budget: # If the budget is a minus number then you are underbudgeted.
print("You underbudgeted: {}".format(abs(budget))) # Creating ABS from negative number and print the difference.
else:
print("Good Job you would have extra money to spend: {}".format(budget))
Тесты:
Бюджет недооценен:
>>> python3 test.py
Please enter the amount you have budgeted for this month: 6000
How much did you budget for Rent: 2000
Current budget is 4000
How much did you budget for Food: 2000
Current budget is 2000
How much did you budget for Car: 3000
Current budget is -1000
You underbudgeted: 1000
Хорошая работа:
>>> python3 test.py
Please enter the amount you have budgeted for this month: 6000
How much did you budget for Rent: 2000
Current budget is 4000
How much did you budget for Food: 1000
Current budget is 3000
How much did you budget for Car: 1000
Current budget is 2000
Good Job you would have extra money to spend: 2000
Комментарии:
1. Если мой ответ ответил на ваш вопрос, пожалуйста, отметьте его как «ответил». Другие, ПОЭТОМУ пользователи должны видеть, что на ваши вопросы уже даны ответы! 🙂
Ответ №2:
Я немного изменил ваш код. Просто взгляните:
budget = int(input("Please enter the amount you have budgeted for this month: "))
print(«Общий бюджет %d » % (бюджет) » n»)
expenses_list = [«Аренда», «Еда», «Автомобиль», «Тренажерный зал», «Телефон», «Путешествия», «Сбережения»]
расходы = 0
для i в expenses_list:
added_balance = int(input("How much did you budget for " str(i) "t"))
# CHECK IF THE ADDED BUDGET IS GREATER THAN THE TOTAL BUDGET (budget)
if added_balance > budget:
print("Your expense cannot be higher than your total budget!")
exit() # TERMINATES THE PROGRAMM OR ASK ANOTHER VALUE IF YOU WANT
expenses = added_balance
# NOW CHECK IF YOUR EXPENSES ARE ALREADY OVER THE BUDGET
if (budget - expenses) < 0:
print(
"YOUR EXPENSES HAVE REACHED %d" % (expenses)
" AND YOUR BUDGET IS %d" % (budget)
)
exit() # TERMINATES THE PROGRAMM OR ASK ANOTHER VALUE IF YOU WANT
print("ADDED BUDGET: %d" % (added_balance))
print(
"CURRENT BALANCE IS: %d " % (budget - expenses)
"n ------------------------ n"
)
Комментарии:
1.И вы также должны проверить, сообщил ли пользователь допустимое значение, например, так:
budget = input("Please enter the amount you have budgeted for this month: ")
if(budget.isnumeric():
затем сделайте все остальноеelse:
print('invalid value')
2. Прошлой ночью я закончил исправлением ошибки, но пришел к тому же выводу, что и ваш код, но мой вернется к первому условию, когда бюджет достигнет 0
3. хорошо, самое главное, что у вас есть идея