본문 바로가기

프로그래밍/Python

파이썬 강좌 :: 04. 변수와 자료형

변수를 시작하며


안녕하세요 ! 이번 강좌의 주제는 변수에요. 변수란 무엇일까요? 변수는 수학에서 '값이 일정하지 않고 계속 변하는 수'를 의미해요. 그러나 프로그래밍에서의 변수는 조금 다른 의미를 가지고 있어요.

프로그래밍에서 변수는 '데이터를 저장하는 공간'을 의미해요. 예를 들어 여러분이 현재 시간에 대한 정보를 저장하고 싶다면 변수를 만들어서 그 공간에 현재 시간에 대한 데이터를 집어넣어야 해요.


자 그러면 변수를 생성하고 관리하는 방법에 대하여 천천히 알아보도록 할까요?


목차

  • 1. 변수 생성하기
  • 2. 변수 작명 규칙
  • 3. 자료형




변수 생성하기


변수를 생성하기 위해서는 변수에 넣을 데이터와 변수의 이름이 필요해요. 그 다음에 데이터를 변수의 이름에 대입 연산을 수행하면 변수가 생성된답니다. 예를 들어 현재시간 6시의 데이터를 저장하는 current_time 라는 이름을 갖는 변수를 생성하려면 다음과 같은 코드를 작성해야 해요.


current_time = 6


여기서 기호 = 는 '같다'의 의미가 아닌 '대입한다'의 의미로 사용되요. 프로그래밍에선 기호 '='를 대입연산자라고 불러요. 수학에서와 전혀 다르기 때문에 항상 주의해주셔야 되요. 이 부분에서 초보자분들이 많이 실수를 한답니다.

위 코드를 해석하자면 이래요. "이름이 current_time인 변수를 생성하고 6을 대입한다."


변수에 저장된 데이터는 변수의 이름으로 접근할 수 있어요. 실제로 파이썬 쉘에서 변수를 선언한 후, 변수의 이름으로 데이터를 접근해볼까요?


>>> current_time = 6

>>> current_time

6


정말 current_time이라는 변수에 6이 담긴 것을 확인할 수 있어요.


변수에는 무엇이든 담을 수 있어요. 만약 다른 데이터를 집어넣을 경우 이전에 존재했던 데이터는 사라지니 주의하셔야 해요. 이번엔 변수에 문자열을 저장해볼까요? 문자열 데이터는 작은 따옴표 혹은 큰 따옴표 2개로 감싸주어야 해요.


>>> y = 'hello'

>>> y

'hello'


변수 y에 'hello'라는 문자열을 저장했어요. 프롬프트에 y를 입력하면 위와 같이 저장된 문자열이 출력될거에요.



변수 작명 규칙


변수의 이름을 지을 때는 몇가지 규칙이 있어요. 이 규칙을 지키지 않으면 변수를 생성할 수 없으니 꼭 지켜주어야 해요. 그렇게 힘든 규칙은 아니니 한번 읽어보는 것으로 충분할 거에요.


1. 문자,언더바,숫자를 사용할 수 있다.

2. 대소문자를 구분한다.

3. 예약어는 사용하지 못한다.

4. 숫자로 시작하지 못한다.


변수의 이름은 문자, 언더바, 숫자를 조합해서만 작성되요. 다만 숫자로 시작하는 이름은 불가능하답니다. 만약 숫자로 시작하는 이름을 사용할 경우 다음처럼 문법 에러가 발생해요.


>>> count = 1

>>> 8count = 1

  File "<stdin>", line 1

    8count = 1

     ^

SyntaxError: invalid syntax

>>>


변수의 이름으로 예약어를 사용할 수 없어요. 예약어란 파이썬 문법에서 이미 사용중인 단어들을 의미합니다. 예약어들의 리스트는 다음처럼 확인해 볼 수 있어요.


>>> import keyword

>>> keyword.kwlist

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

>>>


마찬가지로 예약어를 변수이름으로 사용하면 문법 에러가 발생합니다.



자료형


프로그래밍에서 모든 데이터들은 자료형이란 것을 부여받게 되요. 자료형은 쉽게 생각해서 데이터의 종류에요. 데이터의 종류로는 정수, 실수, 문자열등이 있겠죠?


변수도 마찬가지로 데이터를 담고 있기 때문에 변수에게도 자료형이 부여되요. 변수의 자료형은 변수가 담고있는 데이터의 자료형을 따라간답니다. 변수의 자료형을 확인하는 방법은 type이라는 함수를 사용하는 것이에요.


>>> x = 2

>>> type(x)

<class 'int'>

>>>


type(x)의 결과로 <class 'int'>라는 문장이 출력되었는데, 여기서 class란 자료형을 의미해요. 즉, 변수 x는 자료형이 int임을 알 수 있어요. 자료형 int는 정수 데이터를 의미한답니다.


파이썬에는 다양한 기본자료형이 존재해요. 그 중에서도 많이 쓰이는 것들은 아래와 같습니다.


int 정수

float 실수

bool  참과 거짓

str 문자열

list 변경가능한 순열

tuple 변경불가능한 순열

set 집합

dict 사전형 집합


변수가 정수를 저장하고 있으면 변수는 int형이 되요.

>>> n = 10

>>> type(n)
<class 'int'>

>>>


변수가 실수를 저장하고 있으면 변수는 float형이 되요.

>>> n = 3.5

>>> type(n)

<class 'float'>

>>>


변수가 문자열을 저장하고 있으면 변수는 str형이 되요.

>>> n = 'hello'

>>> type(n)
<class 'str'>

>>>


이처럼 변수는 담고있는 데이터가 무엇이냐에 따라 자료형이 정해지게 됩니다.


확인문제


다음 빈칸에 출력될 숫자는?

>>> x = 50

>>> x

50

>>>


다음 빈칸에 출력될 숫자는?

>>> y = 100

>>> y + 50

150

>>>


다음 코드에서 에러가 발생하는 이유는?


>>> 9area = 10

  File "<stdin>", line 1

    9area = 10

     ^

SyntaxError: invalid syntax

>>>

A. 숫자로 시작하는 변수의 이름을 사용해서