Chapter 6: Functions in Python

Function banana, use karna, arguments dena, return lena – sab kuch simple Hinglish me!

Chapter 6: Functions in Python

Function ka matlab hota hai — ek reusable block of code jo baar-baar call kiya ja sakta hai. Isme hum arguments de sakte hain, return value le sakte hain, aur code ko modular aur readable bana sakte hain.

Function Define Karna:

def greet():
  print("Hello!")
Hello!

Function Call Karna:

greet()

Function with Parameters:

def greet(name):
  print("Hello", name)

greet("Ravi")
Hello Ravi

Return Value:

def add(a, b):
  return a + b

result = add(2, 3)
print(result)
5

General Mistakes:

def add(a, b):
  a + b # ❌ Return nahi diya

print(add(2, 3)) # ❌ Output: None

Recursion in Python

Recursion matlab ek function khud ko call karta hai jab tak ek condition satisfy na ho jaaye. Isko step-by-step solve kiya jaata hai.

Structure of Recursive Function:

def function_name():
  if base_condition:
    return result
  else:
    return function_name()

Example: Countdown

def countdown(n):
  if n == 0:
    print("Liftoff!")
  else:
    print(n)
    countdown(n - 1)

countdown(5)
5
4
3
2
1
Liftoff!

Rules of Recursion:

Common Mistake:

def bad(n):
  return bad(n-1) # ❌ No base case

bad(5) # ❌ RecursionError: maximum depth exceeded

Example: Factorial

def factorial(n):
  if n == 1:
    return 1
  else:
    return n * factorial(n-1)

print(factorial(5))
120

Advanced Example: Fibonacci

def fib(n):
  if n <= 1:
    return n
  return fib(n-1) + fib(n-2)

print(fib(6))
8

Lambda Functions

Lambda function ek short anonymous function hoti hai, jisme sirf ek expression hota hai. Mostly quick calculations, filter/map me use hoti hai.

Syntax:

lambda arguments: expression

Simple Example:

double = lambda x: x * 2
print(double(4))
8

With map():

nums = [1, 2, 3, 4]
squares = list(map(lambda x: x*x, nums))
print(squares)
[1, 4, 9, 16]

With filter():

nums = [1, 2, 3, 4, 5]
even = list(filter(lambda x: x % 2 == 0, nums))
print(even)
[2, 4]

With sorted():

students = [('A', 50), ('B', 70), ('C', 40)]
students.sort(key=lambda x: x[1])
print(students)
[('C', 40), ('A', 50), ('B', 70)]

Common Mistake:

lambda x, y: x + y # ❌ Not used or assigned

# ✔️ Correct:
add = lambda x, y: x + y
print(add(3, 4))

Lambda inside Function:

def multiplier(n):
  return lambda x: x * n

times3 = multiplier(3)
print(times3(5))
15

Lambda vs def: