python - 在 Python 中创建分数
问题描述
我在学校得到了一个任务来定义一个函数名“分数”,就像分数模块一样工作。这是我的做法:
def GCD(x,y):
while y!= 0:
(x,y) =(y,x%y)
return x
def fraction(a,b):
a/=GCD(a,b)
b/=GCD(a,b)
print(str(int(a))+"/"+str(int(b)))
但是当我试图看看它是如何工作的时,它变成了这样:
fraction(45,9)
5/9
我不知道我错在哪里,有人可以帮我弄清楚吗?非常感谢。
解决方案
在计算fora
之前进行修改;因此,您的第二次计算将始终返回。GCD
b
GCD
1
你可以试试这个:
def fraction(a,b):
g = GCD(a,b)
a //= g
b //= g
print("{}/{}".format(a, b))
另请注意,我使用了整数除法(floordiv)//
,因此我没有得到浮点数,因此我必须将其转换回 in int
。
推荐阅读
- jquery - Img src 值不会随着动态内容的变化而变化
- python - Sklearn - scaler.fit_transform - ValueError: Expected 2D array, got scalar array instead:
- javascript - 复选框每次都需要点击两次才能检查
- python - 在 Kivy 中更改标签的位置
- flutter - Flutter 上可拖动的文本字段
- javascript - 异步函数意外行为
- xcode - 颤振卡在运行 xcode 构建
- python - cv2=cv2.VidioCapture=(0) 不打开视频窗口。相机开启
- scala - 如何解决剪影设置的绑定问题?
- c# - 在 Dotnet 中,如果您只有提供者的 GUID,您如何侦听来自特定 ETW 提供者的事件?