Hướng dẫn how do you add a numerator and denominator in python? - làm thế nào để bạn thêm một tử số và mẫu số trong python?

Tôi đang cố gắng thêm hai phân số vào Python

Nếu đầu vào 1/4 + 1/4, tôi đang mong đợi 1/2 kết quả

Tôi đã xây dựng một lớp phân số với phương pháp __add__ để bổ sung

from fractions import gcd

class fraction:
    def __init__(self, numerator, denominator):
        self.num = numerator
        self.deno = denominator
    def __add__(self, other):
        self.sumOfn = self.num + other.num
        self.sumOfd = gcd(self.deno,other.deno)
        return(self.sumOfn, self.sumOfd)



print(fraction(1,4)+fraction(1,4))

Tuy nhiên, tôi nhận được 2,4 làm đầu ra, thực sự là 1/2, không đơn giản hóa. Làm thế nào tôi có thể khắc phục vấn đề đó?

Mã nguồn: lib/phân số.py Lib/fractions.py


Mô -đun fractions cung cấp hỗ trợ cho số học số hợp lý.

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ợp lý khác hoặc từ một chuỗi.

Lớp ____ ____ 8 ________ 9 (Số = 0, mẫu số = 1) ¶ Lớp ________ 8 ________ 9 (Other_Fraction) Lớp ________ 8 ________ 9 (Float) Lớp(numerator=0, denominator=1)¶ class fractions.Fraction(other_fraction) class fractions.Fraction(float) class fractions.Fraction(decimal) class fractions.Fraction(string)

Phiên bản đầu tiên yêu cầu tử số và mẫu số là các phiên bản là

[sign] numerator ['/' denominator]
8 và trả về một phiên bản
[sign] numerator ['/' denominator]
9 mới với 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)
0. Nếu mẫu số là
>>> 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)
1, nó sẽ tăng
>>> 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)
2. Phiên bản thứ hai yêu cầu các trường hợp khác là một thể hiện của
[sign] numerator ['/' denominator]
8 và trả về một thể hiện
[sign] numerator ['/' denominator]
9 với cùng một giá trị. Hai phiên bản tiếp theo chấp nhận một 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)
5 hoặc
>>> 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)
6 và trả về một thể hiện
[sign] numerator ['/' denominator]
9 với chính xác cùng một giá trị. Lưu ý rằng do các vấn đề thông thường với điểm nổi nhị phân (xem Số học điểm nổi: Các vấn đề và giới hạn), đối số của
>>> 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)
8 không chính xác bằng 11/10, và do đó
>>> 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)
8 không trả lại
>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
0 như người ta có thể mong đợi. (Nhưng xem tài liệu cho phương thức
>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
1 bên dưới.) Phiên bản cuối cùng của hàm tạo mong đợi một trường hợp chuỗi hoặc unicode. Mẫu thông thường cho trường hợp này là:Floating Point Arithmetic: Issues and Limitations), the argument to
>>> 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)
8 is not exactly equal to 11/10, and so
>>> 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)
8 does not return
>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
0 as one might expect. (But see the documentation for the
>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
1 method below.) The last version of the constructor expects a string or unicode instance. The usual form for this instance is:

[sign] numerator ['/' denominator]

trong đó

>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
2 tùy chọn có thể là ‘+hoặc hoặc‘-và và
>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
3 và
>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
4 (nếu có) là các chuỗi của 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
>>> 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)
5 cũng được chấp nhận bởi hàm tạo
[sign] numerator ['/' denominator]
9. Trong cả hai hình thức, chuỗi đầu vào cũng có thể có khoảng trắng dẫn đầu và/hoặc dấu vết. 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

[sign] numerator ['/' denominator]
9 kế thừa từ lớp cơ sở trừu tượng
[sign] numerator ['/' denominator]
8 và thực hiện tất cả các phương pháp và hoạt động từ lớp đó. Các trường hợp
[sign] numerator ['/' denominator]
9 có thể băm, và nên được coi là bất biến. Ngoài ra,
[sign] numerator ['/' denominator]
9 có các thuộc tính và phương pháp sau:

Đã thay đổi trong phiên bản 3.9: Hàm

