# 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: **45 times**

Last updated: **Nov 24 '17**

Find the kernel of a matrix $A$ and make it a matrix.

High memory usage when substituting variables

Polynomial: find the common factor

Multivariate Polynomials over Rational Function Fields

Convert a symmetric function into a polynomial on elementary symmetric functions

Computations with complex algebraic numbers?

Explicit representation of element of ideal

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