为什么我的 Python 函数返回 None?
Why is my Python function returning None?
我是 python 的新手,我尝试使用欧几里安算法创建 GCD 函数。但是每当我尝试打印答案时,它都会 returns none。可能有人让我知道我做错了什么。
代码:
def gcd(a,b):
if a - b != 0:
b = b - a
b = abs(b)
if a > b:
a,b = b, a
return gcd(a,b)
else:
gcd(a,b)
else:
print(a)
x = input("Give First Num... ")
y = input("Give Second Num... ")
answer = gcd(int(x), int(y))
print("GCD = {}".format(answer))
控制台:
120
GCD = None
def gcd(a,b):
if a - b != 0:
b = b - a
b = abs(b)
if a > b:
a,b = b, a
return gcd(a,b)
else:
return gcd(a,b)
else:
return a
x = input("Give First Num... ")
y = input("Give Second Num... ")
answer = gcd(int(x), int(y))
print(answer)
print("GCD = {}".format(answer))
在最后的“else”中,把return
放在print()
之前,因为当你使用一个print并且你想得到值时,它不会return而只是打印(根据最后一个条件),你应该得到 None
值。
为了 return 的东西,只需对您的代码进行一个小的调整:
def gcd(a,b):
if a - b != 0:
b = b - a
b = abs(b)
if a > b:
a,b = b, a
return gcd(a,b)
else:
return gcd(a,b)
else:
return a
这样写,你的函数总是return赋值给answer
的东西。
我是 python 的新手,我尝试使用欧几里安算法创建 GCD 函数。但是每当我尝试打印答案时,它都会 returns none。可能有人让我知道我做错了什么。
代码:
def gcd(a,b):
if a - b != 0:
b = b - a
b = abs(b)
if a > b:
a,b = b, a
return gcd(a,b)
else:
gcd(a,b)
else:
print(a)
x = input("Give First Num... ")
y = input("Give Second Num... ")
answer = gcd(int(x), int(y))
print("GCD = {}".format(answer))
控制台:
120
GCD = None
def gcd(a,b):
if a - b != 0:
b = b - a
b = abs(b)
if a > b:
a,b = b, a
return gcd(a,b)
else:
return gcd(a,b)
else:
return a
x = input("Give First Num... ")
y = input("Give Second Num... ")
answer = gcd(int(x), int(y))
print(answer)
print("GCD = {}".format(answer))
在最后的“else”中,把return
放在print()
之前,因为当你使用一个print并且你想得到值时,它不会return而只是打印(根据最后一个条件),你应该得到 None
值。
为了 return 的东西,只需对您的代码进行一个小的调整:
def gcd(a,b):
if a - b != 0:
b = b - a
b = abs(b)
if a > b:
a,b = b, a
return gcd(a,b)
else:
return gcd(a,b)
else:
return a
这样写,你的函数总是return赋值给answer
的东西。