Skip to content

Commit

Permalink
Expense Tracker
Browse files Browse the repository at this point in the history
  • Loading branch information
albertiaedev committed Feb 29, 2024
1 parent 501184f commit 77b100d
Showing 1 changed file with 56 additions and 0 deletions.
56 changes: 56 additions & 0 deletions expense_tracker.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Add a new expense to the list
def add_expense(expenses, amount, category):
expenses.append({'amount': amount, 'category': category})

# Print all expenses in the list
def print_expenses(expenses):
for expense in expenses:
print(f'Amount: {expense["amount"]}, Category: {expense["category"]}')

# Show the total number of expenses
def total_expenses(expenses):
return sum(map(lambda expense: expense['amount'], expenses))

# Filter the expenses in a specified category
def filter_expenses_by_category(expenses, category):
return filter(lambda expense: expense['category'] == category, expenses)


# THE MAIN FUNCTION OF THE PROGRAM
def main():
expenses = []
while True:
print('\nExpense Tracker')
print('1. Add an expense')
print('2. List all expenses')
print('3. Show total expenses')
print('4. Filter expenses by category')
print('5. Exit')

choice = input('Enter your choice: ')

if choice == '1':
amount = float(input('Enter amount: '))
category = input('Enter category: ')
add_expense(expenses, amount, category)

elif choice == '2':
print('\nAll Expenses:')
print_expenses(expenses)

elif choice == '3':
print('\nTotal Expenses: ', total_expenses(expenses))

elif choice == '4':
category = input('Enter category to filter: ')
print(f'\nExpenses for {category}:')
expenses_from_category = filter_expenses_by_category(expenses, category)
print_expenses(expenses_from_category)

elif choice == '5':
print('Exiting the program.')
break

# Check if running the script from the main program or a module
if __name__ == '__main__':
main()

0 comments on commit 77b100d

Please sign in to comment.