Trong Python, mô-đun Fraction hỗ trợ số học hữu tỉ. Sử dụng mô-đun này, chúng tôi có thể tạo phân số từ số nguyên, số thực, số thập phân và từ một số giá trị và chuỗi số khác.
Có một khái niệm về Fraction Instance. Nó được tạo thành bởi một cặp số nguyên là tử số và mẫu số.
Lớp fraction.Fraction được sử dụng để tạo một đối tượng Fraction. Nó có Numerator và Denominator. Giá trị mặc định của tử số là 0 và mẫu số là 1. Nó làm tăng ZeroDivisionError khi mẫu số là 0.
Đầu tiên, chúng ta sẽ xem cách lớp có thể tạo phân số bằng cách sử dụng Mẫu số và Mẫu số.
Mã mẫu
from fractions import Fraction as frac print(frac(45, 54)) print(frac(12, 47)) print(frac(0, 15))
Đầu ra
5/6 12/47 0
Chúng tôi có thể cung cấp một số số dấu phẩy động làm đối số của đối tượng Fraction. Nếu chúng tôi cung cấp giá trị dấu phẩy động chính xác, nó sẽ cố gắng chuyển nó thành giá trị tử số và mẫu số của kiểu số nguyên. Trong trường hợp này, nó cố gắng đạt đến giá trị gần đúng. Nếu số dấu phẩy động được cung cấp dưới dạng một chuỗi, nó sẽ cố gắng tìm giá trị chính xác dưới dạng Phân số. Từ các ví dụ sau, bạn có thể thấy sự khác biệt.
Mã mẫu
from fractions import Fraction as frac print(frac(33.33)) print(frac('33.33'))
Đầu ra
2345390243441541/70368744177664 3333/100
Hãy để chúng tôi xem, một số ví dụ khác về đối số kiểu chuỗi đối với đối tượng Fraction. Nó cũng hỗ trợ dấu hiệu của các con số. Nó hỗ trợ dấu + hoặc -.
Mã mẫu
from fractions import Fraction as frac print(frac('5/6')) print(frac('-25.12')) print(frac('96.251 \t\n')) print(frac('3.14159265359'))
Đầu ra
5/6 -628/25 96251/1000 314159265359/100000000000
Như chúng ta đã thấy, đôi khi mẫu số rất lớn trong đối tượng Phân số. Vì vậy, chúng ta có thể giới hạn độ dài của mẫu số. Độ dài mặc định là 1000000. Nó giúp thực hiện tính gần đúng hợp lý cho dữ liệu dấu phẩy động. Để giới hạn mẫu số, có một hàm được gọi là limit_denominator () .
Đôi khi chúng ta chỉ muốn có tử số hoặc mẫu số mà không muốn toàn bộ đối tượng phân số. Vì vậy, phương pháp này có từ khóa tử số và mẫu số để lấy chúng.
Mã mẫu
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)
Đầu ra
314159265359/100000000000 355/113 311/99 22/7 145/4 145 4
Phân số cũng có thể hỗ trợ các phép toán như cộng, trừ, nhân, chia, lũy thừa, v.v.
Mã mẫu
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))
Đầu ra
Add: 19/8 Subtract: 1/2 Multiply: 10/21 Divide: 12/5 Power: 125/216
Căn bậc hai, sàn, trần và một số phép toán khác cũng được hỗ trợ bởi đối tượng này.
Mã mẫu
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'))))
Đầu ra
Square Root: 0.75 Square Root: 3/4 Floor Value: 3 Ceiling Value: 4