The answer is C. The program prints:
5 8
This answer was checked by running the program for real.
Why?
Python works out everything on the right first, using the old values: b is 5 and a + b is 8. Then it puts them into a and b at the same time.
Trace table
A trace table follows the program step by step. Here’s this one:
| a | b | |
|---|---|---|
| before | 3 | 5 |
| after | 5 | 8 |
The code again
a = 3
b = 5
a, b = b, a + b
print(a, b)
Try it: change one number in the program and predict the new output before you run it.