숫자형

숫자형(Number)이란 숫자 형태로 이루어진 자료형이다.

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

항목파이썬 사용 예
정수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 X 8^2 + 7 X 8^1 + 7 = 127

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

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

0xABC = 10 X 16^2 + 11 X 16^1 + 12 = 2748

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

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

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

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

* TOC {:toc}

© 2021. All rights reserved.