Hesabkirina perçeyan (hejmarên rasyonel) bi perçeyan

Dikan

Bi karanîna modula perçeyan a pirtûkxaneya standard Python, hûn dikarin bi perçeyan (hejmarên rasyonel) hesaban bikin.

Ya jêrîn li vir tê ravekirin.

  • Avakarê Fraction
  • Nirxên jimareker û navdêr wekî jimarên bêkêmasî bistînin
  • Hesabkirin û berawirdkirina perçeyan (hejmarên rasyonel)
  • Veguherandina perçeyan bo dehiyan (float)
  • Veguherîna parçeyek ji rêzê (str).
  • Nêzîkbûna jimareya rasyonel bistînin

Avakarê Fraction

Gelek awayên afirandina mînakek Fraction hene. Di hemî rewşan de, perçe bixweber di nav perçeyan de tê dabeş kirin.

Jimarker û navdêr wekî jimarên bêkêmasî diyar bikin

Di rêzê de, jimarker û danûstendinê wekî jimarên bêkêmasî diyar bikin. Ger navdêr ji holê were rakirin, tê texmîn kirin ku ew 1 be.

from fractions import Fraction

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

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

print(Fraction(3))
# 3

perçeya dehan(float)

Heke nirxek perçeyek derbas bibe, ew vediguhere perçeyek.

print(Fraction(0.25))
# 1/4

print(Fraction(0.33))
# 5944751508129055/18014398509481984

Heke hûn dixwazin bi diyarkirina navdêrek herî zêde nêzîkê hev bikin, rêbaza limit_denominator() ku li jêr hatî destnîşan kirin bikar bînin.

rêzika karakterê(str)

Ger nirxek rêzek derbas bibe, ew vediguhere perçeyek.

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

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

Nirxên jimareker û navdêr wekî jimarên bêkêmasî bistînin

Taybetmendiyên cureyê Fraction dihêle hûn bi rêzê ve ji bo jimarker û danûstendinê nirxên yekjimar bistînin. Ew nikarin bêne guhertin.

  • 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

Hesabkirin û berawirdkirina perçeyan (hejmarên rasyonel)

Operatorên jimartinê dikarin ji bo hesabkirina zêdekirin, jêbirin û hwd werin bikar anîn.

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

Operatorên berhevdanê jî dikarin bêne bikar anîn.

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

Veguherandina perçeyan bo dehiyan (float)

Dikare bi float(-ê) ji perçeyan veguherîne dehiyan.

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

Dema ku bi jimareyek dehek tê hesibandin, ew bixweber vediguhere celebek float.

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

Veguherîna parçeyek ji rêzê (str).

Ji bo veguhertina rêzek, str() bikar bînin.

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

Nêzîkbûna jimareya rasyonel bistînin

Nêzîkbûnek jimarek rasyonel bi rêbaza limit_denominator() ya tîpa Fraction dikare were bidestxistin.

Hejmara rasyonel (parçeyek) ku daçeka wê ji argumana max_denominator kêmtir an wekhev e vedigerîne. Heke ji holê were rakirin, max_denominator=1000000.

Nêzîkî jimareyên neraksiyonel ên wekî pi û hejmara Napier 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

Deheyên dorhêl veguherînin perçeyan

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