Answer: Python Puzzler #1927

The answer is A. The program prints:

5 6
What the program prints
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 6. 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:

ab
before15
after56

The code again

a = 1
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.