Sagemath:有没有办法打印出 Group 或 Ring 的所有元素?
Sagemath: Is there a way to print out all the elements of a Group or a Ring?
如何在 Sagemath 中打印出组或环的所有元素?
我无法在执行此操作的文档中找到任何 command/function。所以我尝试通过 Python for & 我无法理解输出
我用字段试过了
sage: A = GF(7)
sage: [print(i) for i in A]
0
1
2
3
4
5
6
[None, None, None, None, None, None, None]
我无法弄清楚最后的 None、None、None 是什么。
也无法理解商环的输出
R.<x> = PolynomialRing(Integers(7))
A = R.quotient(x^2)
[print(i) for i in A]
0
1
2
3
4
5
6
xbar
xbar + 1
...
xbar + 6
2*xbar
...
2*xbar + 6
...
3*xbar + 6
...
6*xbar + 6
[None,
...
None]
这里又是什么 xbar 和 nones 是什么?
函数 print
打印它的参数和 returns None
,
这是 Python 中最接近“不 return 任何东西”的。
当命令的return值为None
时,不
得到显示。然而,在这里你正在建立一个列表
这些 return 个值,所以你得到一个列表
元素是 None
,并且确实显示了该列表。
为避免这种情况,请在不构建列表的情况下使用 for 循环。
sage: A = GF(7)
sage: for i in A:
....: print(i)
....:
0
1
2
3
4
5
6
从变量为 x
的多项式环开始,
并取一个商,Sage 使用 xbar
作为
变量图像的默认名称 x
在商数中。
要选择不同的名称:
sage: R.<x> = PolynomialRing(Zmod(3))
sage: A.<t> = R.quotient(x^2)
sage: for i in A:
....: print(i)
sage: R.<x> = PolynomialRing(Integers(3))
sage: A.<t> = R.quotient(x^2)
sage: for i in A:
....: print(i)
....:
0
1
2
t
t + 1
t + 2
2*t
2*t + 1
2*t + 2
也可以用x
作为商中的变量名:
sage: R.<x> = PolynomialRing(Zmod(3))
sage: A.<x> = R.quotient(x^2)
sage: for i in A:
....: print(i)
....:
0
1
2
x
x + 1
x + 2
2*x
2*x + 1
2*x + 2
如果您想要单行打印而不是完整的打印循环,
您可以使用 more_itertools 包中的 consume
(您首先必须使用 pip 安装)。
sage: %pip install more_itertools
...
sage: from more_itertools import consume
sage: consume(print(i) for i in A)
0
1
2
x
x + 1
x + 2
2*x
2*x + 1
2*x + 2
如何在 Sagemath 中打印出组或环的所有元素?
我无法在执行此操作的文档中找到任何 command/function。所以我尝试通过 Python for & 我无法理解输出
我用字段试过了
sage: A = GF(7)
sage: [print(i) for i in A]
0
1
2
3
4
5
6
[None, None, None, None, None, None, None]
我无法弄清楚最后的 None、None、None 是什么。
也无法理解商环的输出
R.<x> = PolynomialRing(Integers(7))
A = R.quotient(x^2)
[print(i) for i in A]
0
1
2
3
4
5
6
xbar
xbar + 1
...
xbar + 6
2*xbar
...
2*xbar + 6
...
3*xbar + 6
...
6*xbar + 6
[None,
...
None]
这里又是什么 xbar 和 nones 是什么?
函数 print
打印它的参数和 returns None
,
这是 Python 中最接近“不 return 任何东西”的。
当命令的return值为None
时,不
得到显示。然而,在这里你正在建立一个列表
这些 return 个值,所以你得到一个列表
元素是 None
,并且确实显示了该列表。
为避免这种情况,请在不构建列表的情况下使用 for 循环。
sage: A = GF(7)
sage: for i in A:
....: print(i)
....:
0
1
2
3
4
5
6
从变量为 x
的多项式环开始,
并取一个商,Sage 使用 xbar
作为
变量图像的默认名称 x
在商数中。
要选择不同的名称:
sage: R.<x> = PolynomialRing(Zmod(3))
sage: A.<t> = R.quotient(x^2)
sage: for i in A:
....: print(i)
sage: R.<x> = PolynomialRing(Integers(3))
sage: A.<t> = R.quotient(x^2)
sage: for i in A:
....: print(i)
....:
0
1
2
t
t + 1
t + 2
2*t
2*t + 1
2*t + 2
也可以用x
作为商中的变量名:
sage: R.<x> = PolynomialRing(Zmod(3))
sage: A.<x> = R.quotient(x^2)
sage: for i in A:
....: print(i)
....:
0
1
2
x
x + 1
x + 2
2*x
2*x + 1
2*x + 2
如果您想要单行打印而不是完整的打印循环,
您可以使用 more_itertools 包中的 consume
(您首先必须使用 pip 安装)。
sage: %pip install more_itertools
...
sage: from more_itertools import consume
sage: consume(print(i) for i in A)
0
1
2
x
x + 1
x + 2
2*x
2*x + 1
2*x + 2