Python两次打印数组

时间:2018-11-04 14:34:35

标签: python printing

我已经编写了扩展欧几里得算法的以下实现:

def extended_euclid(a, b):
    x_k = 1       # read x_k
    x_k1 = 0      # read x_(k+1)
    y_k = 0       # read y_k
    y_k1 = 1      # read y_(k+1)
    sign = 1
    while b != 0:
        q = a//b
        r = a - q*b
        a = b
        b = r
        xx = x_k1
        yy = y_k1
        x_k1 = q*x_k1 + x_k
        y_k1 = q*y_k1 + y_k
        x_k = xx
        y_k = yy
        sign = -sign
    x = sign*x_k
    y = sign*y_k
    return [a, x, y]

它可以正常工作,但是当我尝试使用标准函数“ print”打印出函数调用的结果时,输出将被打印两次。所以当我这样做

print(extended_euclid(15,10))

我得到了输出

[5, 1, 1]
[5, 1, 1]

我不明白为什么输出要打印两次,请您向我解释一下。 也是当我这样做

a = extended_euclid(15,10)
print(a[1])

我明白了

1
1

我也不明白。

编辑:问题是我错误地两次导入了一个文件,这导致了一些意外的结果。也许这对某人有帮助。

1 个答案:

答案 0 :(得分:1)

检查代码的其余部分,如果在某个地方打印了该euclid函数,请删除该打印件,然后仅调用函数。在我的机器上,此代码仅打印一个结果。