Python打印数组两次
我编写了以下扩展欧几里德算法的实现:Python打印数组两次,python,printing,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 =
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]
它与exptected一样工作,但当我尝试使用标准函数“print”打印函数调用的结果时,输出会打印两次。所以当我这么做的时候
print(扩展欧几里德(15,10))
我得到输出
[5, 1, 1]
[5, 1, 1]
我不明白为什么输出会被打印两次,你能给我解释一下吗。
当我这样做的时候
a = extended_euclid(15,10)
print(a[1])
我明白了
我也不明白
编辑:问题是我两次错误地导入了一个文件,这导致了一些意外的结果。也许这对某些人有帮助。检查代码的其余部分,如果您在某个地方打印此欧几里德函数,请删除该打印,只需调用函数即可。在我的机器上,此代码只打印一个结果。我怀疑这是您的全部代码,请查看您的脚本,确保您没有打印此2x或以某种方式运行此2x。我只复制了一次您的代码及其打印工作!如果这是您的全部代码-您确定您的shell配置正确吗?在Python3.6.6中运行这段代码会打印一次结果列表。谢谢您的帮助,我来看看。
1
1