컴공생의 다이어리

[파이썬, Python] 자료형-(1)수 자료형 본문

Development/Python & Django

[파이썬, Python] 자료형-(1)수 자료형

컴공 K 2020. 11. 1. 22:14

파이썬의 자료형 중 수 자료형에 대해 알아보겠다.

 

정수형

정수형은 정수를 다루는 자료형이며 정수형에는 양의 정수, 음의 정수, 0이 있다.

a=1000  #양의 정수

print(a)

a=-7     #음의 정수

print(a)

a=0

print(a)

 

실수형

실수형은 소수점 아래의 데이터를 포함하는 수 자료형이다. 파이썬에서는 변수에 소수점을 붙인 수를 대입하면 실수형 변수로 처리한다. 소수부가 0이거나, 정수부가 0인 소수는 0을 생략하고 작성할 수 있다.

#양의 실수
a=150.54
print(a)

#음의 실수
a=-180.65
print(a)

#소수부가 0일때, 0을 생략 가능
a=5.
print(a)

#정수부가 0일때, 0을 생략
a=-.8
print(a)

 

실수형 데이터를 표현하는 방식으로 파이썬에는 e나 E를 이용한 지수 표현 방식을 이용할 수 있다.

더보기

유효숫자e지수=유효숫자*10^(지수)

e다음에 오는 수는 10의 지수부를 의미한다. 예를 들어 1e9라고 입력하게 되면, 10의 9제곱(1,000,000,000)이 된다.

최단 경로 문제에서 도달할 수 없는 노드에 대하여 최단 거리를 무한(INF)으로 설정하는데, 최단 경로로 가능한 최댓값이 10억 미만이면, 무한(INF)을 10억으로 표현하기도 한다.

이때, 일일이 숫자를 변수에 대입할 때, 실수가 발생할 수 있음으로 지수표현 방식으로 1e9를 입력하는 것이 안전하다.

#10억의 지수표현 방식
a=1e9
print(a)

#752.5
a=75.25e1
print(a)

#3.168
a=31.68e-1
print(a)

 

10진수 체계에서는 0.3과 0.6을 더한 값이 0.9로 정확히 떨어지지만, 2진수에서는 0.9를 표현하는 값이 정확히 0.9가 아닌 미세한 오차가 발생한다. 아래 예시를 실행해보면, 0.3과 0.6을 더한 값이 0.8999999999999999로 저장된다. 그렇기 때문에 조건문을 통해 False를 출력한다.

a=0.3+0.6
print(a)	#0.8999999999999999

if(a==0.9):
	print(True)
else:
	print(False)

따라서 소수점 값을 비교하는 작업이 필요한 문제라면 실수 값을 비교하지 못해서 원하는 결과를 얻지 못할 수 있다. 이럴 때는 round() 함수를 이용할 수 있다.

 

round()함수

round(실수형 데이터, 반올림하고자 하는 위치-1)

round(123.4567,3)은 123.457이다. 혹시 두번째 인자 없이 인자를 하나만 넣는 경우는 소수점 첫째 자리에서 반올림한다.

 

a=0.3+0.6
print(round(a,4))

if round(a,4)==0.9:
	print(True)
else:
	print(False)

위의 코드를 실행하면 0.9와 True가 출력된다.

 

수 자료형의 연산

프로그래밍에서는 사칙연산(+, -, *, /)을 이용해 계산한다. 이중 나누기 연산자(/)를 주의해야 한다.

나머지 연산자는 %, 몫 연산자는 //이다.

a=7
b=3

#나누기
print(a/b)		#2.3333333333333335

#나머지
print(a%b)		#1

#몫
print(a//b)		#2

 

거듭제곱은 연산자 **를 사용한다.

a=5
b=3

print(a**b)		#5^3=125

 

 

www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791162243077

 

728x90
반응형
Comments