1 | initial version |

Regarding the first error, it is fortunate that Sage does not preparse what is inside a string (if it was the case before 7.3, then it was a huge bug). If you want your code withing a string to be preparsed, just use the `perparse`

Sage function, for example:

```
sage: var('a x')
(a, x)
sage: print eval(preparse('16*a^2*x^2'))
16*a^2*x^2
```

Regarding your second error, well, `opr`

is indeed not defined.

2 | No.2 Revision |

Regarding the first error, it is fortunate that Sage does not preparse what is inside a string (if it was the case before 7.3, then it was a huge bug). If you want your code withing a string to be preparsed, just use the `perparse`

Sage function, for example:

```
sage: var('a x')
(a, x)
sage: print eval(preparse('16*a^2*x^2'))
16*a^2*x^2
```

Regarding your second error, well, `opr`

is indeed not ~~defined.~~defined. Note that you have to pass some context to `sage_eval`

:

```
sage: var('a x')
(a, x)
sage: sage_eval('16*a^2*x^2')
NameError: name 'a' is not defined
sage: sage_eval('16*a^2*x^2', locals={'x':x,'a':a})
16*a^2*x^2
```

3 | No.3 Revision |

Regarding the first error, it is fortunate that Sage does not preparse what is inside a string (if it was the case before 7.3, then it was a huge bug). If you want your code withing a string to be preparsed, just use the

Sage function, for example:~~perparse~~preparse

```
sage: var('a x')
(a, x)
sage: print eval(preparse('16*a^2*x^2'))
16*a^2*x^2
```

Regarding your second error, well, `opr`

is indeed not defined. Note that you have to pass some context to `sage_eval`

:

```
sage: var('a x')
(a, x)
sage: sage_eval('16*a^2*x^2')
NameError: name 'a' is not defined
sage: sage_eval('16*a^2*x^2', locals={'x':x,'a':a})
16*a^2*x^2
```

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.