3实现加减乘除四则运算,同时要求结果为最简分数形式

代码实现如下:

class RationalNumber: def init(self, numerator, denominator): if denominator == 0: raise ValueError("Denominator cannot be zero") gcd_num = self.gcd(numerator, denominator) self.numerator = numerator // gcd_num self.denominator = denominator // gcd_num

def __str__(self):
    return str(self.numerator) + "/" + str(self.denominator)

def __eq__(self, other):
    if isinstance(other, RationalNumber):
        return self.numerator == other.numerator and self.denominator == other.denominator
    return False

def __lt__(self, other):
    if isinstance(other, RationalNumber):
        return self.numerator * other.denominator < other.numerator * self.denominator
    return False

def __gt__(self, other):
    if isinstance(other, RationalNumber):
        return self.numerator * other.denominator > other.numerator * self.denominator
    return False

def __le__(self, other):
    if isinstance(other, RationalNumber):
        return self.numerator * other.denominator <= other.numerator * self.denominator
    return False

def __ge__(self, other):
    if isinstance(other, RationalNumber):
        return self.numerator * other.denominator >= other.numerator * self.denominator
    return False

def __add__(self, other):
    if isinstance(other, RationalNumber):
        new_num = self.numerator * other.denominator + other.numerator * self.denominator
        new_denom = self.denominator * other.denominator
        return RationalNumber(new_num, new_denom)
    return None

def __sub__(self, other):
    if isinstance(other, RationalNumber):
        new_num = self.numerator * other.denominator - other.numerator * self.denominator
        new_denom = self.denominator * other.denominator
        return RationalNumber(new_num, new_denom)
    return None

def __mul__(self, other):
    if isinstance(other, RationalNumber):
        new_num = self.numerator * other.numerator
        new_denom = self.denominator * other.denominator
        return RationalNumber(new_num, new_denom)
    return None

def __truediv__(self, other):
    if isinstance(other, RationalNumber) and other.numerator != 0:
        new_num = self.numerator * other.denominator
        new_denom = self.denominator * other.numerator
        return RationalNumber(new_num, new_denom)
    return None

def __iadd__(self, other):
    if isinstance(other, RationalNumber):
        new_num = self.numerator * other.denominator + other.numerator * self.denominator
        new_denom = self.denominator * other.denominator
        self.numerator = new_num
        self.denominator = new_denom
        return self
    return None

def __isub__(self, other):
    if isinstance(other, RationalNumber):
        new_num = self.numerator * other.denominator - other.numerator * self.denominator
        new_denom = self.denominator * other.denominator
        self.numerator = new_num
        self.denominator = new_denom
        return self
    return None

def __imul__(self, other):
    if isinstance(other, RationalNumber):
        new_num = self.numerator * other.numerator
        new_denom = self.denominator * other.denominator
        self.numerator = new_num
        self.denominator = new_denom
        return self
    return None

def __itruediv__(self, other):
    if isinstance(other, RationalNumber) and other.numerator != 0:
        new_num = self.numerator * other.denominator
        new_denom = self.denominator * other.numerator
        self.numerator = new_num
        self.denominator = new_denom
        return self
    return None

@staticmethod
def gcd(a, b):
    if b == 0:
        return a
    return RationalNumber.gcd(b, a % b
3创建一个名为RationalNumber的类使其具有以下功能:1创建一个构造函数它可以避免分母为0对不是最简分数的分数进行约化2重载类的关系运算符和赋值运算符

原文地址: https://www.cveoy.top/t/topic/fIMW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录