|  | 
 
| 
请教各位大佬有没有一种可以在python中输出分数的做法?
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  我想把分数作为a/b的形式print出来,可python会自动计算a/b,最后输出一个float
 于是我想用字符串,即:
 
 可是我是把分数作为点的坐标输出的,于是这样输出就变成了:
 
 有没有办法让python直接输出a/b?或者把输出中的单引号去掉?
 
这样就 OK 了: 复制代码from fractions import Fraction
class FunctionError(BaseException):
    pass
def change2fraction(obj):
    a, b = obj.as_integer_ratio()
    if a % b == 0:
        if a == b:
            return 1
        elif a == -b:
            return -1
        else:
            return int(a / b)
    else:
        return Fraction(a, b)
class Tuple(tuple):
    def __str__(self):
        return f"({', '.join(str(i) for i in self)})"
class YiBanShi(object):
    def __init__(self, a, b, c):
        if a == 0:
            raise FunctionError('这不是二次函数!')
        else:
            self.a = Fraction(a)
        self.b = Fraction(b)
        self.c = Fraction(c)
    def get_point(self):
        x = change2fraction(- (self.b / 2 * self.a))
        y = change2fraction((4 * self.a * self.c - self.b ** 2) / (4 * self.a))
        return Tuple((x, y))
f1 = YiBanShi(2, -1, -1)
print(f1.get_point())
 | 
 |