1 | initial version |
A Python name is just a pointer to a Python/Sage object:
sage: a = 3
sage: a+a
6
Now, if you redefine it, it will just point to the new object:
sage: a = 12
sage: a
12
sage: a^2
144
If you want the symbol a
(not to be confused with the Python name a
), you can do:
sage: SR.var('a')
a
Any Python name can point to such symbol:
sage: b = SR.var('a')
sage: b
a
sage: (b+1)^2
(a + 1)^2
What confuses most people is that the shotcut:
sage: var('a')
a
both returns the symbol a
and let the Python name a
point to this symbol, in particular, it removes the previous pointer of the Python name a
:
sage: a # this is the Python name
a # this is the symbol
2 | No.2 Revision |
A Python name is just a pointer to a Python/Sage object:
sage: a = 3
sage: a+a
6
Now, if you redefine it, it will just point to the new object:
sage: a = 12
sage: a
12
sage: a^2
144
If you want the symbol a
(not to be confused with the Python name a
), you can do:
sage: SR.var('a')
a
Any Python name can point to such symbol:
sage: b = SR.var('a')
sage: b
a
sage: (b+1)^2
(a + 1)^2
What confuses most people is that the shotcut:
sage: var('a')
a
both returns the symbol a
and let the Python name a
point to this symbol, in particular, it removes the previous pointer of the Python name a
:
sage: a # this is the Python name
a # this is the symbol
3 | No.3 Revision |
A Python name is just a pointer to a Python/Sage object:
sage: a = 3
sage: a+a
6
Now, if you redefine it, it will just point to the new object:
sage: a = 12
sage: a
12
sage: a^2
144
If you want the symbol a
(not to be confused with the Python name a
), you can do:
sage: SR.var('a')
a
Any Python name can point to such symbol:
sage: b = SR.var('a')
sage: b
a
sage: (b+1)^2
(a + 1)^2
What confuses most people is that the shotcut:
sage: var('a')
a
both returns the symbol a
and let the Python name a
point to this symbol, in particular, it removes the previous pointer of the Python name a
:
sage: a # this is the a is a Python name
a # this is the symbol
a is a symbol, pointed bythe previous Python name
4 | No.4 Revision |
A Python name is just a pointer to a Python/Sage object:
sage: a = 3
sage: a+a
6
Now, if you redefine it, it will just point to the new object:
sage: a = 12
sage: a
12
sage: a^2
144
If you want the symbol a
(not to be confused with the Python name a
), you can do:
sage: SR.var('a')
a
Any Python name can point to such symbol:
sage: b = SR.var('a')
sage: b
a
sage: (b+1)^2
(a + 1)^2
What confuses most people is that the shotcut:shortcut:
sage: var('a')
a
both returns the symbol a
and let the Python name a
point to this symbol, in particular, it removes the previous pointer of the Python name a
:
sage: a # this a is a Python name
a # this a is a symbol, pointed bythe previous Python name