Skip to main content

Command Palette

Search for a command to run...

Functions in Python

Updated
β€’4 min read
Functions in Python

πŸ”Ή 1. What is a Function in Python?

A function is a reusable block of code that performs a specific task.

Instead of writing the same code again and again, you define once, use many times.

Why functions?

  • Reduce code repetition

  • Improve readability

  • Make code modular & testable

  • Easier debugging


πŸ”Ή 2. Basic Function (No Parameters)

Syntax

def function_name():
    statements

Example

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

greet()

πŸ“Œ Output:

Hello, World!

πŸ“ Task 1

Create a function welcome() that prints:

Welcome to Python Programming

πŸ”Ή 3. Function with Parameters (Arguments)

Parameters allow us to pass data into a function.

Example

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

greet("Aarav")
greet("Python")

πŸ“Œ Output:

Hello Aarav
Hello Python

πŸ“ Task 2

Write a function square(n) that prints the square of a number.


πŸ”Ή 4. Function with Return Value

Instead of printing, functions can return values.

Example

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

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

πŸ“Œ Output:

8

πŸ‘‰ return sends data back to the caller.


πŸ“ Task 3

Create a function is_even(n) that returns True if number is even, else False.


πŸ”Ή 5. Types of Arguments in Python

Python supports multiple ways to pass arguments:


βœ… 5.1 Positional Arguments

Order matters.

def student(name, age):
    print(name, age)

student("Ram", 20)

❌ Wrong order:

student(20, "Ram")  # logical error

πŸ“ Task 4

Create a function multiply(a, b, c) and call it using positional arguments.


βœ… 5.2 Keyword Arguments

You specify parameter names β†’ order doesn’t matter.

def student(name, age):
    print(name, age)

student(age=21, name="Sita")

πŸ“ Task 5

Call multiply() using keyword arguments.


βœ… 5.3 Default Arguments

Provide default values.

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

greet()
greet("Aarav")

πŸ“ Task 6

Create a function power(base, exp=2) that returns base raised to power.


πŸ”Ή 6. *args (Variable Length Arguments)

Sometimes you don’t know how many arguments will be passed.

πŸ‘‰ *args stores values as a tuple.


Example

def total(*args):
    print(args)
    print(sum(args))

total(1, 2, 3)
total(5, 10, 15, 20)

πŸ“Œ Output:

(1, 2, 3)
6
(5, 10, 15, 20)
50

Key Points

  • args is just a name (convention)

  • * is important

  • Access like a tuple


πŸ“ Task 7

Write a function average(*numbers) that returns the average.


πŸ”Ή 7. **kwargs (Keyword Variable Length Arguments)

Used when passing named arguments dynamically.

πŸ‘‰ **kwargs stores data as a dictionary.


Example

def student_details(**kwargs):
    print(kwargs)

student_details(name="Aarav", age=21, course="CS")

πŸ“Œ Output:

{'name': 'Aarav', 'age': 21, 'course': 'CS'}

Accessing values

def student_details(**kwargs):
    for key, value in kwargs.items():
        print(key, ":", value)

πŸ“ Task 8

Create a function profile(**info) that prints all key-value pairs.


πŸ”Ή 8. Combining Arguments (Advanced)

Correct Order

1. Positional
2. *args
3. Default
4. **kwargs

Example

def demo(a, b, *args, x=10, **kwargs):
    print(a, b)
    print(args)
    print(x)
    print(kwargs)

demo(1, 2, 3, 4, x=50, name="Ram", age=20)

πŸ“ Task 9

Create a function bill(customer, *items, discount=0, **details)
Print customer, items, discount, and details.


πŸ”Ή 9. Functions as Objects (Advanced Concept)

Functions can be:

  • Stored in variables

  • Passed as arguments

  • Returned from functions


Example

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

operation = add
print(operation(3, 4))

πŸ“ Task 10

Write a function apply(func, a, b) that applies any function to two numbers.


πŸ”Ή 10. Lambda Functions (Short Functions)

One-line anonymous functions.

square = lambda x: x * x
print(square(5))

With args

add = lambda *args: sum(args)
print(add(1, 2, 3))

πŸ“ Task 11

Create a lambda to check if a number is divisible by 5.


πŸ”Ή 11. Real-World Example (Mini Project)

Student Marks Calculator

def calculate_marks(name, *marks, **extra):
    total = sum(marks)
    avg = total / len(marks)

    print("Name:", name)
    print("Total:", total)
    print("Average:", avg)

    if "grade" in extra:
        print("Grade:", extra["grade"])

calculate_marks(
    "Aarav",
    80, 75, 90,
    grade="A",
    remark="Excellent"
)

βœ… Final Practice Assignment (Exam-Level)

  1. Write a function using default arguments

  2. Write a function using *only args

  3. Write a function using **only kwargs

  4. Combine all argument types in one function

  5. Explain difference between print and return

  6. Write a real-life example of *args and **kwargs