ใน Python โมดูลเศษส่วนรองรับเลขคณิตตรรกยะ เมื่อใช้โมดูลนี้ เราสามารถสร้างเศษส่วนจากจำนวนเต็ม ทศนิยม ทศนิยม และจากค่าตัวเลขและสตริงอื่นๆ
มีแนวคิดของอินสแตนซ์เศษส่วน มันเกิดจากคู่ของจำนวนเต็มเป็นตัวเศษและส่วน
คลาส fractions.Fraction ใช้ในการสร้างวัตถุเศษส่วน ต้องใช้ตัวเศษและตัวส่วน ค่าเริ่มต้นของตัวเศษคือ 0 และตัวส่วนคือ 1 ซึ่งจะทำให้เกิด ZeroDivisionError เมื่อตัวส่วนเป็น 0
ขั้นแรกเราจะดูว่าชั้นเรียนสามารถสร้างเศษส่วนโดยใช้ตัวเศษและส่วนได้อย่างไร
โค้ดตัวอย่าง
from fractions import Fraction as frac print(frac(45, 54)) print(frac(12, 47)) print(frac(0, 15))
ผลลัพธ์
5/6 12/47 0
เราสามารถระบุตัวเลขทศนิยมบางส่วนเป็นอาร์กิวเมนต์ของวัตถุเศษส่วน หากเราระบุค่าทศนิยมที่แน่นอน จะพยายามแปลงเป็นค่าตัวเศษและตัวส่วนของประเภทจำนวนเต็ม ในกรณีนี้ จะพยายามเข้าถึงค่าโดยประมาณ หากระบุตัวเลขทศนิยมเป็นสตริง จะพยายามหาค่าที่แน่นอนเป็นเศษส่วน จากตัวอย่างต่อไปนี้ คุณจะเห็นความแตกต่าง
โค้ดตัวอย่าง
from fractions import Fraction as frac print(frac(33.33)) print(frac('33.33'))
ผลลัพธ์
2345390243441541/70368744177664 3333/100
ให้เราดูตัวอย่างอื่น ๆ เกี่ยวกับอาร์กิวเมนต์ประเภทสตริงของวัตถุเศษส่วน นอกจากนี้ยังรองรับเครื่องหมายของตัวเลข รองรับเครื่องหมาย + หรือ -
โค้ดตัวอย่าง
from fractions import Fraction as frac print(frac('5/6')) print(frac('-25.12')) print(frac('96.251 \t\n')) print(frac('3.14159265359'))
ผลลัพธ์
5/6 -628/25 96251/1000 314159265359/100000000000
ดังที่เราได้เห็นแล้ว บางครั้งตัวส่วนก็มีขนาดใหญ่มากในวัตถุเศษส่วน เราจึงสามารถจำกัดความยาวของตัวส่วนได้ ความยาวเริ่มต้นคือ 1000000 ช่วยในการประมาณเหตุผลสำหรับข้อมูลจุดลอยตัว ในการจำกัดตัวส่วน มีฟังก์ชันที่เรียกว่า limit_denominator() .
บางครั้งเราต้องการเฉพาะตัวเศษหรือตัวส่วนที่ไม่มีวัตถุเศษส่วนทั้งหมด ดังนั้นวิธีนี้จึงมีคีย์เวิร์ดตัวเศษและตัวส่วนเพื่อให้ได้มา
โค้ดตัวอย่าง
from fractions import Fraction as frac print(frac('3.14159265359')) print(frac('3.14159265359').limit_denominator(1000)) print(frac('3.14159265359').limit_denominator(100)) print(frac('3.14159265359').limit_denominator(10)) print(frac('36.25')) print(frac('36.25').numerator) print(frac('36.25').denominator)
ผลลัพธ์
314159265359/100000000000 355/113 311/99 22/7 145/4 145 4
เศษส่วนยังสามารถสนับสนุนการดำเนินการทางคณิตศาสตร์ เช่น บวก ลบ คูณ หาร ยกกำลัง ฯลฯ
โค้ดตัวอย่าง
from fractions import Fraction as frac print('Add: ' + str(frac('5/4') + frac('9/8'))) print('Subtract: ' + str(frac('15/20') - frac('2/8'))) print('Multiply: ' + str(frac('2/3') * frac('5/7'))) print('Divide: ' + str(frac('80/125') / frac('12/45'))) print('Power: ' + str(frac('5/6') ** 3))
ผลลัพธ์
Add: 19/8 Subtract: 1/2 Multiply: 10/21 Divide: 12/5 Power: 125/216
ออบเจ็กต์นี้รองรับสแควร์รูท พื้น เพดาน และการดำเนินการอื่นๆ บางส่วนด้วย
โค้ดตัวอย่าง
from fractions import Fraction as frac import math print('Square Root: ' + str(math.sqrt(frac(36, 64)))) print('Square Root: ' + str(frac(math.sqrt(frac(36, 64))))) print('Floor Value: ' + str(math.floor(frac('22/7')))) print('Ceiling Value: ' + str(math.ceil(frac('22/7'))))
ผลลัพธ์
Square Root: 0.75 Square Root: 3/4 Floor Value: 3 Ceiling Value: 4