Back to Freecodecamp

Step 50

curriculum/challenges/english/blocks/learn-lambda-functions-by-building-an-expense-tracker/6582687859366a618424d84b.md

latest2.3 KB
Original Source

--description--

To provide a way to exit the program, use another elif clause to check if choice equals the string '5'.

Inside the new elif clause, print the string 'Exiting the program.' to show that the program is terminating its execution.

--hints--

You should create an elif clause that checks if choice == '5'.

js
({ test: () => assert(runPython(`
cond = _Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_conditions()[4]
cond.is_equivalent("choice == '5'") or cond.is_equivalent("'5' == choice")
`)) })

You should print 'Exiting the program.' in your new elif clause.

js
({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[4].has_call("print('Exiting the program.')")`)) })

--seed--

--seed-contents--

py
def add_expense(expenses, amount, category):
    expenses.append({'amount': amount, 'category': category})
    
def print_expenses(expenses):
    for expense in expenses:
        print(f'Amount: {expense["amount"]}, Category: {expense["category"]}')
    
def total_expenses(expenses):
    return sum(map(lambda expense: expense['amount'], expenses))
    
def filter_expenses_by_category(expenses, category):
    return filter(lambda expense: expense['category'] == category, expenses)
    

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))
--fcc-editable-region--
        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)
        
--fcc-editable-region--