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