문제

연오는 변수 x와 변수 y의 데이터를 서로 교환하여 출력하는 프로그램을 작성했다.

# 변수에 대입되어 있는 데이터
x = 10
y = -20

# 두 변수의 데이터를 서로 교환하기 (이 부분을 수정하시오)
x = y  # 변수 x에 변수 y의 데이터를 대입한다.
y = x  # 변수 y에 변수 x의 데이터를 대입한다.

# 바뀐 결과를 출력한다.
print(x)  # -20이 출력된다. (-20이 출력되어야 한다)
print(y)  # -20이 출력된다. (10이 출력되어야 한다)

그런데 프로그램을 실행해 보니 두 변수의 데이터가 전부 -20이 되어 버렸다. 프로그램이 의도대로 동작하지 않은 이유는 무엇인가? 그 이유를 찾고 프로그램을 올바르게 수정해 보라

프로그램이 의도대로 동작하지 않은 이유

수정한 프로그램 코드

# 변수에 대입되어 있는 데이터
x = 10
y = -20

# 두 변수의 데이터를 서로 교환하기
x, y = y, x

# 바뀐 결과를 출력한다.
print(x)
print(y)

실행 결과

-20
10

해설