>>> 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 hiện được sử dụng để bình thường hóa tử số và mẫu số.
>>> 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 Luôn trả về loại
>>> 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. Trước đây, loại GCD phụ thuộc vào tử số và mẫu số.The
>>> 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 function is now used to normalize the numerator and denominator.
>>> 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 always return a
>>> 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 type. Previously, the GCD type depended on numerator and denominator.

________ 44¶

Tử số của phân số trong thời hạn thấp nhất.

________ 45¶

Mẫu số của phân số trong thời hạn thấp nhất.

________ 46 ()()

Trả về một tuple của hai số nguyên, có tỷ lệ bằng phân số và với mẫu số dương.

Mới trong phiên bản 3.8.

ClassMethod ________ 47 (FLT) ¶(flt)

Hàm tạo thay thế chỉ chấp nhận các trường hợp

>>> 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)
5 hoặc
>>> 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)
9. Hãy coi chừng
>>> from math import floor
>>> floor(Fraction(355, 113))
3
0 không giống với giá trị
>>> from math import floor
>>> floor(Fraction(355, 113))
3
1.

Ghi chú

Từ Python 3.2 trở đi, bạn cũng có thể xây dựng một ví dụ

[sign] numerator ['/' denominator]
9 trực tiếp từ
>>> 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)
5.

ClassMethod ________ 54 (tháng 12) ¶(dec)

Hàm tạo thay thế chỉ chấp nhận các trường hợp

>>> 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)
6 hoặc
>>> 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)
9.

________ 57 (max_denominator = 1000000) ¶(max_denominator=1000000)

Tìm và trả về

[sign] numerator ['/' denominator]
9 gần nhất đến
>>> from math import floor
>>> floor(Fraction(355, 113))
3
9 có mẫu số ở hầu hết 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ố điểm nổi nhất định:

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

hoặc để phục hồi một số hợp lý mà LỚN đại diện cho một chiếc phao:

>>> 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)

________ 60 ()()

Trả 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 lớn nhất __add__2. Phương pháp này cũng có thể được truy cập thông qua hàm __add__3:

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

________ 64 ()()

Trả về ít nhất

>>> 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 __add__6. Phương pháp này cũng có thể được truy cập thông qua hàm __add__7.

________ 68 () ____ ____ 68 (ndigits)()__add__8(ndigits)

Phiên bản đầu tiên trả lại

>>> 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 gần nhất đến
>>> from math import floor
>>> floor(Fraction(355, 113))
3
9, làm tròn một nửa vào chẵn. Phiên bản thứ hai làm tròn
>>> from math import floor
>>> floor(Fraction(355, 113))
3
9 đến bội số gần nhất của fractions3 (về mặt logic, nếu fractions4 là âm), một lần nữa làm tròn một nửa về phía chẵn. Phương pháp này cũng có thể được truy cập thông qua hàm fractions5.

Xem thêm

Mô -đun fractions6

Các lớp cơ sở trừu tượng tạo nên tháp số.

Làm thế nào để bạn viết tử số và mẫu số trong Python?

Phân số lớp.Phân số (Chuỗi): Điều này yêu cầu thể hiện chuỗi hoặc Unicode và một phiên bản phân số có cùng giá trị được trả về.Biểu mẫu cho trường hợp này: [dấu hiệu] tử số ['/' mẫu số] Ở đây, dấu biểu thị '+' hoặc '-' và tử số và mẫu số là các chuỗi của một chữ số.[sign] numerator ['/' denominator] Here, sign represents '+' or '-' and numerator and denominator are strings of single digits.

Làm thế nào để bạn thêm một tử số và mẫu số?

Kiểm tra các mẫu số xem chúng là đồng hành chính.Nhân phần đầu tiên (tử số và mẫu số) với mẫu số của phân số khác và phân số thứ hai (tử số và mẫu số) với mẫu số của phân số thứ nhất.Thêm các phân số kết quả và đơn giản hóa.

Có phân số trong Python không?

Trong Python, mô -đun phân số hỗ trợ số học số hợp lý.Sử dụng mô -đun này, chúng ta có thể tạo các phân số từ các số nguyên, phao, 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ề thể hiện phân số.Nó được hình thành bởi một cặp số nguyên làm tử số và mẫu số.the Fraction module supports rational number arithmetic. Using this module, we can create fractions from integers, floats, decimal and from some other numeric values and strings. There is a concept of Fraction Instance. It is formed by a pair of integers as numerator and denominator.