محاسبه کسر (اعداد گویا) با کسر

کسب و کار

با استفاده از ماژول کسری کتابخانه استاندارد پایتون، می توانید محاسبات را با کسری (اعداد گویا) انجام دهید.

در اینجا موارد زیر توضیح داده شده است.

  • سازنده کسری
  • مقادیر صورت و مخرج را به صورت اعداد صحیح دریافت کنید
  • محاسبه و مقایسه کسرها (اعداد گویا)
  • تبدیل کسرها به اعشار (شناور)
  • تبدیل کسر به رشته (str).
  • تقریب اعداد گویا را بدست آورید

سازنده کسری

راه های مختلفی برای ایجاد یک نمونه Fraction وجود دارد. در همه موارد، کسر به طور خودکار به کسری تقسیم می شود.

صورت و مخرج را به صورت اعداد صحیح مشخص کنید

صورت و مخرج را به ترتیب به صورت اعداد صحیح مشخص کنید. اگر مخرج حذف شود، 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'>

تقریب اعداد گویا را بدست آورید

یک تقریب اعداد گویا را می توان با روش limit_denominator() از نوع Fraction به دست آورد.

عدد گویا (کسری) که مخرج آن کمتر یا مساوی آرگومان max_denominator باشد را برمی‌گرداند. در صورت حذف، max_denominator=1000000.

اعداد غیر منطقی تقریبی مانند پی و عدد ناپیر 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
Copied title and URL