Back to Freecodecamp

Step 43

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

latest2.0 KB
Original Source

--description--

To list all expenses, you can use an elif clause after an if statement. The elif checks additional conditions and only works following an if statement.

Create an elif clause to check if the user's choice equals the string '2'. Inside the elif clause, print the string '\nAll Expenses:'.

--hints--

You should create an elif clause that checks that choice is equal to '2' after your if statement.

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

You should print '\nAll Expenses:' inside your elif clause.

js
({ test: () => assert(runPython(`_Node(_code).find_function("main").find_whiles()[0].find_bodies()[0].find_ifs()[0].find_bodies()[1].has_call("print('\\\\nAll Expenses:')")`)) })

--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: ')
--fcc-editable-region--
        if choice == '1':
            amount = float(input('Enter amount: '))
            category = input('Enter category: ')
            add_expense(expenses, amount, category)
        
--fcc-editable-region--