จำนวนใดๆ ที่สามารถแสดงเป็นผลหารหรือเศษส่วนในรูปของ 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