파이썬 - 2. Datatype (자료형)

Data type (자료형)

 컴퓨터는 모든 정보를 0과 1 즉, 이진법으로 처리한다. '87'이라는 숫자를 입력하면 컴퓨터는 이진법으로 변환, '111101010111'로 읽는 것이다. '40+47'을 계산하라고 명령한다면 모든 입력된 정보를 이진법으로 처리하고 계산한 뒤 다시 십진법으로 변환해 우리에게 알려준다. 숫자뿐만 아니라 문자도, 아주 복잡한 자료도 이진법으로 처리한다.

 또 다른 예를 들어 컴퓨터가 알파벳을 이해하기 위해선 모든 알파벳에 숫자로 된 번호를 지정해 처리한다. 대표적으로 추리소설이나 영화에 종종 등장하는 '아스키코드'가 그것이다. 'Wecode'의 첫 글자인 'W'는 아스키코드에서 '87'로 표현한다.

 그렇다면 위에서 예시로 든 숫자 '87'과 알파벳 '87'을 컴퓨터는 어떻게 구분하는 것인가? 답은 간단하게 숫자인지 문자인지 표시해주면 되는 것이다. 이렇게 표시해주는 것이 바로 '자료형'이다. 다행인 점은 내가 자료형에 대해 잘 몰라도 파이썬은 내가 어떤 자료를 만들 때마다 알아서 자료형을 정해주었다.

Numbers datatype (숫자 자료형)

 숫자를 나타내는 자료형으로는 int(정수형), float(실수형), complex(복소수형)가 있다.

- int (정수형)

  • 말 그대로 소숫점 없는 정수인 숫자 자료형을 말한다.
a = 87
print(a)
>87

- float (실수형)

  • 소숫점이 포함 된 숫자 자료형을 말한다.
a = 87.0
print(a)
>87.0

 * 주의할 점은 정수형과 실수형을 혼합해 연산을 할 순 있지만 결과물의 자료형은 실수형이 된다.

a = 1
b = 2.0
print(a+b)
>3.0

- complex numbers (복소수형)

  • 실수와 허수를 포험한 복소수를 말한다.
  • 다른 언어에선 표현하기 어려울 수 있으나 파이썬에선 굉장히 간단하게 표현이 가능하다. 그저 숫자 뒤에 'j'를 붙이면 된다.
  • 과학, 공학 분야에서 필요한 여러 기능을 기본적으로 제공하는 파이썬의 대표적인 특징이다. (C언어에서 복소수 연산하는 과정을 찾아보니 굉장히 긴 코드로 구현하더라.)
a = 1 + 2j
print(type(a))
print(a)
> <class 'complex'>
> (1+2j)

- (번외) 8진수와 16진수

  공부하던 자료에 같이 들어 있던 것인데 혹시 몰라서 정리하는 것. 자주 사용하진 않는다고 한다.
  • 8진수를 만들기 위해선 숫자가 0o 혹은 0O (숫자 0 + 알파벳 o or O)로 시작하면 된다.

  • 16진수를 만들기 위해선 0x(숫자 0 + 알파벳 x)로 시작하면 된다.

a = 0o777
b = 0xABC
print(type(a))
print(type(b))
print(a)
print(b)
> <class 'int'>
> <class 'int'>
> 511
> 2768

String type (문자열)

문자, 단어 등으로 구성된 문자들의 집합을 말한다. 따옴표(작은, 큰 모두)에 둘러 쌓여 있으면 모두 문자열이라고 보면 된다. 숫자도 예외 없다.

print("Hello Wecode!")
print("123")
>Hello Wecode!
>123
* 모두 string 자료형임!

사실 문자열에 대한 설명은 전에 썼던 print 정리글에서 언급했던 내용과 많이 겹친다. 또, 문자열과 관련된 기능들을 넣자니 글이 너무 길어질 것 같아 문자열 기능과 관련된 글은 따로 쓸까 한다.

Boolean type (불)

불 자료형이란 True(참), False(거짓)을 나타내는 자료형으로 저 두 가지 값만 갖는다. 이때 True나 False는 파이썬의 '예약어'로 항상 첫 글자가 대문자여야 한다. Repl 풀 때 이 사실을 몰라서 한 번 해맸던 기억이 난다.


reference

왕초보를 위한 Python: 쉽게 풀어 쓴 기초 문법과 실습
점프 투 파이썬
아스키코드

좋은 웹페이지 즐겨찾기