Table of Contents
Functions: The Building Blocks of Programs
Functions are like mini-programs within your program. They help you organize code, avoid repetition, and make your programs easier to understand and maintain.
What is a Function?
A function is a named block of code that performs a specific task. Think of it like a recipe - you give it ingredients (inputs), it follows steps (code), and gives you a result (output).
Simple Function Example
// Define a function
function greetUser(name):
return "Hello, " + name + "!"
// Use the function
message = greetUser("Alice")
print(message) // Output: Hello, Alice!
Function Components
- Function Name: What you call it (greetUser)
- Parameters: Inputs the function needs (name)
- Body: The code that runs
- Return Value: What the function gives back
Why Use Functions?
1. Avoid Repetition (DRY Principle)
DRY = "Don't Repeat Yourself"
Without Functions (Repetitive)
// Calculating area multiple times
length1 = 5
width1 = 3
area1 = length1 * width1
print("Area 1: " + area1)
length2 = 8
width2 = 4
area2 = length2 * width2
print("Area 2: " + area2)
length3 = 6
width3 = 2
area3 = length3 * width3
print("Area 3: " + area3)
With Functions (Clean)
// Define once, use many times
function calculateArea(length, width):
return length * width
// Use multiple times
area1 = calculateArea(5, 3)
area2 = calculateArea(8, 4)
area3 = calculateArea(6, 2)
print("Area 1: " + area1)
print("Area 2: " + area2)
print("Area 3: " + area3)
2. Better Organization
Functions help break large problems into smaller, manageable pieces.
3. Easier Testing and Debugging
You can test each function separately to make sure it works correctly.
Types of Functions
1. Functions with Return Values
function addNumbers(a, b):
result = a + b
return result
sum = addNumbers(10, 5) // sum = 15
2. Functions without Return Values (Procedures)
function printWelcome(name):
print("Welcome to our program, " + name + "!")
print("We hope you enjoy your experience!")
printWelcome("Bob") // Just performs actions, no return
3. Functions with Multiple Parameters
function calculateGrade(score, totalPoints, extraCredit):
percentage = (score + extraCredit) / totalPoints * 100
if percentage >= 90:
return "A"
else if percentage >= 80:
return "B"
else if percentage >= 70:
return "C"
else:
return "F"
grade = calculateGrade(85, 100, 5) // Returns "A"
Function Best Practices
1. Use Descriptive Names
- ✅
calculateTax()
- ❌
calc()
2. Keep Functions Small and Focused
Each function should do one thing well.
3. Use Clear Parameter Names
- ✅
function convertTemperature(celsius)
- ❌
function convertTemperature(x)
Well-Designed Function Example
function isValidEmail(email):
// Check if email contains @ symbol
if "@" not in email:
return false
// Check if email has text before and after @
parts = email.split("@")
if length(parts) != 2:
return false
if length(parts[0]) == 0 or length(parts[1]) == 0:
return false
return true
// Usage
if isValidEmail("user@example.com"):
print("Valid email!")
else:
print("Invalid email!")
Real-World Function Examples
Password Strength Checker
function checkPasswordStrength(password):
score = 0
if length(password) >= 8:
score = score + 1
if containsNumbers(password):
score = score + 1
if containsUppercase(password):
score = score + 1
if containsSpecialChars(password):
score = score + 1
if score >= 3:
return "Strong"
else if score >= 2:
return "Medium"
else:
return "Weak"
🎯 Function Practice Exercises
- Write a function that converts Celsius to Fahrenheit
- Create a function that finds the largest number in a list
- Build a function that counts vowels in a word
- Design a function that generates a simple math quiz question
Common Function Mistakes
- Forgetting to return a value when you need one
- Functions that do too many things - keep them focused
- Poor parameter naming - use descriptive names
- Not testing functions with different inputs
Next Steps
Functions are fundamental to good programming. As you advance, you'll learn about more advanced concepts like:
- Function libraries and modules
- Recursive functions (functions that call themselves)
- Anonymous functions
- Function parameters with default values