Assignment and augmented assignment in Python - Time & Space Complexity
Start learning this pattern below
Jump into concepts and practice - no test required
Let's see how the time it takes to run code with assignment and augmented assignment changes as we work with bigger numbers.
We want to know how the number of steps grows when we do simple assignments or add-and-assign repeatedly.
Analyze the time complexity of the following code snippet.
total = 0
for i in range(n):
total += i
This code adds numbers from 0 up to n-1 into a total using augmented assignment.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The addition and assignment inside the loop (total += i).
- How many times: This happens once for each number from 0 to n-1, so n times.
Each time we increase n, the loop runs more times, doing one addition and assignment each time.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 additions and assignments |
| 100 | 100 additions and assignments |
| 1000 | 1000 additions and assignments |
Pattern observation: The number of steps grows directly with n; if n doubles, the work doubles.
Time Complexity: O(n)
This means the time to finish grows in a straight line with the size of n.
[X] Wrong: "Augmented assignment like total += i is faster and takes constant time regardless of n."
[OK] Correct: Even though augmented assignment looks simple, it happens inside a loop that runs n times, so total steps grow with n.
Understanding how simple loops with assignments grow helps you explain how programs handle bigger data smoothly and clearly.
"What if we replaced the loop with a single assignment like total = n * (n - 1) // 2? How would the time complexity change?"
Practice
What does the += operator do in Python?
Solution
Step 1: Understand the meaning of
The+=+=operator adds the value on the right to the variable on the left.Step 2: Recognize it updates the variable
It changes the original variable by adding the new value to it.Final Answer:
Adds the right value to the left variable and updates it -> Option AQuick Check:
+=means add and assign [OK]
- Confusing += with simple assignment =
- Thinking += creates a new variable
- Mixing += with subtraction or multiplication
Which of the following is the correct syntax to add 5 to variable x using augmented assignment?
x = 10
# Add 5 to x here
Solution
Step 1: Identify correct augmented assignment syntax
The correct syntax to add and assign isx += 5.Step 2: Check other options for syntax errors
Choices likex =+ 5andx =+5use incorrect operator placement;x = x +is incomplete.Final Answer:
x += 5 -> Option BQuick Check:
Use+=for adding and assigning [OK]
- Writing =+ instead of +=
- Leaving out the value after +
- Using incomplete expressions
What is the output of this code?
count = 3
count += 4
count -= 2
print(count)Solution
Step 1: Calculate
Starting from 3, adding 4 gives 7.count += 4Step 2: Calculate
Subtracting 2 from 7 gives 5.count -= 2Final Answer:
5 -> Option DQuick Check:
3 + 4 - 2 = 5 [OK]
- Adding and subtracting in wrong order
- Confusing += and -= effects
- Ignoring the initial value
Find the error in this code snippet:
total = 10
total + = 5
print(total)Solution
Step 1: Check augmented assignment syntax
The operator+=must not have spaces between + and =.Step 2: Identify the error caused by space
Writing+ =causes a SyntaxError in Python.Final Answer:
SyntaxError due to space in augmented assignment -> Option CQuick Check:
No spaces allowed in+=operator [OK]
- Adding spaces inside augmented assignment operator
- Assuming it works like normal addition
- Ignoring syntax error messages
You have a variable score = 50. You want to increase it by 10%, then subtract 5 using augmented assignments. Which code correctly does this?
score = 50
# Increase by 10%
# Subtract 5
Solution
Step 1: Increase score by 10%
Multiplying by 1.1 increases the value by 10%, soscore *= 1.1is correct.Step 2: Subtract 5 using augmented assignment
Usescore -= 5to subtract 5 from the updated score.Final Answer:
score *= 1.1 score -= 5 -> Option AQuick Check:
Multiply by 1.1 then subtract 5 [OK]
- Adding 10 instead of 10%
- Using invalid syntax like 10%
- Not updating score before subtracting
