본문 바로가기
Python/Python 공부 정리

[파이썬 독학] 2.2. 숫자

by Dailybook406 2022. 5. 28.

숫자형에 대해 알아봅시다.

 

[ 숫자의 종류 ]

파이썬에서 숫자는 크게 2가지, 소수점이 없는 숫자소수점이 있는 숫자로 구분한다.

소수점이 없는 숫자를 정수형(integer), 소수점이 있는 숫자를 실수형(floating point)이라고 한다.

 

실수형은 다른 말로 '부동 소수점'이라고도 하는데, 이는 '소수점이 움직이는 숫자'라는 뜻이다.

예를 들어 68.865라는 실수를 0.68865×10²처럼 소수점의 위치를 바꿔도 같은 숫자라는 의미에서 사용한다.

더보기

부동 소수점의 '부동'은 움직이지 않는다는 [不動]이 아니라, 떠다니며 움직인다는 의미의 [浮動]이다.

 

이때 같은 숫자라도 소수점이 있으냐 없느냐에 따라 숫자의 자료형이 달라질 수 있으니 주의하자.

print(type(0))
print(type(0.0))

실행결과

<class 'int'>
<class 'float'>

위의 실행결과에서 보듯이 소수점이 없는 0은 int(정수)이고, 소수점이 있는 0.0은 float(소수)로 나타난다.

 

일반적으로 프로그래밍 언어에서는 정수와 실수의 자료형을 구분해서 사용하기 때문에 꼭 기억하자.

 

Tip. 추가적으로 파이썬은 기본적으로 10진수의 숫자를 사용하며, 주로 사용하지는 않지만 2진수, 8진수, 16진수의 숫자형도 있다.

더보기

  2진법이란?

2진법(2진수)0과 1 두 개의 숫자만을 이용하여 수를 나타내는 방법을 말한다.

더 자세한 정보는 https://namu.wiki/w/2%EC%A7%84%EB%B2%95를 참고하자.

 

파이썬에서는 숫자 앞에 접두어 0b를 붙여서 2진수를 표시한다.

 

bin() 함수를 이용하여 숫자를 2진수 형태의 문자열로 변환할 수 있다.

bin(26)

실행결과

'0b11010'

 

변환한 2진수 문자열을 다시 숫자로 변환하려면  int() 함수에 추가 인자로 '진수의 값'을 넣는다.

int('0b11010', 2)

실행결과

26

 

Tip. int() 함수의 추가 인자는 디폴트 값이 10이기 때문에 생략할 경우 10진수의 문자열이 숫자로 변환되는 것이다.

 

더보기

  8진법이란?

컴퓨터 분야에서 숫자를 표현하기 위해 쓰는 진법 방식 중 하나이며, 0~7의 숫자를 이용하여 수를 나타낸다.

더 자세한 정보는 https://namu.wiki/w/8%EC%A7%84%EB%B2%95를 참고하자.

 

파이썬에서는 숫자 앞에 접두어 0o를 붙여서 2진수를 표시한다.

 

oct() 함수이용하여 숫자를 8진수 형태의 문자열로 변환할 수 있다.

oct(26)

실행결과

'0o32'

 

변환한 8진수 문자열을 다시 숫자로 변환하려면  int() 함수에 추가 인자로 '진수의 값'을 넣는다.

int('0o32', 8)

실행결과

26

 

더보기

  16진법이란?

컴퓨터 분야에서 숫자를 표현하기 위해 쓰는 진법 방식 중 하나이며, 자릿수 하나가 0~15까지 표현할 수 있다.

하지만 우리가 흔히 사용하는 숫자는 0~9까지 밖에 없기 때문에 10은 A, 11은 B, 12는 C, 13은 D, 14는 E, 15는 F로 표현한다.

더 자세한 정보는 https://namu.wiki/w/16%EC%A7%84%EB%B2%95를 참고하자.

 

파이썬에서는 숫자 앞에 접두어 0x를 붙여서 16진수를 표시한다.

 

