[파이썬] 숫자 클래스 모듈

I. 유리수와 정밀한 숫자 계산 모듈

  • 파이썬에서는 정수, 실수, 복소수가 기본이며, 유리수는 추가 모듈로 제공
  • 정밀한 계산을 위해 십진수 모듈 제공

가. 유리수 처리

  • 분모와 분자로 이루어진 유리수 처리 모듈, fractions
  • Fraction 클래스 2개의 인자에 정수 입력하여 객체 생성 시 두 수를 약분하여 생성
  • [예제] 유리수 처리하기
from fractions import Fraction

f = Fraction(20, -8)   # 유리수 객체는 문자, 분모를 인수로 전달하여 생성

print(f)    # 입력값을 약분
print(f.numerator)
print(f.denominator)

[결과]
-5/2
-5
2

나. 십진수 처리

  • 정밀한 수학 계산 시 큰 수를 처리할 자료형 decimal 모듈 사용
  • [예제] 십진수 처리하기
import decimal as dec
import math

con = dec.getcontext()
print(con.prec)    # 정밀도 속성 확인 (기본 소수점 28자리)

print(dec.Decimal(math.pi) / dec.Decimal(1))

con.prec = 6
print(con.prec)    # 정밀도 속성 확인 (소수점 자리 수)

print(dec.Decimal(math.pi) / dec.Decimal(1))

ru = dec.Decimal('5.274').quantize(dec.Decimal('0.01'), rounding=dec.ROUND_UP)
print(ru)   # 특정 자리 수 절상

rd = dec.Decimal('5.274').quantize(dec.Decimal('0.01'), rounding=dec.ROUND_DOWN)
print(rd)   # 특정 자리 수 절사

[결과]
28
3.141592653589793115997963469
6
3.14159
5.28
5.27

 

II. 연산자 제공 모듈

  • 연산자와 같은 함수를 생성하여 처리하기 위해, operator 모듈 사용
  • [예제] 연산자 모듈 처리
import operator as op

print(op.add(15,4))         # 덧셈
print(op.sub(15,4))         # 뺄셈
print(op.mul(15,4))         # 곱셈
print(op.floordiv(15,4))    # 몫과 나머지
print(op.truediv(15,4))     # 몫 만

print(op.contains([1,2,3,4,5], 4))  # contains 함수 내 포함 관계
print(5 in [1,2,3,4,5])

[결과]
19
11
60
3
3.75
True
True

 

[참고]

  • 잇플, “한 권으로 개발자가 원하던 파이썬 심화 A to Z”, 2019.11

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^