# 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 -0600
**

Seen: **122 times**

Last updated: **Nov 24 '17**

Why doesn't Sage evaluate to zero on its own found roots?

Calculating Milnor Numbers of Polynomials Using Singular via Sage

Multivariate Polynomials over Rational Function Fields

How could I work with polynomial fields?

lcm and gcd of polynomials over the irrationals

can't make an obvious simplification

positive values of polynomials

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).