在 Python 中创建分数
Create Fraction in Python
我在学校接到了一个任务,要定义一个函数名"fraction",就像分数模块一样工作。
这是我的做法:
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
我不知道我哪里错了,谁能帮我解决一下?
非常感谢。
您在为 b
计算 GCD
之前修改 a
;因此,您的第二个 GCD
计算将始终 return 1
.
你可以试试这个:
def fraction(a,b):
g = GCD(a,b)
a //= g
b //= g
print("{}/{}".format(a, b))
另请注意,我使用了 integer division (floordiv) //
,因此我没有得到浮点数,因此我必须在 int
.
中返回
在你的 def 分数中,
def fraction(a,b):
a/=GCD(a,b)
b/=GCD(a,b)
print(str(int(a))+"/"+str(int(b)))
您修改了一个。 a 变成 45/9 = 5。b 除以 GCD(5,9)(等于 1)就是 b。相反,您可以将 GCD 存储在一个临时变量中,然后将两者除以它。
def fraction(a,b):
gcd = GCD(a,b)
a//=gcd
b//=gcd
print(str(int(a))+"/"+str(int(b)))
非常感谢您提供有用的答案,我已经意识到我做错了什么并结合您的所有答案制作了一个新的。
这是新的:
def GCD(x,y):
while y!= 0:
(x,y) =(y,x%y)
return x
def fraction(a,b):
gcd=GCD(a,b)
a=a//gcd
b=b//gcd
print(str(a)+"/"+str(b))
再次感谢大家,你们让我很开心。
我在学校接到了一个任务,要定义一个函数名"fraction",就像分数模块一样工作。 这是我的做法:
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
我不知道我哪里错了,谁能帮我解决一下? 非常感谢。
您在为 b
计算 GCD
之前修改 a
;因此,您的第二个 GCD
计算将始终 return 1
.
你可以试试这个:
def fraction(a,b):
g = GCD(a,b)
a //= g
b //= g
print("{}/{}".format(a, b))
另请注意,我使用了 integer division (floordiv) //
,因此我没有得到浮点数,因此我必须在 int
.
在你的 def 分数中,
def fraction(a,b):
a/=GCD(a,b)
b/=GCD(a,b)
print(str(int(a))+"/"+str(int(b)))
您修改了一个。 a 变成 45/9 = 5。b 除以 GCD(5,9)(等于 1)就是 b。相反,您可以将 GCD 存储在一个临时变量中,然后将两者除以它。
def fraction(a,b):
gcd = GCD(a,b)
a//=gcd
b//=gcd
print(str(int(a))+"/"+str(int(b)))
非常感谢您提供有用的答案,我已经意识到我做错了什么并结合您的所有答案制作了一个新的。 这是新的:
def GCD(x,y):
while y!= 0:
(x,y) =(y,x%y)
return x
def fraction(a,b):
gcd=GCD(a,b)
a=a//gcd
b=b//gcd
print(str(a)+"/"+str(b))
再次感谢大家,你们让我很开心。