จำนวนใดๆ ที่สามารถแสดงเป็นผลหารหรือเศษส่วนในรูปของ p/q ได้เรียกว่าจำนวนตรรกยะ โมดูลเศษส่วนของไลบรารี Python มีฟังก์ชันสำหรับเลขตรรกยะ
โมดูลนี้กำหนดคลาสเศษส่วน วัตถุสามารถประกอบขึ้นได้หลายวิธีดังนี้ −
Fraction(num, denom)
ตัวสร้างเศษส่วนรุ่นแรกได้รับพารามิเตอร์สองตัวสำหรับตัวเศษและตัวส่วน ตัวเศษเริ่มต้นคือ 0 และตัวส่วนเริ่มต้นคือ 1 ค่าของตัวส่วน =0 จะส่ง ZeroDivisionError
>>> from fractions import Fraction >>> n1 = Fraction(2,5) >>> n1 Fraction(2, 5) >>> n2 = Fraction(6,15) >>> n2 Fraction(2, 5) >>> n3 = Fraction(10,1) >>> n3 Fraction(10, 1) >>> n3 = Fraction(10) >>> n3 Fraction(10, 1)
โปรดทราบว่าพารามิเตอร์ตัวเศษและตัวส่วนจะลดลงเป็นค่าต่ำสุดหลังจากหารด้วยปัจจัยร่วม
ตัวสร้างเศษส่วนสามารถรับพารามิเตอร์สตริงได้หากมีการแสดงตัวเลขที่ถูกต้อง
>>> n1 = Fraction('5') >>> n1 Fraction(5, 1) >>> n2 = Fraction('4/7') >>> n2 Fraction(4, 7) >>> n3 = Fraction('0.25') >>> n3 Fraction(1, 4) >>> n4 = Fraction('1.23E4') >>> n4 Fraction(12300, 1)
ตัวเลขทศนิยมยังสามารถเป็นพารามิเตอร์ของคอนสตรัคเตอร์ได้ อย่างไรก็ตาม เนื่องจากการแสดงของ float ในรูปแบบเลขฐานสองล้วน ความฉลาดของตัวเศษและตัวส่วนของผลลัพธ์ของวัตถุเศษส่วนอาจไม่แน่นอน ในทางกลับกัน อ็อบเจกต์ของคลาส Decimal เป็นพารามิเตอร์ก็สร้างออบเจกต์ Fraction ด้วย
>>> from fractions import Fraction >>> from decimal import Decimal >>> n1 = Fraction(2.1) >>> n1 Fraction(4728779608739021, 2251799813685248) >>> n2 = Fraction(Decimal('2.1')) >>> n2 Fraction(21, 10)
อนุญาตให้ดำเนินการเลขคณิตทั้งหมดกับวัตถุเศษส่วนได้
>>> n1 = Fraction(2,3) >>> n2 = Fraction(1,2) >>> n1+n2 Fraction(7, 6) >>> n1-n2 Fraction(1, 6) >>> n1*n2 Fraction(1, 3) >>> n1/n2 Fraction(4, 3)
เพียงเพื่อระลึกถึงวิธีการคำนวณเลขสุ่มในรูปแบบผลหาร -
วัตถุเศษส่วนมีสองแอตทริบิวต์ คือ ตัวเศษและส่วนซึ่งสามารถเข้าถึงได้โดยอิสระ
>>> n1 = Fraction(2,3) >>> n1.numerator 2 >>> n1.denominator 3
คลาส Fraction มีวิธีการที่มีประโยชน์ดังต่อไปนี้ในการหาจำนวนเต็มที่มากที่สุดที่น้อยกว่าผลหาร (ค่าพื้น) และจำนวนเต็มที่น้อยที่สุดที่มากกว่าผลหาร (ค่าเพดาน)
>>> n1 = Fraction(355,113) >>> n1.__floor__() 3 >>> n1.__ceil__() 4
อีกวิธีหนึ่งของคลาส limit_denominator() ส่งกลับเศษส่วนที่ใกล้เคียงที่สุดที่มีตัวส่วนเท่ากับค่าที่ระบุมากที่สุด
>>> Fraction('2.71828').limit_denominator(400) Fraction(1071, 394)
ในบทความนี้ได้มีการกล่าวถึงคุณลักษณะและฟังก์ชันในโมดูลเศษส่วนของไลบรารีมาตรฐาน Python