저는 프로젝트 오일러의 문제 중 하나를 근본적으로 해결하고 처음 20 개의 자연수의 LCM을 찾는 것을 목표로하는 코드를 가지고 있습니다.왜 'NoneType'이 파이썬에서 반환됩니까?
def GCD(a, b): #Euclid's algorithim
if (b == 0):
return a
else:
GCD(b, a % b)
def LCM(a, b): #LCM(a,b) = a*b/GCD(a,b)
x = GCD(a, b)
return ((a * b)/x)
def RFIND(a, b):
if (b == 20):
return a
else:
RFIND(LCM(a, b), b + 1)
print RFIND(2, 1)
하지만 실행 중에 오류가 발생합니다.
return ((a * b)/x)
TypeError: unsupported operand type(s) for /: 'int' and 'NoneType'
이유는 무엇입니까?
그래, 효과가있다. 그러나 나는 그것을 다소 시각적으로 표현할 수 없다. – Shubham
@Shub : GCD에 대한 재귀 호출을하고 있지만 반환하지 않는 경우, 그 호출이 해결되면 else 문으로 인해 void가 반환됩니다. 파이썬에서 당신의 메소드는 아무 것도 반환하지 않고 아무 것도 반환하지 않으면 NoneType을 반환합니다. –
@jesus : 알았어요. 감사.! – Shubham