Python 无法将存储的变量插入Numpy正弦函数
我试图从html页面表单中获取一个条目,并将其传递给cgi脚本,在该脚本中获取该条目并给出该条目的正弦函数。 条目将是:x或x**2或1-x/x 我一直在工作,直到我尝试在np.sin中使用变量lala。它返回一个空白页 下面是一些代码Python 无法将存储的变量插入Numpy正弦函数,python,variables,numpy,matplotlib,cgi,Python,Variables,Numpy,Matplotlib,Cgi,我试图从html页面表单中获取一个条目,并将其传递给cgi脚本,在该脚本中获取该条目并给出该条目的正弦函数。 条目将是:x或x**2或1-x/x 我一直在工作,直到我尝试在np.sin中使用变量lala。它返回一个空白页 下面是一些代码 import cgi import cStringIO import matplotlib.pyplot as plt import numpy as np form = cgi.FieldStorage() def doit(): lala = f
import cgi
import cStringIO
import matplotlib.pyplot as plt
import numpy as np
form = cgi.FieldStorage()
def doit():
lala = form.getvalue('x')
x = np.linspace(-np.pi,np.pi,100)
y = np.sin(lala)
format = "png"
sio = cStringIO.StringIO()
plt.plot(x, y)
plt.axis('tight')
plt.savefig(sio, format=format)
data_uri = sio.getvalue().encode('base64').replace('\n', '')
img_tag = '<img src="data:image/png;base64,{0}" alt="sucka" />'.format(data_uri)
print("Content-type: text/html\n")
print("<title>Try Ageen</title>")
print("<h1>Hi</h1>")
print(img_tag)
print("<h1>This is the sine of %s</h1>" %xx)
doit()
正如我所说,它将在html代码中返回变量lala,如下所示:例如,这是x的正弦
它不允许我将lala变量插入y=np.sinHERE。即使lala的返回值是x。form.getvalue'x'返回一个字符串。在传递到np.sin之前,必须将其转换为numpy数组。由于脚本崩溃,您将得到一个空白页。您从lala=form.getvalue'x'中得到了什么?打印出来。很可能是一个字符串,比如“x”
np.sin需要一个数字或数组
In [785]: np.sin(1)
Out[785]: 0.8414709848078965
In [786]: x=np.linspace(-np.pi, np.pi, 4)
In [787]: x
Out[787]: array([-3.14159265, -1.04719755, 1.04719755, 3.14159265])
In [788]: np.sin(x)
Out[788]:
array([ -1.22464680e-16, -8.66025404e-01, 8.66025404e-01,
1.22464680e-16])
要在plt.plotx、y中工作,y应具有与x相同的元素数,例如y=np.sinx。我没看到你做过那样的计算
使用字符串“x”的np.sin'x将不起作用
如果要使用html表单中的字符串来选择用于打印的数组,我建议使用字典映射:
dd = {'x': x, 'x2': x**2, 'x1': x/(1-x)}
y = sin(dd[lala])
尝试所有这些。我一编词典,那一页就翻不起来了。拉拉返回“x”,是的。y=np。sindd[lala]不工作。谢谢你的回复。