Phân số lớp Python

Như bạn đã biết, các phép toán với số thực có giới hạn về độ chính xác, giới hạn này phụ thuộc vào khả năng của phần cứng thực hiện toán học về số thực. So với số thực, số hữu tỉ cho

phân số_đối tượng_1 = phân số. phân số. from_float(float_value)

phân số_đối tượng_2 = phân số. Phân Số(2, 10)

print("Đối tượng phân số sử dụng phương thức from_float - %s" % (đối tượng phân số_1))

print("Đối tượng phân số bằng cách chỉ định tử số và mẫu số - %s" % (phân số_đối tượng_2))

Một thể hiện Phân số có thể được xây dựng từ một cặp số nguyên, từ một số hữu tỷ khác hoặc từ một chuỗi

lớp fractions.Fraction ( tử số=0, mẫu số=1 ) lớp fractions.Fraction ( other_fraction ) lớp fractions.Fraction ( float ) lớp fractions.Fraction ( thập phân ) lớp fractions.Fraction ( chuỗi )

Phiên bản đầu tiên yêu cầu tử số và mẫu số là các thể hiện của và trả về một thể hiện mới có giá trị

>>> from fractions import Fraction
>>> Fraction(16, -10)
Fraction(-8, 5)
>>> Fraction(123)
Fraction(123, 1)
>>> Fraction()
Fraction(0, 1)
>>> Fraction('3/7')
Fraction(3, 7)
>>> Fraction(' -3/7 ')
Fraction(-3, 7)
>>> Fraction('1.414213 \t\n')
Fraction(1414213, 1000000)
>>> Fraction('-.125')
Fraction(-1, 8)
>>> Fraction('7e-6')
Fraction(7, 1000000)
>>> Fraction(2.25)
Fraction(9, 4)
>>> Fraction(1.1)
Fraction(2476979795053773, 2251799813685248)
>>> from decimal import Decimal
>>> Fraction(Decimal('1.1'))
Fraction(11, 10)
9. Nếu mẫu số là
>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
0, nó sẽ tăng một. Phiên bản thứ hai yêu cầu other_fraction là một phiên bản và trả về một phiên bản có cùng giá trị. Hai phiên bản tiếp theo chấp nhận một hoặc một phiên bản và trả về một phiên bản có cùng giá trị. Lưu ý rằng do các vấn đề thông thường với dấu phẩy động nhị phân (xem ), đối số của
>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
7 không chính xác bằng 11/10 và do đó,
>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
7 không trả về
>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
9 như người ta có thể mong đợi. (Nhưng hãy xem tài liệu về phương pháp bên dưới. ) Phiên bản cuối cùng của hàm tạo mong đợi một phiên bản chuỗi hoặc unicode. Hình thức thông thường cho trường hợp này là

[sign] numerator ['/' denominator]

trong đó tùy chọn

>>> from math import pi, cos
>>> Fraction(cos(pi/3))
Fraction(4503599627370497, 9007199254740992)
>>> Fraction(cos(pi/3)).limit_denominator()
Fraction(1, 2)
>>> Fraction(1.1).limit_denominator()
Fraction(11, 10)
1 có thể là ‘+’ hoặc ‘-‘ và
>>> from math import pi, cos
>>> Fraction(cos(pi/3))
Fraction(4503599627370497, 9007199254740992)
>>> Fraction(cos(pi/3)).limit_denominator()
Fraction(1, 2)
>>> Fraction(1.1).limit_denominator()
Fraction(11, 10)
2 và
>>> from math import pi, cos
>>> Fraction(cos(pi/3))
Fraction(4503599627370497, 9007199254740992)
>>> Fraction(cos(pi/3)).limit_denominator()
Fraction(1, 2)
>>> Fraction(1.1).limit_denominator()
Fraction(11, 10)
3 (nếu có) là chuỗi các chữ số thập phân. Ngoài ra, bất kỳ chuỗi nào đại diện cho một giá trị hữu hạn và được chấp nhận bởi hàm tạo cũng được chấp nhận bởi hàm tạo. Ở cả hai dạng, chuỗi đầu vào cũng có thể có khoảng trắng ở đầu và/hoặc ở cuối. Dưới đây là một số ví dụ

>>> from fractions import Fraction
>>> Fraction(16, -10)
Fraction(-8, 5)
>>> Fraction(123)
Fraction(123, 1)
>>> Fraction()
Fraction(0, 1)
>>> Fraction('3/7')
Fraction(3, 7)
>>> Fraction(' -3/7 ')
Fraction(-3, 7)
>>> Fraction('1.414213 \t\n')
Fraction(1414213, 1000000)
>>> Fraction('-.125')
Fraction(-1, 8)
>>> Fraction('7e-6')
Fraction(7, 1000000)
>>> Fraction(2.25)
Fraction(9, 4)
>>> Fraction(1.1)
Fraction(2476979795053773, 2251799813685248)
>>> from decimal import Decimal
>>> Fraction(Decimal('1.1'))
Fraction(11, 10)

