Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Challenge: Modifying Enclosing Scope Variables | Variable Scope, Nested Functions, and Closures
Functional Programming Concepts in Python
Section 3. Chapter 5
single

single

bookChallenge: Modifying Enclosing Scope Variables

Swipe to show menu

Task

Swipe to start coding

Create a function that protects a bank balance variable. The balance should be modifiable through an inner function that allows withdrawing money. Use the nonlocal keyword to modify the balance from within the inner function.

  • Inside the outer function, define an inner function withdraw(amount) that:
    • Uses the nonlocal keyword to access and modify balance.
    • Subtracts amount from balance only if enough funds are available.
    • Returns the new balance if withdrawal is successful, or a message like 'Insufficient funds' if not.
  • Call the inner function with various amounts and print the result after each call.
  • The balance variable must not be accessible or modifiable from outside the outer function.

Solution

Switch to desktopSwitch to desktop for real-world practiceContinue from where you are using one of the options below
Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 3. Chapter 5
single

single

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

some-alt