Kuhesabu sehemu (nambari za busara) na sehemu

Biashara

Kwa kutumia moduli ya sehemu za maktaba ya kawaida ya Python, unaweza kufanya hesabu na sehemu (nambari za busara).

Ifuatayo inafafanuliwa hapa.

  • Muundaji wa Sehemu
  • Pata thamani za nambari na denominator kama nambari kamili
  • Kuhesabu na kulinganisha sehemu (nambari za busara)
  • Kubadilisha sehemu kuwa desimali (kuelea)
  • Ubadilishaji wa sehemu hadi kamba (str).
  • Pata makadirio ya nambari ya busara

Muundaji wa Sehemu

Kuna njia kadhaa za kuunda mfano wa Sehemu. Katika visa vyote, sehemu hiyo imegawanywa kiotomatiki katika sehemu.

Bainisha nambari na denomineta kama nambari kamili

Bainisha nambari na denominata kama nambari kamili, mtawalia. Ikiwa kiashiria kimeachwa, inachukuliwa kuwa 1.

from fractions import Fraction

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

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

print(Fraction(3))
# 3

sehemu ya desimali(float)

Ikiwa thamani ya sehemu inapitishwa, inabadilishwa kuwa sehemu.

print(Fraction(0.25))
# 1/4

print(Fraction(0.33))
# 5944751508129055/18014398509481984

Iwapo ungependa kukadiria kwa kubainisha kiashiria cha juu zaidi, tumia njia ya limit_denominator() iliyofafanuliwa hapa chini.

kamba ya tabia(str)

Ikiwa thamani ya kamba imepitishwa, inabadilishwa kuwa sehemu.

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

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

Pata thamani za nambari na denominator kama nambari kamili

Sifa za aina ya Sehemu hukuruhusu kupata nambari kamili za nambari na denominator, mtawalia. Haziwezi kubadilishwa.

  • 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

Kuhesabu na kulinganisha sehemu (nambari za busara)

Waendeshaji hesabu wanaweza kutumika kuhesabu kuongeza, kutoa, nk.

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

Waendeshaji kulinganisha pia wanaweza kutumika.

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

Kubadilisha sehemu kuwa desimali (kuelea)

Inaweza kubadilisha kutoka kwa sehemu hadi decimals na kuelea ().

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

Inapohesabiwa na nambari ya desimali, inabadilishwa kiotomatiki kuwa aina ya kuelea.

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

Ubadilishaji wa sehemu hadi kamba (str).

Ili kubadilisha kuwa kamba, tumia str().

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

Pata makadirio ya nambari ya busara

Ukadiriaji wa nambari ya kimantiki unaweza kupatikana kwa kutumia mbinu limit_denominator() ya aina ya Sehemu.

Hurejesha nambari ya kimantiki (sehemu) ambayo kiashiria chake ni kidogo kuliko au sawa na hoja max_denominator. Ikiwa imeachwa, max_denominator=1000000.

Takriban nambari zisizo na mantiki kama vile pi na Napier nambari 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

Badilisha desimali za mduara kuwa sehemu

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