1 | initial version |
Let me first answer the secont part. When you write PRZp = PolynomialRing(Zp, 'x')
, you only define PRZp
to be a polynomial ring with the symbol 'x'
as an indeterminate, but you did not let the PYthon variable x
to point to the polynomial undeterminate 'x'
. For this, you can for example do:
sage: x = PRZp.gen()
or
sage: PRZp.inject_variables()
Defining x
Now, for the first part, the notation PRZp.<x> = Zp[]
is indeed not Pythonic, so it works because of Sage preparser that transforms it to something meaningful to Python:
sage: preparse('PRZp.<x> = Zp[]')
"PRZp = Zp['x']; (x,) = PRZp._first_ngens(1)"
So, you can either writh that in your python file, or, if you want to keep the same syntax, you should use a Sage file instead ot a Python file, so that Sage preparser get applied first. The way to do this is to rename yourfile.py
into yourfile.sage
.