Lớp kế thừa từ lớp cơ sở trừu tượng và thực hiện tất cả các phương thức và hoạt động từ lớp đó. các trường hợp có thể băm được và nên được coi là bất biến. Ngoài ra, có các thuộc tính và phương thức sau

Đã thay đổi trong phiên bản 3. 2. Hàm khởi tạo hiện chấp nhận và thể hiện.

>>> from math import floor
>>> floor(Fraction(355, 113))
3
3

Tử số của Phân số ở số hạng nhỏ nhất

>>> from math import floor
>>> floor(Fraction(355, 113))
3
4

Mẫu số của Phân số ở số hạng bé nhất

>>> from math import floor
>>> floor(Fraction(355, 113))
3
5 (cho))

Phương thức lớp này xây dựng một đại diện cho giá trị chính xác của flt, phải là một. Lưu ý rằng

>>> from math import floor
>>> floor(Fraction(355, 113))
3
8 không cùng giá trị với
>>> from math import floor
>>> floor(Fraction(355, 113))
3
9

Ghi chú

Từ Python 3. 2 trở đi, bạn cũng có thể xây dựng một thể hiện trực tiếp từ một

fractions2 ( dec )

Phương thức lớp này xây dựng một đại diện cho giá trị chính xác của dec, phải là một thể hiện

Ghi chú

Từ Python 3. 2 trở đi, bạn cũng có thể xây dựng một phiên bản trực tiếp từ một phiên bản

fractions7 ( max_denominator=1000000 )

Tìm và trả về giá trị gần nhất với fractions9 có mẫu số nhiều nhất là max_denominator. Phương pháp này rất hữu ích để tìm các xấp xỉ hợp lý cho một số dấu phẩy động đã cho

>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)

hoặc để khôi phục một số hữu tỷ được biểu thị dưới dạng số float

>>> from math import pi, cos
>>> Fraction(cos(pi/3))
Fraction(4503599627370497, 9007199254740992)
>>> Fraction(cos(pi/3)).limit_denominator()
Fraction(1, 2)
>>> Fraction(1.1).limit_denominator()
Fraction(11, 10)

fractions0 ()

Trả về fractions2 lớn nhất. Phương pháp này cũng có thể được truy cập thông qua chức năng

>>> from math import floor
>>> floor(Fraction(355, 113))
3

fractions4 ()

Trả về ít nhất fractions6. Phương pháp này cũng có thể được truy cập thông qua chức năng

fractions8 () fractions8 ( nchữ số )

Phiên bản đầu tiên trả về giá trị gần nhất với fractions9, làm tròn một nửa thành số chẵn. Phiên bản thứ hai làm tròn fractions9 đến bội số gần nhất của fractions.3 (về mặt logic, nếu fractions.4 là số âm), một lần nữa làm tròn một nửa về số chẵn. Phương pháp này cũng có thể được truy cập thông qua chức năng

fractions.fractions.7 ( a, b )

Trả về ước chung lớn nhất của các số nguyên a và b. Nếu a hoặc b khác không, thì giá trị tuyệt đối của fractions.8 là số nguyên lớn nhất chia hết cả a và b. fractions.9 có cùng dấu với b nếu b khác 0; . Fraction0 trả lại

>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
0

Làm cách nào để tạo Phân số trong Python?

Chúng ta có thể chuyển đổi một số nguyên, một số dấu phẩy động hoặc một chuỗi thành một phân số trong python. Để chuyển đổi tỷ lệ của hai số nguyên thành phân số, chúng ta sử dụng phương thức Fraction() của mô-đun phân số và chuyển tử số làm đối số thứ nhất và mẫu số làm đối số thứ hai

Bạn có thể có phân số trong Python không?

Từ Python 3. 2 trở đi, bạn cũng có thể xây dựng một thể hiện Phân số trực tiếp từ số thập phân .

Phân số cho lớp 1 là gì?

Trong Toán học, một phân số được sử dụng để biểu thị một phần/một phần của toàn bộ sự vật . Nó đại diện cho các phần bằng nhau của toàn bộ. Một phân số có hai phần là tử số và mẫu số. Số ở hàng trên gọi là tử số, số ở hàng dưới gọi là mẫu số.

Phân số được gọi bằng Python là gì?

Phân số dùng để tạo đối tượng Phân số. Nó lấy Tử số và Mẫu số. Giá trị mặc định của tử số là 0 và mẫu số là 1.