상세 컨텐츠

본문 제목

[Python/파이썬]008. 변수 / 파이썬 독학

컴퓨터/Python(파이썬)

by Dvlp_Jun 2020. 2. 20. 09:00

본문

안녕하세요? 제이스쿨입니다.

원래대로라면 입력과 출력을 포스팅해야 하지만

지난 시간 변수에 대한 설명이 부족했던 것 같아

간단한 문제로 공부해보고자 합니다.

 

▶오늘의 문제

변수a의 값이 3이고

변수b의 값이 8일때

a와 b의 값을 서로 바꾸시오.

▶문제 설명

문제에 대해 설명드리겠습니다.

위 사진과 같이 a변수에는 3을 대입하고 b변수에는 8을 대입했습니다.

그다음 회색박스의 코드를 입력하니

마지막에 a와 b를 출력하자

다음과 같이 출력이 되었습니다.

회색박스에는 어떤 코드가 있었을까요?

 

 

▶문제 풀이

대다수 처음 파이썬을 접하신 분들이라면

다음과 같이 코드를 적으셨을 것 같습니다.

#1

a=3
b=8

a=b

print(a,b)

 

정답코드와 위 코드의 차이점은

a=b 위아래로 t=a와 b=t가 있느냐 없느냐 입니다.

 

a=b만 있는 경우 실행시 사진과 같이 8 8 이 출력됩니다.

a를 출력했더니 b의 값인 8이나오고

b를 출력했더니 b의값인 8이 나온 것입니다.

이를 통해서  a=b라는 코드를 적었을 때, 코드는 뒤바뀌지 않고

오른쪽 변수의 값이 왼쪽 변수에게 대입된다는 것을 알 수 있습니다.

 

 

어떤 분들은 다음과 같이 코드를 작성하셨을 수 있습니다.

#2

a=3
b=8

a=b
b=a

print(a,b)

언뜻보면 a에는 b의 값을 대입하고

b에는a의 값을 대입하니 맞는 것 같습니다.

하지만 실행을 해보면

이번에도 a를 출력하니 8

b를 출력하니 8이 나왔습니다.

왜 이렇게 된 것일까요?

 

예전 포스팅에서 설명드렸듯, 프로그램은

프로그램작성자가 작성한 대로 움직일 뿐

프로그램작성자가 원하는 대로 움직일만큼

똑똑하지 않습니다.

#2코드를 해석해보겠습니다.

a=3 
변수a에 3을 대입한다. a의 값은 3, b의 값은 없음(변수지정을 안했기 때문)

b=8 
변수b에 8을 대입한다.  a의 값은 3, b의 값은 8

a=b
b값을 a에 대입한다. a의 값은 8, b의 값은 8

b=a
a값을 b에 대입한다. a의 값은8, b의 값은 8

print(a,b)
a와 b를 출력한다.
8   8

이해가 되시나요?

그렇기 때문에 출력 시, 8  8이 출력된 것입니다.

 

올바른 코드는 다음과 같습니다.

▶정답 코드

a=3
b=8

t=a
a=b
b=t

print(a,b)

 

위 코드도 #2코드와 같이 해석해보겠습니다.

a=3
변수a에 3을 대입한다. a의 값은 3, b의 값과 t의 값은 없음(변수지정을 안했기 때문)

b=8
변수b에 8을 대입한다.  a의 값은 3, b의 값은 8, t의 값은 없음(변수지정을 안했기 때문)

t=a
a값을 t에 대입한다.  a의 값은 3, b의 값은 8, t의 값은 3(a로부터 받음)

a=b
b값을 a에 대입한다. a의 값은 8(b로부터 받음), b의 값은 8, t의 값은 3

b=t
t값을 b에 대입한다. a의 값은 8, b의 값은 3(t로부터 받음), t의 값은 3

print(a,b)
a와 b를 출력한다.
8   3

어떠신가요?

이해가 되셨나요?

두 변수 값을 서로 바꾸기 위해선 변수가 총 3개가 필요했습니다.

 

이를 통해 오늘은

등호(=)는 값을 같게 만든다기 보다 값을 대입시키는 부호라는 것,

두 변수의 값을 서로 바꾸기위해선 변수가 1개 더 필요하다는 것을

알 수 있었습니다.

 

이해가 안되는 부분은 오늘 포스팅과 같이 특별포스팅을 올려

학습에 도움을 드릴 수 있도록 하겠습니다.

피드백은 언제나 환영입니다.

감사합니다.

관련글 더보기

댓글 영역