Python 为什么不返回“mrcf”值?
这不会退回任何东西。为什么btb。我刚开始使用Py,我已经很喜欢这种语言了:如果我理解这个函数GCD的意图,您可能会多次更新mrcf,而不仅仅是返回第一次出现的m%I==0和n%I==0:Python 为什么不返回“mrcf”值?,python,python-3.x,Python,Python 3.x,这不会退回任何东西。为什么btb。我刚开始使用Py,我已经很喜欢这种语言了:如果我理解这个函数GCD的意图,您可能会多次更新mrcf,而不仅仅是返回第一次出现的m%I==0和n%I==0: 更新:正如@Barmar所建议的,反转循环更有效您有缩进问题,为什么需要额外的变量?为什么不直接返回i呢?您真的希望每个缩进级别使用多个空格。该命令告诉您使用4个空格,并且有充分的理由。您的return语句位于for循环内,不应该在for循环内,但是只有一个很难发现的空格差;你只定义了函数。Barmar,你为
更新:正如@Barmar所建议的,反转循环更有效您有缩进问题,为什么需要额外的变量?为什么不直接返回i呢?您真的希望每个缩进级别使用多个空格。该命令告诉您使用4个空格,并且有充分的理由。您的return语句位于for循环内,不应该在for循环内,但是只有一个很难发现的空格差;你只定义了函数。Barmar,你为什么留下我的注释-1?错误的做法。或者,您可以颠倒循环的顺序,然后返回找到的第一个循环。
m = int(input('Enter value of m : \t'))
n = int(input('Enter the value of n : \t'))
def GCD(m, n):
for i in range(1,min(m,n)+1):
if (m % i) == 0 and (n % i) == 0:
mrcf = i
return (mrcf)
m = int(input('Enter value of m : \t'))
n = int(input('Enter the value of n : \t'))
def GCD(m, n):
for i in range(min(m,n), 1, -1):
if (m % i) == 0 and (n % i) == 0:
return i
return 1
print(GCD(m, n))