Python 使用Sage多项式时出现名称错误

Python 使用Sage多项式时出现名称错误,python,sage,polynomials,Python,Sage,Polynomials,我读过如何使用多项式。但是当我尝试这个的时候 R = QQ['t'] poly = (t+1) * (t+2); poly Sage给了我以下错误: NameError: name 't' is not defined 我能做些什么呢?好的,在使用多项式环时必须插入变量名。你指的文件指出 sage: R.<t> = PolynomialRing(QQ) 您想知道如何在不打印名称的情况下执行此操作: sage: R.inject_variables(verbose=False)

我读过如何使用多项式。但是当我尝试这个的时候

R = QQ['t']
poly = (t+1) * (t+2); poly
Sage给了我以下错误:

NameError: name 't' is not defined
我能做些什么呢?

好的,在使用多项式环时必须插入变量名。你指的文件指出

sage: R.<t> = PolynomialRing(QQ)
您想知道如何在不打印名称的情况下执行此操作:

sage: R.inject_variables(verbose=False)

玩得开心

要补充@kcrisman的答案,另一种方法是:

sage: R = PolynomialRing(QQ, 't')
sage: t = R.gen()
然后
t
按预期工作:

sage: (t+1) * (t+2)
t^2 + 3*t + 2
请注意,Sage语法
R.=…
将在
.Sage
文件中工作,但在
.py
文件中不工作,而上述语法也在
.py
文件中工作

.py
文件中,首先导入
多项式环
,如下所示:

from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
要了解您需要什么导入,您可以执行以下操作

sage: R=QQ['t']
sage: R.inject_variables()
Defining t
sage: t+1
t + 1
sage: import_statements(PolynomialRing)
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
最后,如果您不需要戒指
R
, 您可以使用直接定义
t

sage: t = polygen(QQ)
如果您以后需要
R
,您可以使用

sage: R = t.parent()

非常感谢你。我需要函数中的多项式。如何防止sage打印“定义t”?当调用许多函数时,日志变得非常混乱。那么,尖括号符号可以避免这种情况。。。但答案是更新的。