Sử dụng mô-đun phân số của thư viện Python chuẩn, bạn có thể thực hiện các phép tính với phân số (số hữu tỉ).
Sau đây là giải thích ở đây.
- Hàm tạo của phân số
- Nhận giá trị tử số và mẫu số dưới dạng số nguyên
- Tính toán và so sánh phân số (số hữu tỉ)
- Chuyển phân số thành số thập phân (float)
- Chuyển đổi phân số thành chuỗi (str)
- Nhận gần đúng số hữu tỉ
Hàm tạo của phân số
Có một số cách để tạo một cá thể Phân số. Trong mọi trường hợp, phân số được tự động chia thành phân số.
Chỉ định tử số và mẫu số là số nguyên
Chỉ định tử số và mẫu số tương ứng là số nguyên. Nếu mẫu số bị bỏ qua, nó được giả định là 1.
from fractions import Fraction print(Fraction(1, 3)) # 1/3 print(Fraction(2, 6)) # 1/3 print(Fraction(3)) # 3
phần thập phân(float)
Nếu một giá trị phân số được chuyển qua, nó sẽ được chuyển đổi thành phân số.
print(Fraction(0.25)) # 1/4 print(Fraction(0.33)) # 5944751508129055/18014398509481984
Nếu bạn muốn tính gần đúng bằng cách chỉ định một mẫu số lớn nhất, hãy sử dụng phương thức limit_denominator () được mô tả bên dưới.
chuỗi ký tự(str)
Nếu một giá trị chuỗi được chuyển, nó sẽ được chuyển đổi thành một phân số.
print(Fraction('2/5')) # 2/5 print(Fraction('16/48')) # 1/3
Nhận giá trị tử số và mẫu số dưới dạng số nguyên
Các thuộc tính của kiểu Phân số cho phép bạn nhận các giá trị nguyên cho tử số và mẫu số tương ứng. Chúng không thể thay đổi được.
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
Tính toán và so sánh phân số (số hữu tỉ)
Các toán tử số học có thể được sử dụng để tính toán cộng, trừ, v.v.
result = Fraction(1, 6) ** 2 + Fraction(1, 3) / Fraction(1, 2) print(result) print(type(result)) # 25/36 # <class 'fractions.Fraction'>
Các toán tử so sánh cũng có thể được sử dụng.
print(Fraction(7, 13) > Fraction(8, 15)) # True
Chuyển phân số thành số thập phân (float)
Có thể chuyển đổi từ phân số sang số thập phân với float ().
a_f = float(a) print(a_f) print(type(a_f)) # 0.3333333333333333 # <class 'float'>
Khi được tính toán với một số thập phân, nó sẽ tự động được chuyển đổi thành kiểu float.
b = a + 0.1 print(b) print(type(b)) # 0.43333333333333335 # <class 'float'>
Chuyển đổi phân số thành chuỗi (str)
Để chuyển đổi thành một chuỗi, hãy sử dụng str ().
a_s = str(a) print(a_s) print(type(a_s)) # 1/3 # <class 'str'>
Nhận gần đúng số hữu tỉ
Có thể thu được một số gần đúng với phương thức limit_denominator () của kiểu Fraction.
Trả về số hữu tỉ (phân số) có mẫu số nhỏ hơn hoặc bằng đối số max_denominator. Nếu bỏ qua, max_denominator = 1000000.
Các số vô tỉ gần đúng như số pi và số Napier 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
Chuyển đổi số thập phân tròn thành phân số
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