어떤 프로그래밍 언어든"그언어의 자료형을 알고 이해할 수 있다면 이미 그 언어의 절반을 터득한 것이나 다름없다"는 말이 있다.
자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 뜻한다. 프로그램의 기본이자 핵심 단위가 바로 자료형이다. 계산 프로그램을 만들려면 어떤 것을 계산할지부터 알아야 하고, 데이터베이스 프로그램을 만들려면 어떤 자료를 저장할지부터 알아야하는 것처럼 기본 중의 기본이라고 할 수 있다. 따라서 자료형을 충분히 이해하지 않고 프로그래밍을 시작하려는 것은 기초 공사가 마무리되지 않은 상태에서 빌딩을 세우는 것과 같다.
자료형에는 어떤 것이 있는지 이 장에서 하나씩 자세하게 알아보자.
항목 사용 예
정수 123, -345, 0
실수 123.45, -1234.5, 3.4e10
8진수 0o34, 0o25
16진수 0x2A, 0xFF
----
정수형(Integer)
a = 100
a = -170
a = 0
----
실수형(Floating-point)
a = 1.2
a = -3.45
>>> a = 4.24E10
>>> a = 4.24e-10
위의 방식은 "컴퓨터식 지수 표현 방식"으로 파이썬에서는 4.24e10 또는 4.24E10처럼 표현한다(e와 E 둘 중 어느 것을 사용해도 무방하다). 여기서 4.24E10은 4.24∗1010
, 4.24e-10은 4.24∗10−10
을 의미한다.
----
8진수(Octal)를 만들기 위해서는 숫자가 0o 또는 0O(숫자 0 + 알파벳 소문자 o 또는 대문자 O)로 시작하면 된다.
>>> a = 0o177
16진수(Hexadecimal)를 만들기 위해서는 0x로 시작하면 된다.
>>> a = 0x8ff
>>> b = 0xABC
8진수나 16진수는 파이썬에서 잘 사용하지 않는 형태의 숫자 자료형이니 간단히 눈으로 익히고 넘어가자.
[파이썬 2.7에서 3/4를 실행하면 어떻게 될까?]
파이썬 2.7의 경우 위 사칙연산 예제의 a/b를 실행하면 0.75가 아닌 0이 출력된다. 파이썬 2.7은 정수형끼리 나눌 경우 정수로만 결과값을 리턴하기 때문이다. 만약 위 예제와 동일한 결과값을 얻고 싶다면 a/(b*1.0)처럼 b를 강제로 실수형으로 변환해야 한다. 이 책에서 사용하는 파이썬 3은 위의 사칙연산 예제에서 볼 수 있듯이 실수형으로 따로 변환해 줄 필요가 없다.
a = 3
b = 4
a ** b
81
!! 인터프리터에서는 즉각 답을 주지만 에디터에서 보려면 결과를 뱉어내는 문구를 넣어야 한다.
print(a**b)
같은..
% = 나머지
7 % 3
1
3 % 7
3
// = 소수점 아래를 버린다
7/4
1.75
7//4
1
-7//4
2
-1.75 라는 실수에서 소수점을 버리면-1이되어야 할 것 같지만-7// 4의 결과는-2가되었다. 이렇게 되는 이유는 // 연산자는 나눗셈의 결과에서 무조건 소수점을 버리는것이 아니라 나눗셈의 결과값보다 작거나 같은 정수 중 가장 큰 정수를 리턴하기 때문이다.