Function Parameters
-
This lesson explains how to pass data into functions using parameters and arguments.
What are Function Parameters?
Function parameters allow us to pass data into a function so the same function can work with different values.
👉 Parameters make functions flexible and reusable.
Types of Function Arguments in Python
Python supports four main types of function arguments:
Positional arguments
Keyword arguments
Default parameters
Arbitrary arguments
*args
**kwargs
1.Positional Arguments
Positional arguments are arguments passed to a function in the same order as parameters are defined.
👉 The position matters.
🔹 Syntax
def function_name(param1, param2):
# function body
function_name(value1, value2)
Using Positional Arguments
This function receives two numbers and prints their sum. Values are passed based on position.
def add(a, b):
print("Sum:", a + b)
add(10, 5)
2.Keyword Arguments
Keyword arguments are passed using parameter names, so order does not matter.
👉 Improves readability and clarity.
Syntax
function_name(param=value)
Using Keyword Arguments
This program passes arguments using parameter names.
def student(name, age):
print("Name:", name)
print("Age:", age)
student(age=22, name="Ravi")
When to Use Keyword Arguments?
When many parameters exist
To avoid confusion
For better readability
3.Default Parameters
Default parameters are parameters that have a default value.
👉 If no argument is passed, the default value is used.
Syntax
def function_name(param=value):
Using Default Parameters
This function uses a default country value if not provided.
def user(name, country="India"):
print("Name:", name)
print("Country:", country)
user("Anita")
Overriding Default Parameter
This example overrides the default parameter value.
def user(name, country="India"):
print("Name:", name)
print("Country:", country)
user("Anita", "USA")
Rules for Default Parameters
Default parameters must come after non-default parameters
Can be overridden during function call
4. Arbitrary Arguments
Sometimes we don’t know how many arguments will be passed.
Python provides arbitrary arguments.*args (Non-Keyword Arbitrary Arguments)
What is *args?
*args allows a function to accept multiple positional arguments.
👉 Arguments are stored as a tuple.
Syntax
def function_name(*args):
*Using args in Function
This function accepts multiple numbers and prints them.
def numbers(*args):
print(args)
numbers(1, 2, 3, 4)
*Processing args Values
This program calculates the sum of all numbers passed.
def total(*args):
sum = 0
for num in args:
sum += num
print("Total:", sum)
total(10, 20, 30)
**kwargs (Keyword Arbitrary Arguments)
What is **kwargs?
**kwargs allows a function to accept multiple keyword arguments.
👉 Arguments are stored as a dictionary.
Syntax
def function_name(**kwargs):
**Using kwargs in Function
This function receives multiple key-value pairs and prints them.
def student_info(**kwargs):
print(kwargs)
student_info(name="Radha", age=21, course="Python")
**Accessing kwargs Values
This program loops through keyword arguments.
def employee(**details):
for key, value in details.items():
print(key, ":", value)
employee(name="Amit", role="Developer", salary=50000)
*args vs **kwargs
Order of Parameters
def function(normal, default, *args, **kwargs):
✔ Normal parameters
✔ Default parameters
✔ *args
✔ **kwargs