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

def __gcd(self, a, b):
    if b == 0:
        return a
    else:
        return self.__gcd(b, a % b)

def __add__(self, other):
    numerator = self.numerator * other.denominator + other.numerator * self.denominator
    denominator = self.denominator * other.denominator
    return RationalNumber(numerator, denominator)

def __sub__(self, other):
    numerator = self.numerator * other.denominator - other.numerator * self.denominator
    denominator = self.denominator * other.denominator
    return RationalNumber(numerator, denominator)

def __mul__(self, other):
    numerator = self.numerator * other.numerator
    denominator = self.denominator * other.denominator
    return RationalNumber(numerator, denominator)

def __truediv__(self, other):
    numerator = self.numerator * other.denominator
    denominator = self.denominator * other.numerator
    return RationalNumber(numerator, denominator)

def __eq__(self, other):
    return self.numerator == other.numerator and self.denominator == other.denominator

def __ne__(self, other):
    return not self.__eq__(other)

def __lt__(self, other):
    numerator1 = self.numerator * other.denominator
    numerator2 = other.numerator * self.denominator
    return numerator1 < numerator2

def __le__(self, other):
    numerator1 = self.numerator * other.denominator
    numerator2 = other.numerator * self.denominator
    return numerator1 <= numerator2

def __gt__(self, other):
    numerator1 = self.numerator * other.denominator
    numerator2 = other.numerator * self.denominator
    return numerator1 > numerator2

def __ge__(self, other):
    numerator1 = self.numerator * other.denominator
    numerator2 = other.numerator * self.denominator
    return numerator1 >= numerator2

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

def __repr__(self):
    return "RationalNumber(" + str(self.numerator) + ", " + str(self.denominator) + ")
3创建一个名为RationalNumber的类使其具有以下功能:1创建一个构造函数它可以避免分母为0对不是约化性的分数进行约化并且可以避免分母为负数。 2重载类的加减乘除运算符3重载类的关系运算符和赋值运算符

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

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