본문 바로가기
프로그래밍/Python

파이썬(Python) fractions 모듈을 이용한 분수 표현, 분수 연산하기(feat. Fraction)

by 부자 꽁냥이 2022. 10. 12.

파이썬(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')) ## 문자로도 가능

 

중간에 이상한 분수가 튀어나온다. 저 이상한 것을 실제로 계산해보면 1e-5가 나온다.

 

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')) ## 나눗셈

 


댓글


맨 위로