Murdude (ratsionaalarvude) arvutamine murdudega

Äri

Kasutades Pythoni standardraamatukogu murdude moodulit, saate teha arvutusi murdudega (ratsionaalarvudega).

Siin selgitatakse järgmist.

  • Fraktsiooni konstruktor
  • Saada lugeja ja nimetaja väärtused täisarvudena
  • Murdude arvutamine ja võrdlemine (ratsionaalarvud)
  • Murdude teisendamine kümnendmurdudeks (float)
  • Fraktsiooni teisendamine stringiks (str)
  • Hangi ratsionaalarvu lähendus

Fraktsiooni konstruktor

Fraktsiooni instantsi loomiseks on mitu võimalust. Kõigil juhtudel jagatakse fraktsioon automaatselt murdudeks.

Määrata lugeja ja nimetaja täisarvudena.

Määrake lugeja ja nimetaja vastavalt täisarvudena. Kui nimetaja jäetakse ära, eeldatakse, et see on 1.

from fractions import Fraction

print(Fraction(1, 3))
# 1/3

print(Fraction(2, 6))
# 1/3

print(Fraction(3))
# 3

kümnendikfraktsioon (float)

Kui edastatakse murdarv, teisendatakse see murdarvuks.

print(Fraction(0.25))
# 1/4

print(Fraction(0.33))
# 5944751508129055/18014398509481984

Kui soovite lähendada, määrates maksimaalse nimetaja, kasutage allpool kirjeldatud meetodit limit_denominator().

märgijada (str)

Kui edastatakse stringi väärtus, teisendatakse see murdarvuks.

print(Fraction('2/5'))
# 2/5

print(Fraction('16/48'))
# 1/3

Saada lugeja ja nimetaja väärtused täisarvudena

Atribuudid tüübiga Fraktsioon võimaldavad saada lugeja ja nimetaja jaoks vastavalt täisarvulised väärtused. Neid ei saa muuta.

  • numerator
  • denominator
a = Fraction(1, 3)
print(a)
# 1/3

print(a.numerator)
print(type(a.numerator))
# 1
# <class 'int'>

print(a.denominator)
print(type(a.denominator))
# 3
# <class 'int'>

# a.numerator = 7
# AttributeError: can't set attribute

Murdude arvutamine ja võrdlemine (ratsionaalarvud)

Aritmeetilisi operaatoreid saab kasutada liitmise, lahutamise jne arvutamiseks.

result = Fraction(1, 6) ** 2 + Fraction(1, 3) / Fraction(1, 2)
print(result)
print(type(result))
# 25/36
# <class 'fractions.Fraction'>

Samuti võib kasutada võrdlusoperaatoreid.

print(Fraction(7, 13) > Fraction(8, 15))
# True

Murdude teisendamine kümnendmurdudeks (float)

Saab teisendada murdarvud kümnendarvudeks float() abil.

a_f = float(a)
print(a_f)
print(type(a_f))
# 0.3333333333333333
# <class 'float'>

Kui arvutatakse kümnendarvuga, teisendatakse see automaatselt float-tüüpi arvuks.

b = a + 0.1
print(b)
print(type(b))
# 0.43333333333333335
# <class 'float'>

Fraktsiooni teisendamine stringiks (str)

Stringiks teisendamiseks kasutage str().

a_s = str(a)
print(a_s)
print(type(a_s))
# 1/3
# <class 'str'>

Hangi ratsionaalarvu lähendus

Ratsionaalarvu lähendamist saab meetodiga limit_denominator() tüübiga Fraction.

Tagastab ratsionaalarvu (murdosa), mille nimetaja on väiksem või võrdne argumendiga max_denominator. Kui see jäetakse välja, siis max_denominator=1000000.

Ligikaudsed irratsionaalsed arvud nagu pi ja Napier'i arv e

pi = Fraction(3.14159265359)
print(pi)
# 3537118876014453/1125899906842624

print(pi.limit_denominator(10))
print(pi.limit_denominator(100))
print(pi.limit_denominator(1000))
# 22/7
# 311/99
# 355/113

e = Fraction(2.71828182846)
print(e)
# 6121026514870223/2251799813685248

print(e.limit_denominator(10))
print(e.limit_denominator(100))
print(e.limit_denominator(1000))
# 19/7
# 193/71
# 1457/536

Ümmarguste kümnendarvude teisendamine murdudeks

a = Fraction(0.565656565656)
print(a)
# 636872674577009/1125899906842624

print(a.limit_denominator())
# 56/99

a = Fraction(0.3333)
print(a)
# 6004199023210345/18014398509481984

print(a.limit_denominator())
print(a.limit_denominator(100))
# 3333/10000
# 1/3
Copied title and URL