首页 > 解决方案 > 在 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

我不知道我错在哪里,有人可以帮我弄清楚吗?非常感谢。

标签: pythonpython-3.xfractions

解决方案


在计算fora之前进行修改;因此,您的第二次计算将始终返回。GCDbGCD1

你可以试试这个:

def fraction(a,b):
  g = GCD(a,b)
  a //= g
  b //= g
  print("{}/{}".format(a, b))

另请注意,我使用了整数除法(floordiv)//,因此我没有得到浮点数,因此我必须将其转换回 in int


推荐阅读