Menggunakan modul pecahan perpustakaan Python standard, anda boleh melakukan pengiraan dengan pecahan (nombor rasional).
Berikut dijelaskan di sini.
- Pembina Pecahan
- Dapatkan nilai pengangka dan penyebut sebagai integer
- Mengira dan membandingkan pecahan (nombor rasional)
- Menukar pecahan kepada perpuluhan (apung)
- Penukaran pecahan kepada rentetan (str).
- Dapatkan penghampiran nombor rasional
Pembina Pecahan
Terdapat beberapa cara untuk mencipta contoh Pecahan. Dalam semua kes, pecahan dibahagikan secara automatik kepada pecahan.
Tentukan pengangka dan penyebut sebagai integer
Tentukan pengangka dan penyebut sebagai integer, masing-masing. Jika penyebut diabaikan, ia diandaikan sebagai 1.
from fractions import Fraction print(Fraction(1, 3)) # 1/3 print(Fraction(2, 6)) # 1/3 print(Fraction(3)) # 3
pecahan perpuluhan(float)
Jika nilai pecahan diluluskan, ia ditukar kepada pecahan.
print(Fraction(0.25)) # 1/4 print(Fraction(0.33)) # 5944751508129055/18014398509481984
Jika anda ingin membuat anggaran dengan menyatakan penyebut maksimum, gunakan kaedah limit_denominator() yang diterangkan di bawah.
rentetan aksara(str)
Jika nilai rentetan diluluskan, ia ditukar kepada pecahan.
print(Fraction('2/5')) # 2/5 print(Fraction('16/48')) # 1/3
Dapatkan nilai pengangka dan penyebut sebagai integer
Atribut jenis Pecahan membolehkan anda memperoleh nilai integer untuk pengangka dan penyebut, masing-masing. Mereka tidak boleh diubah.
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
Mengira dan membandingkan pecahan (nombor rasional)
Operator aritmetik boleh digunakan untuk mengira penambahan, penolakan, dsb.
result = Fraction(1, 6) ** 2 + Fraction(1, 3) / Fraction(1, 2) print(result) print(type(result)) # 25/36 # <class 'fractions.Fraction'>
Operator perbandingan juga boleh digunakan.
print(Fraction(7, 13) > Fraction(8, 15)) # True
Menukar pecahan kepada perpuluhan (apung)
Boleh menukar daripada pecahan kepada perpuluhan dengan float().
a_f = float(a) print(a_f) print(type(a_f)) # 0.3333333333333333 # <class 'float'>
Apabila dikira dengan nombor perpuluhan, ia secara automatik ditukar kepada jenis apungan.
b = a + 0.1 print(b) print(type(b)) # 0.43333333333333335 # <class 'float'>
Penukaran pecahan kepada rentetan (str).
Untuk menukar kepada rentetan, gunakan str().
a_s = str(a) print(a_s) print(type(a_s)) # 1/3 # <class 'str'>
Dapatkan penghampiran nombor rasional
Penghampiran nombor rasional boleh diperoleh dengan kaedah limit_denominator() jenis Pecahan.
Mengembalikan nombor rasional (pecahan) yang penyebutnya kurang daripada atau sama dengan argumen max_denominator. Jika diabaikan, max_denominator=1000000.
Anggaran nombor tak rasional seperti pi dan nombor 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
Menukar perpuluhan bulat kepada pecahan
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