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