Рубрики
Без рубрики

Обучение Python- промежуточный курс: день 15, полное руководство по модулю фракций

Сегодня ваш полное руководство по фракциям в Python Модуль фракций обеспечивает … Теги с учебным током, Python, программированием, CodeNewie.

Обучение Python (72 частью серии)

Сегодня ваш полное руководство по фракциям в Python

Модуль фракций обеспечивает поддержку арифметику рационального количества.

Модуль фракций еще один встроенный модуль в Python. Этот модуль очень полезен, когда мы имеем дело с плавающими числами. Этот модуль преобразует плавающие числа для более понятных фракций.

Выражая цифры как дроби.

Каждое количество можно представить как фракцию. (Ну любой номер с конечными десятичными местами не менее) Иногда преобразуя число в фракции облегчает понимание и легче понять. Это также полезно, когда вам требуется использовать рациональную арифметику над арифметикой с плавающей точкой для различных математических или научных работ.

Мы можем видеть, как использовать этот модуль из примера, показанного ниже.

>>> import fractions as fr
# import the fractions module
>>> fr.Fraction(1.5)
Fraction(3, 2)
>>> print(fr.Fraction(1.5))
3/2
>>> fr.Fraction(1,0)
Traceback (most recent call last):
  File "", line 1, in 
  File "C:\Users\aatma\AppData\Local\Programs\Python\Python39\lib\fractions.py", line 156, in __new__
    raise ZeroDivisionError('Fraction(%s, 0)' % numerator)
ZeroDivisionError: Fraction(1, 0)
>>>

фрагмент Фракция () Преобразует плавающий номер в объект фракции. Функция печати автоматически преобразует объект фракции в читаемый формат. Когда знаменатель нулевой, а ZerodivisionError возвращается

Вот еще один пример, который я скопировал из официальной документации и аннотировал его с комментариями, чтобы сделать его понятно.
>>> from fractions import Fraction
# Import the `Fraction` part of the fraction module.
# from fractions import * will also work
>>> Fraction(16, -10)
# make a fraction with numerator 16, denominator 10 and 
# reduce it to the lowest form
Fraction(-8, 5)
>>> Fraction(123)
# single numbers are represented as over denominator 1
Fraction(123, 1)
>>> Fraction()
# empty parenthesis indicates zero
Fraction(0, 1)
>>> Fraction('3/7')
# convert from a more readable string to a fraction format
Fraction(3, 7)
>>> Fraction(' -3/7 ')
# whitespaces do not matter
Fraction(-3, 7)
>>> Fraction('1.414213 \t\n')

'''
Convert the floating value into a fraction with denominator as a power of 10


If the \t\n wouldn't have been there, the result would have been as follows
>>> fr.Fraction(1.414213)
Fraction(6369049139822511, 4503599627370496)
'''
Fraction(1414213, 1000000)
>>> Fraction('-.125')
# -.125 is interpreted as -0.125
Fraction(-1, 8)
>>> Fraction('7e-6')
# Fraction constructor can take parameters in the exponential form also
Fraction(7, 1000000)
>>> Fraction(2.25)
# convert 2.25 into fractions
Fraction(9, 4)
>>> Fraction(1.1)
'''
 Error!!!
The fractions module interprets 1.1 as something else. The only way to get around this is to use the decimal module
Fraction(2476979795053773, 2251799813685248)
>>> from decimal import Decimal
#import the decimal module
>>> Fraction(Decimal('1.1'))
# convert decimal into fraction.
Fraction(11, 10)

Работа на фракциях так же, как работает на реальных числах

>>> from fractions import *
>>> a=fraction(1.25)
#Don't do this mistake of case insensitivity.
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'fraction' is not defined
>>> a=Fraction(1.25)
>>> print(a)
5/4
>>> b=Fraction(1.5)
>>> print(b)
3/2
>>> print(a+b)
11/4
>>> a.numerator
#return the numerator of the fraction
5
>>> a.denominator
# return the denominator of the fraction.
4
>>> a=-a
>>> a
Fraction(-5, 4)
>>> a*b
Fraction(-15, 8)
>>> a/b
Fraction(-5, 6)
>>> a-b
Fraction(-11, 4)

>>> a**b
(-2.56724389811345e-16-1.3975424859373686j)

Модуль фракций содержит несколько полезных методов, как показано ниже.

  • as_integer_ratio () Это возвращает двух целых чисел двух целых чисел, соотношение которого равно фракции таким образом, что знаменатель положительный.
>>> import fractions as fr
>>> a=fr.Fraction(-1.75)
>>> print(a)
-7/4
>>> fr.as_integer_ratio(a)
# don't do this mistake.
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: module 'fractions' has no attribute 'as_integer_ratio'
>>> a.as_integer_ratio()
(-7, 4)
  • limit_denominator ()
>>> import fractions as fr
>>> b=fr.Fraction(3.141596372)
>>> print(b)
7074246125143851/2251799813685248
>>> b.limit_denominator(100)
Fraction(311, 99)
>>> b.limit_denominator(10)
Fraction(22, 7)
>>> b.limit_denominator(10000000)
Fraction(10390475, 3307387)
  • Функционирует раунд фракций. Существуют различные функции для округления фракций, как показано ниже.
>>> import fractions as fr
>>> b=fr.Fraction(3.141596372)
>>> b.__round__()
3
>>> b.__round__(3)
#round upto 3 digits.
Fraction(1571, 500)
>>> b.__floor__()
3
>>> b.__ceil__()
4

Это все сейчас. Возможно, вы захотите проверить Официальная документация модуля фракций тоже!

Обучение Python (72 частью серии)

Оригинал: “https://dev.to/aatmaj/learning-python-intermediate-course-day-15-complete-guide-to-the-fractions-module-4ki8”