เมื่อใช้โมดูลเศษส่วนของไลบรารี Python มาตรฐาน คุณสามารถคำนวณด้วยเศษส่วน (จำนวนตรรกยะ)
ต่อไปนี้จะอธิบายไว้ที่นี่
- ตัวสร้างเศษส่วน
- รับค่าตัวเศษและตัวส่วนเป็นจำนวนเต็ม
- การคำนวณและการเปรียบเทียบเศษส่วน (จำนวนตรรกยะ)
- การแปลงเศษส่วนเป็นทศนิยม (ลอย)
- การแปลงเศษส่วนเป็นสตริง (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
รับค่าตัวเศษและตัวส่วนเป็นจำนวนเต็ม
แอตทริบิวต์ของประเภทเศษส่วนช่วยให้คุณได้รับค่าจำนวนเต็มสำหรับตัวเศษและตัวส่วนตามลำดับ ไม่สามารถเปลี่ยนแปลงได้
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() ของประเภทเศษส่วน
ส่งกลับจำนวนตรรกยะ (เศษส่วน) ที่มีตัวส่วนน้อยกว่าหรือเท่ากับอาร์กิวเมนต์ 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