..

Search

6) 변수

변수


변수(variable)

대부분의 프로그램은 데이터를 활용하여 다양한 동작을 수행하며, 이러한 데이터는 컴퓨터의 메모리 공간에 저장될 수 있습니다. 이때 데이터를 저장한 메모리 공간에 이름을 할당받아야만 나중에 다시 해당 데이터에 접근할 수 있습니다.

 

이것은 마치 다음과 같이 제목(label)을 붙여 놓은 서류함(cabinet)과 비슷한 원리라고 생각하면 됩니다.

 

programming

 

이처럼 프로그램에서 사용되는 데이터를 저장해 놓는 일종의 저장 공간을 변수(variable)라고 부릅니다. 즉, 변수란 데이터를 저장할 수 있도록 이름을 할당받은 메모리 공간을 의미하며, 이렇게 저장된 데이터에는 언제든지 다시 접근하거나 그 값을 변경할 수 있습니다.


변수의 사용

다음은 애국가 1절 전반부를 세 번 출력하기 위해서 print() 함수를 세 번 사용하는 예제입니다.

예제

print("동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세")

print("동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세")

print("동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세")  

코딩연습 ▶

실행 결과

동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세
동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세
동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세

 

하지만 이와 같은 방법은 매우 비효율적이며 코드 또한 매우 복잡해집니다.

 

이때 우리가 사용할 수 있는 것이 바로 변수입니다.

우선 변수를 선언하여 문자열을 저장한 다음 해당 변수를 사용하여 문자열을 출력하면 됩니다.

예제

korea = "동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세"

print(korea)

print(korea)

print(korea)

코딩연습 ▶

실행 결과

동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세
동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세
동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세

 

위 예제의 1번 라인에서는 korea라는 이름의 변수를 선언하고, 대입 연산자(=)를 사용하여 해당 변수에 문자열을 저장하고 있습니다. 이렇게 선언된 변수는 해당 프로그램이 종료될 때까지 계속해서 재사용할 수 있습니다.

 

이처럼 변수를 사용하면 중복해서 작성해야 하는 코드가 많이 줄어들게 되므로, 코드의 가독성이 높아집니다.

 

위의 예제에서 사용된 ‘\n’ 문자는 줄바꿈(new line)을 나타내는 이스케이프 문자(escape character)로 print() 함수는 이 문자를 만나면 줄을 바꾼 후에 계속해서 출력을 진행하게 됩니다.

 

파이썬에서 '같음'을 비교할 때는 등호가 두 개(==)인 비교연산자를 사용합니다. 이때 실수로 값을 비교할 때 대입연산자(=)를 잘못 사용하지 않도록 주의할 필요가 있습니다.

변수의 재활용

선언된 변수는 해당 프로그램이 종료될 때까지 계속해서 사용할 수 있으며, 이때 변수에 저장된 데이터를 변경할 수도 있습니다.

 

다음 예제는 변수 korea에 저장된 값을 프로그램이 실행되는 도중 대입 연산자를 사용하여 다른 값으로 변경하는 예제입니다.

예제

korea = "동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세"

print(korea)

print(korea)

print(korea + "\n")  

korea = "남산 위에 저 소나무 철갑을 두른 듯 바람 서리 불변함은 우리 기상일세"

print(korea)

print(korea)

print(korea)  

코딩연습 ▶

실행 결과

동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세
동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세
동해 물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세


남산 위에 저 소나무 철갑을 두른 듯 바람 서리 불변함은 우리 기상일세
남산 위에 저 소나무 철갑을 두른 듯 바람 서리 불변함은 우리 기상일세
남산 위에 저 소나무 철갑을 두른 듯 바람 서리 불변함은 우리 기상일세

 

위 예제의 5번 라인에서는 이미 선언된 변수 korea에 애국가 2절 문자열을 저장하고 있습니다. 따라서 변수 korea에는 앞서 저장되어 있던 애국가 1절의 문자열 대신에 애국가 2절의 문자열이 저장됩니다.

 

이렇게 변수의 데이터를 변경하면 기존에 저장되어 있던 데이터는 완전히 사라지게 되니 주의해야 합니다.

변수명 생성 규칙

만약 파이썬에서 변수명으로 if나 while 등을 사용할 수 있으면, 파이썬 인터프리터는 이것이 변수명인지 아니면 조건문이나 반복문을 나타내는 것인지 알 수 없게 됩니다. 따라서 파이썬 인터프리터는 SyntaxError라는 에러 메시지를 출력하고 프로그램을 강제로 종료시킵니다.

 

이처럼 파이썬을 비롯한 모든 프로그래밍 언어에서는 변수의 이름을 짓는데 반드시 지켜야하는 공통된 규칙을 가지고 있습니다.

 

다음은 파이썬에서 변수명을 지을 때 지켜야하는 규칙들입니다.

 

1. 변수명은 영문자(대소문자), 숫자, 언더스코어(_)로만 작성할 수 있습니다.

2. 변수명은 숫자로 시작할 수 없습니다. 즉, 반드시 영문자나 언더스코어(_)로 시작해야 합니다.

3. 변수명은 대소문자를 구분합니다.

4. 변수명에는 파이썬에서 미리 정의된 예약어(reserved words)는 사용할 수 없습니다.

 

파이썬에서 미리 정의된 예약어는 다음과 같습니다.

False await else import pass
None break except in raise
True class finally is  return
and continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yield

 

파이썬에서 변수명은 해당 변수에 저장되는 데이터를 의미할 수 있는 단어를 사용하여 간단명료하게 구성하는 것이 좋으며, 같은 프로그램에서 선언된 변수들의 이름은 가급적 일관되게 작성하는 것이 좋습니다.

연습문제