Mengira pecahan (nombor rasional) dengan pecahan

Perniagaan

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