Skip to main content

Posts

Showing posts with the label python

Sum of numbers 1 to N

 Problem: We need the sum of the number 1 to N. The N could be anything (100,200,500,33,21) like anything. What is the best approach to solve this little problem ?  so there are multiple way to solve this problem.  We will discuss 3 solution .  1. Recursive way  : Using recursion we can solve this problem. Here is the solution The time complexity of this code is O(n) because it makes n recursive calls, each of which takes constant time.  The space complexity is also O(n) because each recursive call adds a level to the call stack. The maximum depth of the recursion is n, so the maximum amount of space on the call stack is proportional to n. 2. Using loop Here we need 2 different variables in our code -- a variable where we can store the sum as we iterate through the values and add them (my_sum in my code), and another variable (i in my code) to iterate over the numbers from 0 to n. The time complexity of this code is O(n). The while loop runs n+1 times, and ...

Python Closure

Imagine you have a function called outer_function that defines another function called inner_function inside it. Now, inner_function can access variables from the outer_function . When inner_function is returned from outer_function , it still remembers those variables even though outer_function has finished executing. This is the essence of a closure in Python. Example Code: In this example, outer_function takes a parameter x and defines inner_function inside it. inner_function can access x from the outer_function . When outer_function(10) is called, it returns inner_function , effectively creating a closure. Now, closure_example holds a reference to inner_function along with the value x (which is 10 in this case). When closure_example(5) is called, it adds 5 to the value of x (which is 10), resulting in 15. So, a closure "closes over" the environment in which it was defined, allowing it to access variables from its enclosing scope even after that scope has fi...