Function definition and syntax in Python - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
When we write a function, it's important to know how long it takes to run as the input changes.
We want to see how the time grows when we call the function with bigger inputs.
Analyze the time complexity of the following code snippet.
def greet(name):
print(f"Hello, {name}!")
user_name = "Alice"
greet(user_name)
This code defines a simple function that prints a greeting message once.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: A single print statement inside the function.
- How many times: The function runs once, so the print runs once.
Explain the growth pattern intuitively.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 1 |
| 100 | 1 |
| 1000 | 1 |
Pattern observation: The number of operations stays the same no matter the input size.
Time Complexity: O(1)
This means the function takes the same amount of time no matter how big the input is.
[X] Wrong: "The function takes longer if the input name is longer."
[OK] Correct: The function just prints once, so the time does not grow with input size.
Understanding simple function time helps build a strong base for more complex code analysis.
"What if the function printed each character of the name one by one? How would the time complexity change?"
Practice
Solution
Step 1: Recall Python function syntax
In Python, functions are defined using the keyworddef.Step 2: Compare options
Only def uses the correct keyworddef. Others are not valid Python keywords.Final Answer:
def -> Option DQuick Check:
Function definition starts with def [OK]
- Using 'function' instead of 'def'
- Using 'func' or 'define' which are not Python keywords
greet that takes no parameters?Solution
Step 1: Check function header syntax
The correct syntax usesdef, function name, parentheses for parameters, and a colon.Step 2: Validate each option
def greet(): matches this exactly:def greet():. Others have wrong keywords, brackets, or missing parentheses.Final Answer:
def greet(): -> Option AQuick Check:
def + name + () + : is correct syntax [OK]
- Omitting parentheses after function name
- Using square brackets instead of parentheses
- Using 'function' keyword instead of 'def'
def add(x, y):
return x + y
print(add(3, 4))Solution
Step 1: Understand function behavior
The functionaddtakes two numbers and returns their sum.Step 2: Calculate the return value
Callingadd(3, 4)returns 3 + 4 = 7, which is printed.Final Answer:
7 -> Option AQuick Check:
3 + 4 = 7 [OK]
- Concatenating numbers as strings (getting '34')
- Forgetting to return value (getting None)
- Passing wrong number of arguments causing TypeError
def multiply(a, b)
return a * bSolution
Step 1: Check function header syntax
The function header must end with a colon (:).Step 2: Identify missing colon
The code misses the colon afterdef multiply(a, b), causing a syntax error.Final Answer:
Missing colon at the end of function header -> Option BQuick Check:
Function header must end with : [OK]
- Forgetting colon after function header
- Incorrect indentation of return line
- Using wrong brackets for parameters
is_even that returns True if a number is even, otherwise False. Which is the correct function?Solution
Step 1: Understand even number check
A number is even if remainder when divided by 2 is zero (n % 2 == 0).Step 2: Evaluate each option
def is_even(n): if n % 2 == 0: return True else: return False correctly returns True if remainder is zero, else False. def is_even(n): return n / 2 == 0 uses division instead of modulo. def is_even(n): if n % 2: return True else: return False returns True when remainder is non-zero (odd). def is_even(n): return n % 2 returns remainder directly (not boolean).Final Answer:
def is_even(n): if n % 2 == 0: return True else: return False -> Option CQuick Check:
Use modulo == 0 to check even [OK]
- Using division instead of modulo
- Returning remainder instead of boolean
- Confusing condition for even check
