# ------------------------------------------------------------------------
# Assignment 1: Personal Budget Tracker
# Student Name & Surname: [Write your name here]
# Student Number: [Write your student number here]
# ------------------------------------------------------------------------
# Function to calculate the budget
def calculate_budget(income, food, transport, entertainment):
# Calculate total expenses
total_expenses = food + transport + entertainment
# Calculate savings (income - expenses)
savings = income - total_expenses
return total_expenses, savings
# Function to print the budget summary
def print_budget_summary(income, food, transport, entertainment, total_expenses, savings):
print("========== Mahloko 's Budget Summary ==========")
print(f"Total Income: R{income}")
print(f"Food Expenses: R{food}")
print(f"Transport Expenses: R{transport}")
print(f"Entertainment: R{entertainment}")
print("---------------------------------------------")
print(f"Total Expenses: R{total_expenses}")
print(f"Savings Remaining: R{savings}")
print("=============================================")
# Main program
def main():
# Given values
income = 55000.00
food = 2289.00
transport = 2474.00
entertainment = 1676.00
# Call the calculation function
total_expenses, savings = calculate_budget(income, food, transport, entertainment)
# Call the print function
print_budget_summary(income, food, transport, entertainment, total_expenses, savings)
# This line makes sure the program runs
if __name__ == "__main__":
main()
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBBc3NpZ25tZW50IDE6IFBlcnNvbmFsIEJ1ZGdldCBUcmFja2VyCiMgU3R1ZGVudCBOYW1lICYgU3VybmFtZTogW1dyaXRlIHlvdXIgbmFtZSBoZXJlXQojIFN0dWRlbnQgTnVtYmVyOiBbV3JpdGUgeW91ciBzdHVkZW50IG51bWJlciBoZXJlXQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyBGdW5jdGlvbiB0byBjYWxjdWxhdGUgdGhlIGJ1ZGdldApkZWYgY2FsY3VsYXRlX2J1ZGdldChpbmNvbWUsIGZvb2QsIHRyYW5zcG9ydCwgZW50ZXJ0YWlubWVudCk6CiAgICAjIENhbGN1bGF0ZSB0b3RhbCBleHBlbnNlcwogICAgdG90YWxfZXhwZW5zZXMgPSBmb29kICsgdHJhbnNwb3J0ICsgZW50ZXJ0YWlubWVudAogICAgIyBDYWxjdWxhdGUgc2F2aW5ncyAoaW5jb21lIC0gZXhwZW5zZXMpCiAgICBzYXZpbmdzID0gaW5jb21lIC0gdG90YWxfZXhwZW5zZXMKICAgIHJldHVybiB0b3RhbF9leHBlbnNlcywgc2F2aW5ncwoKIyBGdW5jdGlvbiB0byBwcmludCB0aGUgYnVkZ2V0IHN1bW1hcnkKZGVmIHByaW50X2J1ZGdldF9zdW1tYXJ5KGluY29tZSwgZm9vZCwgdHJhbnNwb3J0LCBlbnRlcnRhaW5tZW50LCB0b3RhbF9leHBlbnNlcywgc2F2aW5ncyk6CiAgICBwcmludCgiPT09PT09PT09PSBNYWhsb2tvICdzIEJ1ZGdldCBTdW1tYXJ5ID09PT09PT09PT0iKQogICAgcHJpbnQoZiJUb3RhbCBJbmNvbWU6ICAgICAgICBSe2luY29tZX0iKQogICAgcHJpbnQoZiJGb29kIEV4cGVuc2VzOiAgICAgICBSe2Zvb2R9IikKICAgIHByaW50KGYiVHJhbnNwb3J0IEV4cGVuc2VzOiAgUnt0cmFuc3BvcnR9IikKICAgIHByaW50KGYiRW50ZXJ0YWlubWVudDogICAgICAgUntlbnRlcnRhaW5tZW50fSIpCiAgICBwcmludCgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIikKICAgIHByaW50KGYiVG90YWwgRXhwZW5zZXM6ICAgICAgUnt0b3RhbF9leHBlbnNlc30iKQogICAgcHJpbnQoZiJTYXZpbmdzIFJlbWFpbmluZzogICBSe3NhdmluZ3N9IikKICAgIHByaW50KCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKQoKIyBNYWluIHByb2dyYW0KZGVmIG1haW4oKToKICAgICMgR2l2ZW4gdmFsdWVzCiAgICBpbmNvbWUgPSA1NTAwMC4wMAogICAgZm9vZCA9IDIyODkuMDAKICAgIHRyYW5zcG9ydCA9IDI0NzQuMDAKICAgIGVudGVydGFpbm1lbnQgPSAxNjc2LjAwCgogICAgIyBDYWxsIHRoZSBjYWxjdWxhdGlvbiBmdW5jdGlvbgogICAgdG90YWxfZXhwZW5zZXMsIHNhdmluZ3MgPSBjYWxjdWxhdGVfYnVkZ2V0KGluY29tZSwgZm9vZCwgdHJhbnNwb3J0LCBlbnRlcnRhaW5tZW50KQoKICAgICMgQ2FsbCB0aGUgcHJpbnQgZnVuY3Rpb24KICAgIHByaW50X2J1ZGdldF9zdW1tYXJ5KGluY29tZSwgZm9vZCwgdHJhbnNwb3J0LCBlbnRlcnRhaW5tZW50LCB0b3RhbF9leHBlbnNlcywgc2F2aW5ncykKCiMgVGhpcyBsaW5lIG1ha2VzIHN1cmUgdGhlIHByb2dyYW0gcnVucwppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgbWFpbigpCg==