Python 기초

변수의 소개

변수란?

변수(variable)는 값을 저장하는 공간입니다. 변수는 값을 저장했다가 필요할 때 꺼내 쓸 수 있는 상자라고 생각할 수 있습니다.

 

즉 우리가 필요에 따라서 변수에 들어 있는 값을 다른 값으로 바꿀 수 있는 것입니다.

 

변수가 필요한 경우

어떤 경우에 변수가 필요할까요?

게임에 대한 이미지 검색결과

파이썬으로 게임을 제작한다고 합시다. 사용자의 점수는 게임 도중에 계속 변경될 것이며 어딘가에 그 값이 저장되어야 할 것입니다.

이렇게 지속적으로 변할 수 있는 값에 대하여 사용되는 저장 공간이 변수입니다.

 

그렇다면 변수는 어디에 만들어질까요? 바로 컴퓨터의 메모리(memory)입니다.

컴퓨터는 여러 가지 값들을 저장하기 위한 메모리를 가지고 있고 변수는 이 메모리에 생성됩니다.

 

메모리 변수에 대한 이미지 검색결과

"메모리" 라는 카운터에 필요할 때마다 변수를 만들어 그 안에 값을 저장한다.

 

변수 만들기

파이썬에서 변수를 만드는 과정을 정말 간단한데 변수의 이름을 정하고 등호(=)를 사용하여 값을 저장하면 됩니다.

변수에 값을 저장하는 문장을 할당문(assignment statement) 또는 대입문이라고 합니다.

 

(변수이름) = (값)

 

파이썬에서 변수는 값이 할당되는 순간에 생성됩니다. 아래 예제를 보며 변수에 대한 감을 더 익히도록 합시다.

score = 20

print(score)

 

<실행 결과>

20

 

위의 코드는 파이썬에게 변수 score를 생성하고 20이라는 값을 저장한 후 print() 함수를 이용해 score의 값을 출력하는 예제입니다.

대화형 Python에서는 print() 함수와 더불어 변수 이름만 입력하고 엔터키를 눌러도 그 값을 확인할 수 있습니다.

 

변수 값 변경하기

생성된 변수에는 얼마든지 다른 값을 저장할 수 있습니다.

예를 들어 사용자가 10점짜리 아이템을 먹어 점수를 10만큼 증가시켜야 한다고 할 때, 우리는 score를 30으로 변경할 수 있습니다.

 

score = 20
score = 30

print(score)

 

<실행 결과>

30

 

처음에 score에 20이라는 값을 저장하였지만 이후 30을 저장하였습니다. 이때 변수 score에 있던 20이 지워지고 30이 새롭게 저장됩니다.

변수는 언제든 값을 변경할 수 있기 때문에 "변수(변할 수 있는 수)"라는 이름이 붙었습니다.

 

변수에 다른 변수의 값 저장하기

변수에는 다른 변수의 값도 저장할 수 있습니다.

일반적으로 변수에는 어떤 수식의 값도 저장할 수 있는데 아래 예제에서 사각형의 가로 길이와 세로 길이를 나타내는 변수를 만들고 사각형의 면적을 계산해보겠습니다.

width = 10
height = 20
area = width * height

print(area)

 

<실행 결과>

200

 

위의 코드에서는 변수 width에 10이 저장되고 변수 height에는 20이 저장됩니다. 변수 area에는 수식 (width * height) 의 값이 저장됩니다.

 

파이썬의 변수에는 정수뿐만 아니라 문자열도 저장할 수 있습니다. 물론 실수도 저장 가능합니다.

문자열을 출력할 때는 작은 따옴표(' ')를 사용하여 출력해도 됩니다.

s = "안녕하세요?"
pi = 3.141592

print(s)
print(pi)

 

<실행 결과>

안녕하세요?
3.141592

 

주의하기

파이썬에서 값이 할당되지 않은 변수를 사용하면 오류가 발생합니다.

아래의 예제는 trouble이라는 변수에 값을 할당하지 않은 채 print 함수를 이용하여 값을 출력하려 하는 경우입니다.

print(trouble)

 

<실행 결과>

NameError: name 'trouble' is not defined

 

파이썬이 NameError: name 'trouble' is not defined 라고 친절하게 알려주었는데 trouble에 값이 할당되어 있지 않음을 직접적으로 알 수 있습니다.

이렇게 오류가 발생했을 때는 어떤 오류가 났는지 반드시 에러 메세지를 확인하셔야 합니다. (궁서체)

 

또한 파이썬에서는 변수의 값만 변경할 수 있습니다. 아래 예제는 오류가 발생하는 예제입니다.

x=1
1=x

 

<실행 결과>

SyntaxError: can't assign to literal

 

1에는 x를 대입할 수 없음을 파이썬 문법 오류를 통해 알려주고 있습니다.

 

도전 과제

봉민이는 파이썬을 공부하던 중 변수 x와 변수 y의 값을 서로 바꾸는 프로그램을 작성하다 어려움을 겪고 있습니다. 어떤 어려움을 겪고 있는지 같이 확인해볼까요?

x = 10	#(1)
y = 20	#(2)
x = y	#(3)
y = x	#(4)

print("x : ", x)
print("y : ", y)

 

<실행 결과>

x : 20
y : 20

 

위의 코드 중 어느 부분이 잘못 되었는지 고르고 아래와 같은 실행결과가 나오게 고쳐보세요.

x : 20
y : 10