파이썬(Python) 코딩 중에 분수를 다뤄야 할 일이 있었는데 fractions라는 좋은 모듈이 있었다. fractions 모듈은 분수를 다룰 수 있는 훌륭한 모듈이라고 생각한다. 따라서 이번 포스팅에서는 fractions 특히 Fraction 클래스 사용법에 대하여 소개하려고 한다.
fractions 모듈 알아보기
1) 분수는 나한테 맡겨라! : Fraction
fractions 모듈을 알아본다는 것은 결국 Fraction 클래스를 알아본다는 것과 동일하다고 보면 된다. Fraction은 기본적으로 첫 번째 인자에 분자, 두 번째 인자에는 분모를 넣어준다.
아래 코드는 2/4를 나타낸 것이다.
from fractions import Fraction
print(Fraction(2, 4)) ## 2/4 알아서 기약분수 1/2로 바꿔준다.
Fraction(2, 4)는 내부에서 자동으로 기약 분수 형태로 바꿔준다.
따라서 다음은 True를 반환한다.
print(Fraction(2, 4) == Fraction(1, 2))
Fraction은 음수도 다룰 수 있다.
print(Fraction(-2, 4)) ## 음수 표현 가능하다.
print(Fraction(-2, -4)) ## 음수 분의 음수는 양수
Fraction은 소수를 분수로 나타낼 수도 있고 문자로 이루어진 수를 분수로 바꿀 수도 있다.
print(Fraction('-4/9')) ## 분수를 나타내는 문자열로도 Fraction 생성 가능하다.
print(Fraction(0.25)) ## 소수를 분수로 나타낼 수 있다.
print(Fraction('-0.25')) ## 소수를 분수로 나타낼 수 있다.
print(Fraction(1e-5)) ## 과학적 표기를 분수로 나타낼 수 있다.
print(Fraction('1e-6')) ## 문자로도 가능
Fraction 객체로부터 분자와 분모를 꺼내올 수도 있다.
a = Fraction(11, 20)
print(a.numerator) ## 분자
print(a.denominator) ## 분모
2) 사칙 연산
Fraction은 분수의 사칙 연산을 지원한다.
## 사칙 연산도 가능하다.
print(Fraction('1/2') + Fraction('2/3')) ## 덧셈
print(Fraction('1/2') - Fraction('2/3')) ## 뺄셈
print(Fraction('1/2') * Fraction('2/3')) ## 곱셈
print(Fraction('1/2') / Fraction('2/3')) ## 나눗셈
'프로그래밍 > Python' 카테고리의 다른 글
파이썬(Python) unittest 모듈에 대해서 알아보자. (0) | 2022.10.23 |
---|---|
파이썬(Python) string 모듈에 대해서 알아보자. (0) | 2022.10.21 |
파이썬(Python) - 딕셔너리의 키가 없는 경우 기본값(디폴트값) 설정하기 (feat. setdefault, defaultdict) (0) | 2022.09.29 |
파이썬(Python) - 예외(Exception) 클래스(Class) 만들기 (0) | 2022.09.28 |
파이썬(Python) - 제너레이터(generator)에 대해서 알아보자. (2) | 2022.09.27 |
댓글