# How can I readline a one-term polynomial from a user?

I would like to ask the user for a function. How can I do that? Is there something like readline?

How can I readline a one-term polynomial from a user?

I would like to ask the user for a function. How can I do that? Is there something like readline?

0

In Python, you can read a string from the user prompt with the function `raw_input`

:

```
sage: a = raw_input()
2*x+3
sage: a
'2*x+3'
sage: type(a)
<type 'str'>
```

Then you can transform that string into a symbolic expression:

```
sage: b = SR(a)
sage: b
2*x + 3
sage: type(b)
<type 'sage.symbolic.expression.Expression'>
sage: sin(b)
sin(2*x + 3)
```

You can put it within a function:

```
sage: def user_square():
....: print 'Please enter a function to be squared: ',
....: a = raw_input()
....: return SR(a)^2
sage: user_square()
Please enter a function to be squared: cos(d)+sin(t)
(cos(d) + sin(t))^2
```

If you want to make something fancy, with input boxes and sliders, you can have a look at Sage `interact`

.

Asked: **
2017-11-24 02:08:11 -0500
**

Seen: **114 times**

Last updated: **Nov 24 '17**

Solving equations in polynomial ring if ideal is positive dimensional

Imaginary part of a ratio of polynomials

Coercion problem while defining piecewise function

Fast evaluation of big polynomials

How to find a polynomial identity to evaluate sum of fifth powers?

plotting multiple functions from a for loop

What is the effect of declaring a polynomial `sparse'?

polynomials of derivative operator

Use the properties of inverse functions to find the exact value of the expression

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.

What do you mean by a "one-term polynomial"?

As for the existence of a readline, you can either use

`read_data`

to read from a file, or any Python method to read data from a file. You can also read from the standard input, and then process the data you get. In particular, if you have a string representation`s`

of some object of a class`C`

, you can usually construct the object using`C(s)`

. For instance, if you define`R.<x> = ZZ[]`

, then`R('x^2 + x + 1')`

returns the polynomial`x^2 + x + 1`

. Using`eval(s)`

will have the same effect here (since`x`

is known to SageMath as the generator of the polynomial ring).I would like the user to type a function in(the user of the programme).