【问题标题】:How can I make this loop works?我怎样才能使这个循环工作?
【发布时间】:2023-03-23 13:49:01
【问题描述】:

我觉得很笨,因为我试图为矩阵创建一个简单的循环来显示不同的解,但我无法修复数组的索引:(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(A**i), k 是一个列表,不是字典。

标签: python jupyter-notebook sage


【解决方案1】:

如果你添加一个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)

【讨论】:

    猜你喜欢
    • 2014-11-13
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    相关资源
    最近更新 更多