|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请教各位大佬有没有一种可以在python中输出分数的做法?
我想把分数作为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())
复制代码
|
|