存储特定的整数-Python

时间:2018-12-11 01:25:40

标签: python

我需要找到一种简单的方法来存储特定的整数,例如多项式。如果用户输入:

  

2x ^ 3 + 5x ^ 2-8x + 3

我基本上想创建一个[2,5,-8,3]的列表(认为这将是最简单的方法)作为f(x),然后为g(x)创建另一个列表,因此我可以添加它们/以后减去它们。我对如何执行此操作完全感到困惑,我希望用户立即输入整个多项式。我不希望我的程序分部分询问。谢谢:) (PS,我要出去大约半小时/ 45分钟,所以我回到家时会回到这个状态。再次感谢!)

2 个答案:

答案 0 :(得分:2)

您可以使用sympy来“理解”多项式。不过,您仍然必须手动插入乘法符号:

import re, sympy

# example
s = '2x^3 + 5x^2 - 8x + 3'
# replace juxtapostion with explicit multiplication
sp = re.sub('[0-9][a-z]', lambda m: '*'.join(m.group()), s)
sp
# '2*x^3 + 5*x^2 - 8*x + 3'
# no we can create a poly object
p = sympy.poly(sp)
p
Poly(2*x**3 + 5*x**2 - 8*x + 3, x, domain='ZZ')
# getting coefficients is easy
p.coeffs()
[2, 5, -8, 3]
# and we can do all sorts of other poly stuff 
p*p
Poly(4*x**6 + 20*x**5 - 7*x**4 - 68*x**3 + 94*x**2 - 48*x + 9, x, domain='ZZ')
...

答案 1 :(得分:0)

使用<aca< <aca>(正则表达式)来进行模式查找,然后使用['<aca<', '<aca>']来输入文本:

re

示例输出:

input