python第17课课后作业的问题求助
本帖最后由 ooxx7788 于 2017-2-20 14:24 编辑1. 编写一个函数,利用欧几里得算法求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。
设两数为a、b(a>b),求a和b最大公约数(a,b)的步骤如下:用a除以b,得a÷b=q......r1(0≤r1)。
如果这样写,就可以正确的显示值。
def gcd(x, y):
if x % y == 0:
return print(y)
else:
r1 = x % y
x = y
y = r1
gcd(x, y)
gcd(25, 15)
但是如果这样写,就不能打印正确的值,请问是为什么?
def gcd(x, y):
if x % y == 0:
return y
else:
r1 = x % y
x = y
y = r1
gcd(x, y)
print(gcd(25, 15))
我猜return是if里面的,不算函数的返回值。不知道对不对 return y 换成print(y)就可以。
我同意楼上的想法。
return y 没有作为函数体的返回值
所以函数默认就返回None
页:
[1]