Python me Recursion kya hota hai?
Recursion ek aisi technique hai jisme function khud apne aap ko call karta hai. Jaise aap ek darwaza kholte hain aur andar jaate hain, phir aur ek darwaza, phir aur — jab tak aakhri kamra na aaye. Wapas aate waqt har darwaza band karte jaate hain. Exactly yahi Recursion me hota hai.
Har recursive function me 2 zaroori cheezein honi chahiye :-
- Base Case — woh condition jab recursion rukti hai (warna infinite loop)
- Recursive Case — function khud ko chhote problem ke saath call karta hai
Is page me yeh sab sikhenge :-
- 1. Recursion kaise kaam karta hai — step by step
- 2. Countdown — simple recursion example
- 3. Factorial — classic recursion problem
- 4. Fibonacci Series
- 5. Sum of digits
- 6. String reverse karna
- 7. Recursion vs Loop
- 8. RecursionError — jab base case bhool jaate hain
1. Recursion Kaise Kaam Karta Hai?
Recursion me function har baar chhoti problem ke saath apne aap ko call karta hai, jab tak base case na aa jaye. Phir sab answers wapas aate hain (unwind).
| Syntax |
|---|
def recursive_function(problem):
if base_case: # yahan rukna hai
return answer
else:
return recursive_function(smaller_problem) # apne aap ko call
|
Example 1: Simple countdown — recursion ka flow samjho
Example 2: Call trace — recursion ka flow step by step dekhna
2. Factorial — Classic Recursion Problem
Factorial ka matlab hai ek number ko usse chhote saare numbers se multiply karna.
n! = n × (n-1) × (n-2) × ... × 1
Jaise: 5! = 5 × 4 × 3 × 2 × 1 = 120
Example 1: Factorial — recursion se
Example 2: Factorial ka step-by-step execution — 5! kaise calculate hota hai
3. Fibonacci Series
Fibonacci series me har number, usse pehle ke do numbers ka sum hota hai.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34...
Formula: fib(n) = fib(n-1) + fib(n-2)
Example 1: Fibonacci — recursion se nth number nikalna
Example 2: Pehle N Fibonacci numbers print karna
4. Sum of Digits
Kisi number ke saare digits ka sum nikalna recursion se — jaise 1234 → 1 + 2 + 3 + 4 = 10.
Example 1: Digits ka sum — recursion se
Example 2: Power function — recursion se a^b nikalna
5. String Reverse Karna
String ko recursion se reverse karna — pehla character end me daalo aur baaki string ko recursion se reverse karo.
Example 1: String reverse — recursion se
Example 2: Palindrome check — recursion se
6. Recursion vs Loop — Kab Kaun?
Recursion aur Loop dono same kaam kar sakte hain — lekin dono ke apne apne advantages hain.
| Feature | Recursion | Loop |
|---|---|---|
| Code length | Chhota, elegant | Thoda lamba |
| Speed | Relatively slow | Fast |
| Memory | Stack use karta hai (zyada) | Kam memory |
| Samajhna | Thoda mushkil | Aasaan |
| Best for | Tree, graph, divide & conquer | Simple repetition |
Example 1: Factorial — Loop vs Recursion
7. RecursionError — Jab Base Case Bhool Jaayein
Agar base case nahi likha ya galat likha, toh function infinite baar call hota rehta hai aur Python ek RecursionError deta hai — "maximum recursion depth exceeded".
Example 1: RecursionError — base case missing
Example 2: Python ka default recursion limit dekhna
Quick Summary — Recursion ek nazar me
| Concept | Matlab | Example |
|---|---|---|
| Recursion | Function apne aap ko call karta hai | def f(n): return f(n-1) |
| Base Case | Recursion kahan rukegi | if n == 0: return 1 |
| Recursive Case | Chhoti problem se call | return n * f(n-1) |
| Factorial | n! = n × (n-1)! | factorial(5) = 120 |
| Fibonacci | fib(n) = fib(n-1) + fib(n-2) | 0,1,1,2,3,5,8... |
| RecursionError | Base case nahi — infinite loop | max depth exceeded |
| Stack | Har call memory me store hoti hai | Call Stack |