표준 라 이브 러 리 fractions 모듈 을 이용 하여 Python 이 점수 형식 을 지원 하 는 방법 을 상세 하 게 설명 합 니 다.
4485 단어 pythonfractions 모듈점수 유형
점 수 를 자주 처리 할 필 요 는 없 지만 필요 할 때 Python 의 Fraction 류 는 큰 도움 이 될 것 입 니 다.본 고 는 표준 라 이브 러 리 fractions 모듈 을 이용 하여 Python 이 점수 유형 을 지원 하 는 것 에 관 한 내용 을 상세 하 게 소개 하고 참고 학습 을 제공 할 것 입 니 다.다음은 더 이상 말 하지 않 겠 습 니 다.상세 한 소 개 를 살 펴 보 겠 습 니 다.
fractions 모듈
fractions 모듈 은 점수 형식의 지원 을 제공 합 니 다.
프 랙 션 클래스
이 종 류 는 fractions 모듈 의 핵심 으로
numbers.Rational
종 류 를 계승 하고 이 모든 방법 을 실현 했다.구조 함수 가 복잡 하지 않 습 니 다:
class fractions.Fraction(numerator=0, denominator=1)
class fractions.Fraction(int|float|str|Decimal|Fraction)
분자(numerator)와 분모(denominator)를 동시에 제공 하여 구조 함수 에 Fraction 류 를 예화 하 는 데 사용 할 수 있 으 나 둘 은 int 형식 이나numbers.Rational
유형 이 어야 합 니 다.그렇지 않 으 면 유형 오 류 를 던 질 수 있 습 니 다.분모 가 0 이면 초기 화 할 때 이상 제로 디 비 전 오류 가 발생 합 니 다.하나의 인자 만 제공 하면 상기 다섯 가지 유형 으로 초기 화 할 수 있다.문자열 을 사용 하여 초기 화 할 때 fractions 모듈 은 내 장 된 정규 표현 식 을 사용 하여 일치 합 니 다.부동 소수점 이나 Decimal 을 사용 하여 초기 화 할 때 fractions 모듈 은 내부 에서 호출 됩 니 다
as_integer_ratio()
.아래 의 코드 예 시 는 공식 문서 에서 나 와 각종 실례 화 된 Fraction 방식 을 보 여 줍 니 다.
>>> from fractions import Fraction
>>> Fraction(16, -10)
Fraction(-8, 5)
>>> Fraction(123)
Fraction(123, 1)
>>> Fraction()
Fraction(0, 1)
>>> Fraction('3/7')
Fraction(3, 7)
>>> Fraction(' -3/7 ')
Fraction(-3, 7)
>>> Fraction('1.414213 \t
')
Fraction(1414213, 1000000)
>>> Fraction('-.125')
Fraction(-1, 8)
>>> Fraction('7e-6')
Fraction(7, 1000000)
>>> Fraction(2.25)
Fraction(9, 4)
>>> Fraction(1.1)
Fraction(2476979795053773, 2251799813685248)
>>> from decimal import Decimal
>>> Fraction(Decimal('1.1'))
Fraction(11, 10)
제한 분모fractions.Fraction.limit_denominator(max_denominator=1000000)
때때로 부동 소수점 이나 Decimal 을 Fraction 인 스 턴 스 의 초기 화 데이터 로 사용 하면 반올림 오차 문제 가 발생 할 수 있 습 니 다.예 를 들 어 위 에서 호출Fraction(1.1)
할 때 되 돌아 오지 않 습 니 다Fraction(11, 10)
.이 때 Fraction 류 는 이러한 오 차 를 줄 이 는 인 스 턴 스 방법limit_denominator()
을 제공 합 니 다.이 방법 은 원래 분 모 를 제한 하여 유사 치 를 얻 기 위해 서 였 으 나 반올림 오차 가 발생 했 을 때 오히려 결 과 를 더욱 정확 하 게 만 들 었 다.예 를 들 어 다음 의 예 와 같다.
>>> from fractions import Fraction
>>> Fraction(1.1)
Fraction(2476979795053773, 2251799813685248)
>>> Fraction(1.1).limit_denominator()
Fraction(11, 10)
Fraction 을 산술 연산,관계 연산 및 기타 여러 가지 조작 에 사용 합 니 다.위 에서 언급 한 바 와 같이 Fraction 류 는
numbers.Rational
류 를 계승 하고 이 모든 방법 을 실현 했다.그래서 Fraction 류 는 사실상 많은 특수 함 수 를 다시 불 러 와 서 그 실례 를 여러 산술 연산 에 직접 사용 할 수 있 게 한다.산술 연산 뿐만 아니 라 Fraction 류 는 관계 연산,pickle 모듈,copy 모듈 과 해시 값 의 계산 도 지원 합 니 다.
>>> from fractions import Fraction
>>> x = Fraction(1, 2)
>>> y = Fraction(1, 3)
>>> x + y
Fraction(5, 6)
>>> x - y
Fraction(1, 6)
>>> x * y
Fraction(1, 6)
>>> x / y
Fraction(3, 2)
>>> x ** 2
Fraction(1, 4)
>>> -x
Fraction(-1, 2)
>>> abs(x)
Fraction(1, 2)
>>> round(x)
0
>>> import math
>>> math.floor(x)
0
>>> math.ceil(x)
1
>>> x == y
False
>>> x > y
True
기타 함수
fractions.Fraction.from_float(flt)
fractions.Fraction.from_decimal(dec)
Python 3.2 이전에 Fraction 류 는 부동 소수점 과 Decimal 을 구조 방법 으로 전달 하 는 것 을 지원 하지 않 습 니 다.위의 두 가지 방법 을 제공 하여 클래스 방법 을 호출 하 는 방식 으로 인 스 턴 스 를 만 들 었 고 현재 버 전(Python 3.6.1)이라는 두 가지 방법 은 여전히 존재 합 니 다.
fractions.gcd(a, b)
최대 공약수 계산 에 사용 합 니 다.이 함 수 는 Python 3.5 이후 폐기 되 었 으 며,공식 적 으로 사용 을 권장 합 니 다math.gcd()
.총결산
정리 할 게 없어 서...Python 이 너무 편리 하 다 고 할 수 밖 에 없어 요.........................................................................하하,뒤에 있 는 이 표준 라 이브 러 리 학습 시 리 즈 는 계속 내 려 갈 거 야!
자,이상 이 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
참고 자료:
https://docs.python.org/3.6/library/fractions.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.