Board Formulas
🐍 PythonπŸ“… Day 9

Functions in Python

Define, call, return values, use default and keyword arguments, and lambdas.

🎯

Learning objectives

  • β†’Define functions with parameters and return values
  • β†’Use positional, keyword and default arguments
  • β†’Understand *args, **kwargs and lambda

πŸ’‘ Key points

  • def name(params): defines a function. Body is indented.
  • A function without an explicit return gives back None.
  • Default arguments make parameters optional: def f(x, y=0).
  • *args captures extra positional args as a tuple; **kwargs captures extra keyword args as a dict.
  • lambda creates a small anonymous function β€” useful for one-liners passed to sort/map/filter.

πŸ’» Code examples(5)

#1Simple function
python
def add(a, b):
    return a + b

print(add(3, 4))       # 7
No type declarations required. Return type is inferred from what you return.
#2Default + keyword arguments
python
def greet(name, greeting="Hello"):
    return f"{greeting}, {name}!"

print(greet("Amit"))                       # Hello, Amit!
print(greet("Priya", "Hi"))                # Hi, Priya!
print(greet(greeting="Namaste", name="Ravi"))  # kw args
Defaults let callers skip args. Keyword arguments let them pass in any order.
#3*args and **kwargs
python
def summary(*args, **kwargs):
    print("args:", args)
    print("kwargs:", kwargs)

summary(1, 2, 3, name="Amit", age=20)
Output
args: (1, 2, 3)
kwargs: {'name': 'Amit', 'age': 20}
*args = variable number of positional arguments as a tuple. **kwargs = variable keyword args as a dict.
#4Return multiple values
python
def stats(nums):
    return min(nums), max(nums), sum(nums) / len(nums)

lo, hi, avg = stats([3, 8, 1, 12, 5])
print(lo, hi, avg)     # 1 12 5.8
Python 'returns multiple' via a tuple. Unpack on the caller side with commas.
#5lambda
python
square = lambda x: x * x
print(square(6))       # 36

# more useful: pass to another function
pairs = [("Amit", 87), ("Priya", 92), ("Ravi", 76)]
pairs.sort(key=lambda p: p[1], reverse=True)
print(pairs)
lambda is a single-expression function. Great for callbacks; for anything longer use def.

🎯 Practice

Q1. What does a function return if there's no return statement?+

None.

Q2. Write a function that accepts any number of ints and returns their sum.+

def total(*nums): return sum(nums)

Q3. Sort a list of names by length using lambda.+

names.sort(key=lambda n: len(n))

πŸ“ Notes

Type hints (optional, recommended)

def add(a: int, b: int) -> int:
    return a + b

Python doesn't enforce types at runtime, but hints help IDEs, mypy, and readers.

Docstrings

def area(r: float) -> float:
    """Return the area of a circle with radius r."""
    return 3.14159 * r * r

print(area.__doc__)

Triple-quoted string as the FIRST line of the body is auto-attached as the function's documentation.