Previous chapter | Next Chapter |
---|---|
Python Chapter 2: Working with Loops | stay tuned |
Now that you’ve mastered loops, it’s time to explore functions—a key concept in making your code more organized and reusable. Functions allow you to bundle up a block of code and execute it whenever you need it, rather than writing the same code multiple times.
1. What is a Function?
A function is like a recipe that contains a set of instructions. Once you’ve defined it, you can call it any time to execute that block of code. Functions help to:
- Break your program into smaller, manageable pieces.
- Avoid code repetition.
- Make your code cleaner and easier to understand.
In Python, you define a function using the def
keyword.
Example:
def greet():
print("Hello!")
This is a simple function named greet
. When you call it, it prints “Hello!”.
2. Calling a Function
Once a function is defined, you can call it by using its name followed by parentheses.
Example:
greet() # This will print "Hello!"
3. Function Parameters
Functions become more flexible when you give them parameters. Parameters allow you to pass data into the function when you call it.
Example:
def greet(name):
print(f"Hello, {name}!")
greet("Alice") # Prints "Hello, Alice!"
greet("Bob") # Prints "Hello, Bob!"
In this example, name
is a parameter. When you call greet()
, you pass in the name you want to greet, making the function more dynamic.
4. Return Values
Sometimes, you’ll want a function to calculate or process something and then give you a result. You can use the return
statement to return a value from the function.
Example:
def add_numbers(a, b):
return a + b
result = add_numbers(5, 3)
print(result) # Prints 8
In this case, add_numbers()
adds the two parameters a
and b
and returns the result, which is stored in the variable result
.
5. Default Parameter Values
You can also define default values for function parameters. If no argument is passed for that parameter, the default value will be used.
Example:
def greet(name="Stranger"):
print(f"Hello, {name}!")
greet() # Prints "Hello, Stranger!"
greet("Alice") # Prints "Hello, Alice!"
Here, if no name is provided when greet()
is called, it defaults to “Stranger”.
6. Keyword Arguments
When calling a function, you can specify arguments by name using keyword arguments. This allows you to pass values in any order.
Example:
def introduce(name, age):
print(f"My name is {name} and I am {age} years old.")
introduce(age=30, name="Alice")
In this example, even though age
is provided first, the function works correctly because the arguments are passed by name.
7. Functions with Multiple Return Values
Python allows functions to return multiple values, which can be useful in many scenarios. You can return multiple values as a tuple.
Example:
def get_name_and_age():
name = "Alice"
age = 25
return name, age
name, age = get_name_and_age()
print(name) # Prints "Alice"
print(age) # Prints 25
8. Lambda Functions
Sometimes, you need a small, anonymous function that you’ll use just once. For that, Python provides lambda functions. These are one-liner functions without a name.
Example:
add = lambda x, y: x + y
print(add(3, 5)) # Prints 8
With functions, you’ve taken a major step towards writing cleaner, more efficient code. Functions let you break your program into smaller, reusable pieces and give you the flexibility to pass data in and return results. In the next chapter, we’ll explore how to work with lists and manipulate collections of data!