Sunday, 22 June 2025

Python Coding challenge - Day 567| What is the output of the following Python Code?

 


Code Explanation:

1. Function Definition: counter()
def counter():
    x = [0]
A function named counter is defined.
Inside it, a list x with a single element 0 is created.
The list is used instead of an integer because lists are mutable, which allows the inner function to modify the value.

2. Inner Function: inc()
    def inc():
        x[0] += 1
        return x[0]
inc() is a nested function (also called a closure).
It accesses the variable x from the outer scope (nonlocal variable).
x[0] += 1 increments the first element of the list.
It then returns the incremented value.

3. Returning the Closure
    return inc
The counter() function returns the inner function inc, not its result.
This means calling counter() gives you a new counter function that you can call repeatedly.

4. Using the Counter
c = counter()
c now holds the inc function.
But it remembers the x = [0] from when counter() was first called — this is what makes it a closure.

5. Calling the Counter Twice
print(c(), c())
First call: c() → x[0] becomes 1, returns 1
Second call: c() → x[0] becomes 2, returns 2
So, the output is:
1 2

Final Output
1 2

0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (161) Android (25) AngularJS (1) Api (6) Assembly Language (2) aws (27) Azure (8) BI (10) Books (254) Bootcamp (1) C (78) C# (12) C++ (83) Course (84) Coursera (299) Cybersecurity (28) Data Analysis (24) Data Analytics (16) data management (15) Data Science (225) Data Strucures (14) Deep Learning (75) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (17) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (48) Git (6) Google (47) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (41) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (197) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (12) PHP (20) Projects (32) Python (1219) Python Coding Challenge (898) Python Quiz (348) Python Tips (5) Questions (2) R (72) React (7) Scripting (3) security (4) Selenium Webdriver (4) Software (19) SQL (45) Udemy (17) UX Research (1) web application (11) Web development (7) web scraping (3)

Followers

Python Coding for Kids ( Free Demo for Everyone)