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