Day 11 of #100DaysOfCode in Python: A Deep Dive into Functions

Elshad Karimov
5 min readOct 3, 2023

Welcome to Day 11 of your #100DaysOfCode in Python! Today is all about functions, a core concept not just in Python, but in programming at large. Functions are your companions in making your code cleaner, more organized, and reusable. Let’s explore this critical concept, step by step!

What are Functions?

A function in Python is a block of organized and reusable code that is used to perform a single, related action. It provides better modularity for your application and a high degree of code reusing.

Key Features of Functions

  • Modularity: Breaks down large code into manageable and organized parts.
  • Reusability: Write once, use multiple times.
  • Flexibility: Can accept parameters and return results.

Defining a Function

In Python, a function is defined using the def keyword, followed by the function name with parentheses () and a colon :.

def greet():
print("Hello, welcome to Python functions!")

Calling a Function

A function is invoked by calling its name followed by the parentheses.

greet()  # Output: Hello, welcome to Python functions!

Passing Arguments to Functions

You can pass values, known as arguments, into a function. These values are assigned to parameters declared in the function definition.

def greet(name):
print(f"Hello, {name}! Welcome to Python functions!")
greet("Alice")  # Output: Hello, Alice! Welcome to Python functions!

Returning Values from Functions

A function can process data and return a value using the return statement.

def add(a, b):
return a + b
result = add(5, 3)
print(result) # Output: 8

Types of Arguments

  • Required Arguments: The values that are required when calling a function.
  • Default Arguments: The values that are default and can be overridden when calling a function.
  • Keyword Arguments: Calling a function with parameter names, making the function call more clear and self-descriptive.
  • Variable-length Arguments: Allows you to pass a variable number of arguments.

Default Arguments Example

def greet(name, message="Welcome to the world of Python!"):
print(f"Hello, {name}! {message}")
greet("Alice")  # Output: Hello, Alice! Welcome to the world of Python!

Keyword Arguments Example

greet(message="How's your coding journey going?", name="Alice")

Variable-length Arguments Example

def print_args(*args):
for arg in args:
print(arg)
print_args(1, 'two', 3, 'four')

Function Documentation

You can document your functions using docstrings, making your code more readable and accessible.

def greet(name):
"""
This function greets the person passed in as a parameter
:param name: The name of the person to greet
"""
print(f"Hello, {name}!")
print(greet.__doc__)

Challenges for Day 11

  1. Function Creation: Write a function that accepts two numbers and returns their sum, difference, and product.
  2. Default and Keyword Arguments: Experiment with default and keyword arguments by creating a function that greets a user with a customizable message.
  3. Variable-length Arguments: Create a function that accepts variable-length arguments and prints each argument.

Conclusion

As you delve deeper into Python, functions will become your best friends in organizing and reusing your code. They make your programs modular and more manageable. Today’s learning paves the way to understanding more advanced topics like classes and objects, laying down a strong foundation. Keep coding and enjoy every step of this exciting journey!

Welcome to Day 11 of your #100DaysOfCode in Python! Today is all about functions, a core concept not just in Python, but in programming at large. Functions are your companions in making your code cleaner, more organized, and reusable. Let’s explore this critical concept, step by step!

What are Functions?

A function in Python is a block of organized and reusable code that is used to perform a single, related action. It provides better modularity for your application and a high degree of code reusing.

Key Features of Functions

  • Modularity: Breaks down large code into manageable and organized parts.
  • Reusability: Write once, use multiple times.
  • Flexibility: Can accept parameters and return results.

Defining a Function

In Python, a function is defined using the def keyword, followed by the function name with parentheses () and a colon :.

def greet():
print("Hello, welcome to Python functions!")

Calling a Function

A function is invoked by calling its name followed by the parentheses.

greet()  # Output: Hello, welcome to Python functions!

Passing Arguments to Functions

You can pass values, known as arguments, into a function. These values are assigned to parameters declared in the function definition.

def greet(name):
print(f"Hello, {name}! Welcome to Python functions!")
greet("Alice")  # Output: Hello, Alice! Welcome to Python functions!

Returning Values from Functions

A function can process data and return a value using the return statement.

def add(a, b):
return a + b
result = add(5, 3)
print(result) # Output: 8

Types of Arguments

  • Required Arguments: The values that are required when calling a function.
  • Default Arguments: The values that are default and can be overridden when calling a function.
  • Keyword Arguments: Calling a function with parameter names, making the function call more clear and self-descriptive.
  • Variable-length Arguments: Allows you to pass a variable number of arguments.

Default Arguments Example

def greet(name, message="Welcome to the world of Python!"):
print(f"Hello, {name}! {message}")
greet("Alice")  # Output: Hello, Alice! Welcome to the world of Python!

Keyword Arguments Example

greet(message="How's your coding journey going?", name="Alice")

Variable-length Arguments Example

def print_args(*args):
for arg in args:
print(arg)
print_args(1, 'two', 3, 'four')

Function Documentation

You can document your functions using docstrings, making your code more readable and accessible.

def greet(name):
"""
This function greets the person passed in as a parameter
:param name: The name of the person to greet
"""
print(f"Hello, {name}!")
print(greet.__doc__)

Challenges for Day 11

  1. Function Creation: Write a function that accepts two numbers and returns their sum, difference, and product.
  2. Default and Keyword Arguments: Experiment with default and keyword arguments by creating a function that greets a user with a customizable message.
  3. Variable-length Arguments: Create a function that accepts variable-length arguments and prints each argument.

Conclusion

As you delve deeper into Python, functions will become your best friends in organizing and reusing your code. They make your programs modular and more manageable. Today’s learning paves the way to understanding more advanced topics like classes and objects, laying down a strong foundation. Keep coding and enjoy every step of this exciting journey!

--

--

Elshad Karimov
Elshad Karimov

Written by Elshad Karimov

Software Engineer, Udemy Instructor and Book Author, Founder at AppMillers