수 자료형
- 정수형(Integer)
정수를 다루는 자료형이며 정수형에는 양의 정수, 음의 정수, 0이 있다. 코딩 테스트에서 출제되는 알고리즘 문제는 대부분 입력과 출력 데이터가 정수형이다.
a = 1000 # 양의 정수
print(a)
a = -7 # 음의 정수
print(a)
# 0
a = 0
print(a)
- 실수형(Real Number)
소수점 아래의 데이터를 포함하는 수 자료형으로 파이썬에서는 변수에 소수점을 붙인 후 대입하면 실수형 변수로 처리한다.
소수부가 0이거나, 정수부가 0인 소수는 0을 생략하고 작성 할 수 있다.
# 양의 실수
a = 157.93
print(a)
# 음의 실수
a = -18.5
print(a)
# 소수부가 0일 때 0 생략
a = 5.
print(a)
# 정수부가 0일 때 0 생략
a = -.8
print(a)
실수형의 지수 표현 방식
실수형 데이터를 표현하는 방식으로 파이썬에서는 e를 이용한 지수 표현 방식을 이용할 수 있다.
e 다음에 오는 수는 10의 지수부를 의미한다. 예를 들어 1e9라고 입력하게 되면 10의 9승이 된다.
지수 표현 방식은 코딩 테스트에서 많이 사용되는데 큰 수를 다룰 때 0의 개수가 많아지면 자릴수가 헷갈리는 경우가 많기 때문에 10억을 1,000,000,000라고 표현하는 것보다 1e9로 표현하는 것이 실수를 줄일 수 있다.
컴퓨터의 실수 처리 방식
컴퓨터 시스템은 실수를 처리할 때 부동 소수점 방식을 이용한다. 이는 실수형을 저장하기 위해 4바이트나 8바이트라는 고정된 크기의 메모리를 할당하기 때문에 대체로 실수 정보를 표현하는 정확도에 한계를 가진다. 예를 들어 10진수 체계에서는 0.3 + 0.6을 더한 값이 0.9로 정확히 떨어지지만, 2진수에서는 0.9를 정확히 표현할 수 있는 방법이 없다. 즉 최대한 0.9에 가깝게 표현하지만 표현한 값이 정확히 0.9가 아닌 미세한 오차가 발생한다. 다음 코드에서 그 예시를 확인해볼 수 있다.
a = 0.3 + 0.6
print(a)
if(a == 0.9):
print(True)
else:
print(False)
따라서 소수점 값을 비교하는 작업이 필요한 문제라면 실수 값을 비교하지 못해서 원하는 결과를 얻지 못할 수 있다.
이럴 때는 round() 함수를 이용할 수 있다. round() 함수의 첫 번째 인자는 실수형 데이터이고, 두 번째 인자는 반올림하고자 하는 위치 - 1 이다. 예를 들어 123.456을 소수점 셋째 자리에서 반올림하려면 round(123.456, 2)라고 작성하면 123.46을 얻을 수 있다.
따라서 위에서 해결하지 못한 문제를 round() 함수를 통해 해결할 수 있다.
a = 0.3 + 0.6
print(round(a,4))
if(round(a,4) == 0.9):
print(True)
else:
print(False)
수 자료형의 연산
파이썬에서는 나누기 연산자(/)를 주의해서 사용해야한다. 다른 언어와 다르게 파이썬에서 나누기 연산자(/)는 나눠진 결과를 기본적으로 실수형으로 처리한다. 나머지를 나타낼 때는 나머지 연산자(%)을 사용하고 몫을 나타낼 때는 몫 연산자(//)를 사용한다.
a = 7
b = 3
# 나누기
print(a/b)
# 나머지
print(a%b)
# 몫
print(a//b)
또한 거듭제곱 연산자(**) 등 다양한 연산자들이 파이썬에는 존재한다.
참고자료: 이것이 취업을 위한 코딩 테스트다 with 파이썬 - 나동빈 지음(한빛미디어)
'Python > 파이썬 문법' 카테고리의 다른 글
[파이썬 문법] 함수 (0) | 2021.12.29 |
---|---|
[파이썬 문법] 파이썬의 조건문 (0) | 2021.12.28 |
[파이썬 문법] 입출력 (0) | 2021.12.28 |
[파이썬 문법] 그 외 다양한 자료형(문자열, 튜플, 사전, 집합) (0) | 2021.12.26 |
[파이썬 문법] 리스트 자료형 (0) | 2021.12.25 |