我怎样才能使这个循环工作?

How can I make this loop works?

我觉得很蠢,因为我试图为矩阵创建一个简单的循环以显示不同的解,但我无法修复数组的索引:(FOA 我正在使用带有 SageMath 9.3 的 Jupyter Notebook)

A=random_matrix(ZZ,4,4)
k=srange(2,7)
show(k)
i=0
for i in k:
    show(A^k[i])
    show(k[i])

我收到了:

[2,3,4,5,6]
 
"The matrix"
 
4
 
"The matrix"
 
5
 
"The matrix"
 
6
 
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-7-c50cd3e70a78> in <module>
      4 i=Integer(0)
      5 for i in k:
----> 6     show(A**k[i])
      7     show(k[i])

IndexError: list index out of range

如何以正确的顺序打印 k esponent 2,3,4,5,6?

如果你添加一个 show(i) 调用,你会看到 i 每次的值是:

2
3
4
5
6

所以 k[i] 得到 k 的第三个元素,然后是第四个,等等。这就是你在 show(k[i]) 时看到的。列表中只有五个元素,所以当 i=5 时,您将得到一个 IndexError,如您所见。

相反,只需使用 i:

A=random_matrix(ZZ,4,4)
k=srange(2,7)
show(k)
i=0
for i in k:
    show(A**i)
    show(i)