Python基础,为什么我的函数只返回一个值

用函数求最大公因数和最小公倍数,为什么我的打印结果只有一个1,没有最小公倍数14呢


def zuidagys(n,m):
    a=min(n,m)
    b=max(n,m)
    while a>=1:
        if n%a==0 and m%a==0:
            return a
        a -= 1
    while 1==1:
        if b%n==0 and b%m==0:
            return b
            break
        b+=1



l=zuidagys(2,7)
print(l)

你要返回多个值,应该用 yield,而不是 return

def zuidagys(n,m):
    a=min(n,m)
    b=max(n,m)
    while a>=1:
        if n%a==0 and m%a==0:
            yield a
        a -= 1
    while 1==1:
        if b%n==0 and b%m==0:
            yield b
            break
        b+=1
 
 
l=zuidagys(2,7)
print(','.join(map(str, l)))