파이썬 - 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: 쉽게 풀어 쓴 기초 문법과 실습
점프 투 파이썬
아스키코드
Author And Source
이 문제에 관하여(파이썬 - 2. Datatype (자료형)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gshduet/python2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)