为什么我收到错误:UnboundLocalError: local variable 'lcm' referenced before assignment

时间:2021-03-28 15:18:30

标签: python

我试图找到两个数字的 lcm。但是当我运行程序时,我收到错误:

<块引用>

UnboundLocalError:赋值前引用了局部变量“lcm”

为什么我会收到这个错误?我不明白我的代码有什么问题。

这是我的代码:

def compute_lcm( num1, num2):
    
    if num1 > num2:
        greater = num1
        
    else:
        greater = num2
        
        for i in range(1, greater + 1):
            if ( i % num1 ) == 0 and ( i % num2) == 0:
                lcm = i
        print(lcm)
                
compute_lcm( 12, 14)

1 个答案:

答案 0 :(得分:0)

您得到的错误是因为代码永远不满足 i % num1 == 0 and i % num2 == 0,因此永远不会为 lcm 设置值。另请注意,代码的第二部分必须在 if/else 之外。

def compute_lcm(num1, num2):
    if num1 > num2:
        greater = num1
    else:
        greater = num2

    lcm = None
    for i in range(1, greater + 1):
        if i % num1 == 0 and i % num2 == 0:
            lcm = i
    print(lcm)


compute_lcm(12, 14)  # >>> None