02-1 숫자형

숫자형(Number)이란 숫자 형태로 이루어진 자료형으로, 우리가 이미 잘 알고 있는 것이다. 우리가 흔히 사용하는 숫자들을 생각해 보자. 123과 같은 정수, 12.34와 같은 실수, 8진수나 16진수도 있다.

다음 표는 파이썬에서 숫자를 어떻게 사용하는지 간략하게 보여 준다.

항목 파이썬 사용 예
정수 123, -345, 0
실수 123.45, -1234.5, 3.4e10
8진수 0o34, 0o25
16진수 0x2A, 0xFF

이제 이런 숫자를 파이썬에서는 어떻게 만들고 사용하는지 자세히 알아보자.

숫자형은 어떻게 만들고 사용할까?

정수형

정수형(integer)이란 말 그대로 정수를 뜻하는 자료형을 말한다. 다음은 양의 정수와 음의 정수, 숫자 0을 변수 a에 대입하는 예이다.

>>> a = 123
>>> a = -178
>>> a = 0

실수형

파이썬에서 실수형(floating-point)은 소수점이 포함된 숫자를 말한다. 다음은 실수를 변수 a에 대입하는 예이다. 일반적으로 볼 수 있는 실수형의 소수점 표현 방식이다.

>>> a = 1.2
>>> a = -3.45

다음은 '컴퓨터식 지수 표현 방식'으로, 파이썬에서는 4.24e10 또는 4.24E10처럼 표현한다(e와 E 둘 중 어느 것을 사용해도 된다).

>>> a = 4.24E10
>>> a = 4.24e-10

여기서 4.24E10은 $4.24 * 10^{10}$, 4.24e-10은 $4.24 * 10^{-10}$을 의미한다.

8진수와 16진수

8진수(octal)를 만들기 위해서는 숫자가 0o 또는 0O(숫자 0 + 알파벳 소문자 o 또는 대문자 O)으로 시작하면 된다.

>>> a = 0o177
>>> print(a)
127

0o177 = $1×8^2+7×8^1+7=127$

16진수(hexadecimal)를 만들기 위해서는 0x로 시작하면 된다.

>>> a = 0x8ff
>>> b = 0xABC
>>> print(b)
2748

0xABC = $10×16^2+11×16^1+12=2748$ (A:10, B:11, C:12)

8진수나 16진수는 파이썬에서 잘 사용하지 않는 형태의 숫자 자료형이므로 간단히 눈으로만 익히고 넘어가자.

숫자형을 활용하기 위한 연산자

사칙 연산

프로그래밍을 한 번도 해 본 적이 없는 독자라도 사칙 연산(+, -, *, /)은 알고 있을 것이다. 파이썬 역시 계산기와 마찬가지로 다음처럼 연산자를 사용해 사칙 연산을 수행한다.

>>> a = 3
>>> b = 4
>>> a + b
7
>>> a - b
-1
>>> a * b
12
>>> a / b
0.75

x의 y제곱을 나타내는 ** 연산자

다음으로 알아야 할 연산자로 **라는 연산자가 있다. 이 연산자는 x ** y처럼 사용했을 때 x의 y제곱($x^y$) 값을 반환한다. 다음 예를 통해 알아보자.

>>> a = 3
>>> b = 4
>>> a ** b
81

나눗셈 후 나머지를 반환하는 % 연산자

프로그래밍을 처음 접하는 독자라면 % 연산자는 본 적이 없을 것이다. %는 나눗셈의 나머지 값을 반환하는 연산자이다. 7을 3으로 나누면 나머지는 1, 3을 7로 나누면 나머지는 3이 될 것이다. 다음 예로 확인해 보자.

>>> 7 % 3
1
>>> 3 % 7
3

나눗셈 후 몫을 반환하는 // 연산자

/ 연산자를 사용하여 7 나누기 4를 하면 그 결과는 예상대로 1.75가 된다.

>>> 7 / 4
1.75

이번에는 나눗셈 후 몫을 반환하는 // 연산자를 사용한 경우를 살펴보자.

>>> 7 // 4
1

1.75에서 몫에 해당하는 정숫값 1만 반환하는 것을 확인할 수 있다.

복합 연산자

복합 연산자는 앞서 살펴본 +, - 와 같은 산술 연산자와 대입 연산자(=)를 합쳐 놓은 것이다. 복합 연산자가 무엇인지 예를 통해 자세히 알아보자.

먼저 다음과 같이 a에 1이라는 값을 대입해 보자.

>>> a = 1

이제 a의 값을 1만큼 증가시키려면 다음과 같이 할 수 있다.

>>> a = a + 1  # a + 1로 계산된 값을 다시 a에 대입한다.
>>> print(a)
2

a = a + 1 식에 의해 a의 값이 1만큼 증가된다. a = a + 1과 같은 표현식은 값을 증가시키기 위해 자주 사용한다. 하지만 이 표현식은 다음과 같이 더 간략하게 표현할 수 있다.

>>> a += 1

a += 1이라는 표현식은 a = a + 1을 줄여서 표현한 것으로 완전히 동일한 기능을 한다. 여기에서 사용한 += 와 같은 연산자를 복합 연산자라 부른다.

만약 a의 값을 1만큼 감소 시키려면 다음과 같은 -= 복합 연산자를 사용할 수 있다.

>>> a = 1
>>> a -= 1  # a = a - 1 과 같음
>>> print(a)
0

복합 연산자에는 다음과 같은 것들이 있다.

+=, -=, *=, /=, //=, %=, **=

이렇게 복합 연산자를 사용하면 코드를 더욱 간결하고 가독성 있게 작성할 수 있다.