hex() 함수를 이용하여 숫자를 16진수 형태의 문자열로 변환할 수 있다.

hex(26)

실행결과

'0x1a'

 

변환한 16진수 문자열을 다시 숫자로 변환하려면  int() 함수에 추가 인자로 '진수의 값'을 넣는다.

int('0x1a', 16)

실행결과

26

 


그럼 숫자를 만드는 법을 알아보자.

숫자를 만드는 방법은 정말 간단하다. 그냥 숫자를 입력하면 된다!

 

print() 함수를 활용하여 괄호 안에 숫자를 입력하면 그대로 출력해준다.

print(406)
print(68.865)

실행결과

406
68.865

 

 


[ 숫자 연산자 ]

문자열과 마찬가지로 숫자에도 연산자를 사용할 수 있다.


※ 사칙 연산자

가장 기본적인 연산자이며, 일상생활에서 널리 사용하고 있는 덧셈, 뺄셈, 곱셈, 나눗셈을 말한다.

우리가 알고 있는 사칙연산의 의미와 똑같이 쓰인다.

 

덧셈, 뺄셈, 곱셈, 나눗셈 연산자의 기호는 각각  + ,  - ,  * ,  /  이다.

print("2 + 7 =", 2+7)
print("2 - 7 =", 2-7)
print("2 * 7 =", 2*7)
print("2 / 7 =", 2/7)

실행결과

2 + 7 = 9
2 - 7 = -5
2 * 7 = 14
2 / 7 = 0.2857142857142857

 


※ 정수 나누기 연산자 · 나머지 연산자 · 제곱 연산자

파이썬에는 숫자의 연산을 쉽게 하기 위해 사칙연산 이외에도 다른 연산자들을 지원한다.

 

정수 나누기 연산자숫자를 나누고 소수점 이하의 자릿수를 떼어 버린 후, 정수 부분만 남기는 연산자이다.

즉, 정수를 나눈 몫을 출력해준다.

정수 나누기 연산자는  // 기호를 사용한다.

print("7 / 2 =", 7/2)
print("7 // 2 =", 7//2)

실행결과

7 / 2 = 3.5
7 // 2 = 3

 

몫을 구하는 정수 나누기 연산자가 있었다면, 나머지를 구하는 나머지 연산자도 있다.

나머지 연산자A를 B로 나누었을 때 남은 나머지를 구하는 연산자이며, % 기호를 사용한다.

print("7 % 2 =", 7%2)

실행결과

7 % 2 = 1

 

숫자를 제곱하는 제곱 연산자도 있으며, ** 기호를 사용한다.

print("2 ** 1 =", 2**1)
print("2 ** 2 =", 2**2)
print("2 ** 3 =", 2**3)

실행결과

2 ** 1 = 2
2 ** 2 = 4
2 ** 3 = 8

 


[ 연산자의 우선순위 ]

사칙연산을 처음 배울 때 아마 연산자에 우선순위가 있다는 걸 함께 배웠을 것이다.

마찬가지로 파이썬의 수식에서도 연산자의 우선순위가 적용된다.

 

숫자를 계산할 때는 곱셈과 나눗셈이 덧셈과 뺄셈보다 우선시된다.

이때 만일 같은 우선순위를 가지는 연산자(곱셈/나눗셈, 덧셈/뺄셈)는 왼쪽에서 오른쪽 순서로 계산한다.

print(3 + 4 - 2 * 3 + 4 / 2)
print(3 - 4 / 2 + 3 * 4 - 2)

실행결과

3.0
11.0

 

만일 우선순위에 상관없이 먼저 계산하고 싶은 부분이 있다면 괄호로 감싸준다.

print( (2 + 3) * 2 )

실행결과

10

 

Tip. 혹여나 연산자의 우선순위가 헷갈린다거나 확실히 표시를 하기 위해서 괄호를 감싸주어도 좋다.

댓글