حساب الكسور (الأعداد المنطقية) مع الكسور

اعمال

باستخدام وحدة الكسور في مكتبة Python القياسية ، يمكنك إجراء العمليات الحسابية باستخدام الكسور (أرقام منطقية).

ما يلي موضح هنا.

  • منشئ الكسر
  • احصل على قيم البسط والمقام كأعداد صحيحة
  • حساب ومقارنة الكسور (أعداد منطقية)
  • تحويل الكسور إلى أعداد عشرية (عائم)
  • تحويل الكسر إلى سلسلة (str)
  • احصل على عدد تقريبي منطقي

منشئ الكسر

هناك عدة طرق لإنشاء مثيل الكسر. في جميع الحالات ، يتم تقسيم الكسر تلقائيًا إلى كسور.

حدد البسط والمقام كأعداد صحيحة

حدد البسط والمقام كأعداد صحيحة ، على التوالي. إذا تم حذف المقام ، فمن المفترض أن يكون 1.

from fractions import Fraction

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

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

print(Fraction(3))
# 3

كسر عشري(float)

إذا تم تمرير قيمة كسرية ، يتم تحويلها إلى كسر.

print(Fraction(0.25))
# 1/4

print(Fraction(0.33))
# 5944751508129055/18014398509481984

إذا كنت ترغب في التقريب عن طريق تحديد الحد الأقصى للمقام ، فاستخدم طريقة limit_denominator () الموضحة أدناه.

سلسلة أحرف(str)

إذا تم تمرير قيمة سلسلة ، يتم تحويلها إلى كسر.

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

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

احصل على قيم البسط والمقام كأعداد صحيحة

تسمح لك سمات النوع Fraction بالحصول على قيم عدد صحيح للبسط والمقام ، على التوالي. لا يمكن تغييرها.

  • 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

حساب ومقارنة الكسور (أعداد منطقية)

يمكن استخدام العوامل الحسابية لحساب الجمع والطرح وما إلى ذلك.

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

يمكن أيضًا استخدام عوامل المقارنة.

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

تحويل الكسور إلى أعداد عشرية (عائم)

يمكن التحويل من الكسور إلى الكسور العشرية باستخدام float ().

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

عند حسابه برقم عشري ، يتم تحويله تلقائيًا إلى نوع عائم.

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

تحويل الكسر إلى سلسلة (str)

للتحويل إلى سلسلة ، استخدم str ().

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

احصل على عدد تقريبي منطقي

يمكن الحصول على عدد تقريبي منطقي باستخدام الحد الأقصى للدينومينات () من النوع الكسر.

لعرض العدد المنطقي (الكسر) الذي يكون مقامه أقل من أو يساوي الحد الأقصى للمقام. في حالة الحذف ، max_denominator = 1000000.

الأرقام غير النسبية التقريبية مثل pi ورقم نابير 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

تحويل الكسور العشرية الدائرية إلى كسور

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