Kesirleri (rasyonel sayılar) kesirlerle hesaplama

Standart Python kütüphanesinin kesirler modülünü kullanarak kesirler (rasyonel sayılar) ile hesaplamalar yapabilirsiniz.

Aşağıdakiler burada açıklanmıştır.

  • Kesir Oluşturucu
  • tamsayı olarak pay ve payda değerlerini alın
  • Kesirleri hesaplama ve karşılaştırma (rasyonel sayılar)
  • Kesirleri ondalık sayılara dönüştürme (yüzer)
  • Kesirden dizeye (str) dönüştürme
  • Rasyonel sayı yaklaşımını alın

Kesir Oluşturucu

Kesir örneği oluşturmanın birkaç yolu vardır. Her durumda, kesir otomatik olarak kesirlere bölünür.

Tamsayı olarak pay ve payda belirtin

Pay ve paydayı sırasıyla tamsayı olarak belirtin. Payda atlanırsa, 1 olduğu varsayılır.

from fractions import Fraction

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

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

print(Fraction(3))
# 3

ondalık kesir(float)

Kesirli bir değer iletilirse, kesre dönüştürülür.

print(Fraction(0.25))
# 1/4

print(Fraction(0.33))
# 5944751508129055/18014398509481984

Bir maksimum payda belirterek yaklaşıklık yapmak istiyorsanız, aşağıda açıklanan limit_denominator() yöntemini kullanın.

karakter dizesi(str)

Bir dize değeri iletilirse, kesre dönüştürülür.

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

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

tamsayı olarak pay ve payda değerlerini alın

Kesir türünün öznitelikleri, sırasıyla pay ve payda için tamsayı değerleri elde etmenizi sağlar. Değiştirilemezler.

  • 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

Kesirleri hesaplama ve karşılaştırma (rasyonel sayılar)

Aritmetik operatörler toplama, çıkarma vb. hesaplamak için kullanılabilir.

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

Karşılaştırma operatörleri de kullanılabilir.

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

Kesirleri ondalık sayılara dönüştürme (yüzer)

Float() ile kesirlerden ondalık sayılara çevirebilir.

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

Ondalık bir sayı ile hesaplandığında, otomatik olarak bir kayan nokta tipine dönüştürülür.

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

Kesirden dizeye (str) dönüştürme

Bir dizgeye dönüştürmek için str() kullanın.

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

Rasyonel sayı yaklaşımını alın

Fraction türündeki limit_denominator() yöntemiyle bir rasyonel sayı yaklaşımı elde edilebilir.

Paydası max_payda bağımsız değişkeninden küçük veya ona eşit olan rasyonel sayıyı (kesir) döndürür. Atlanırsa, max_denominator=1000000.

Pi ve Napier sayısı e gibi yaklaşık irrasyonel sayılar

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

Dairesel ondalık sayıları kesirlere dönüştürme

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