raw_input獲取的輸入是字符串,不能直接用np.array,需要用split進(jìn)行切分,然后強(qiáng)制轉(zhuǎn)化成數(shù)值類(lèi)型,才能用plot函數(shù)
創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比銅川網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式銅川網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋銅川地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴(lài)。
我把你的代碼稍微修改了一下,可能不太漂亮,不過(guò)能運(yùn)行了
x=[1,2,3]
a = raw_input('function')
a = a.split(' ')#依空格對(duì)字符串a(chǎn)進(jìn)行切分,如果是用逗號(hào)分隔,則改成a.split(',')
b = []
for i in range(len(a)):#把切分好的字符強(qiáng)制轉(zhuǎn)化成int類(lèi)型,如果是小數(shù),將int改為float
b.append(int(a[i]))
plt.plot(x, b, label='x', color="green", linewidth=1)
pre
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
def func(x):
return -(x-2)*(x-8)+40
x=np.linspace(0,10)
y=func(x)
fig,ax = plt.subplots()
plt.plot(x,y,'r',linewidth=2)
plt.ylim(ymin=20)
a=2
b=9
ax.set_xticks([a,b])
ax.set_xticklabels(['$a$','$b$'])
ax.set_yticks([])
plt.figtext(0.9,0.05,'$x$')
plt.figtext(0.1,0.9,'$y$')
ix=np.linspace(a,b)
iy=func(ix)
ixy=zip(ix,iy)
verts=[(a,0)]+list(ixy)+[(b,0)]
poly = Polygon(verts,facecolor='0.9',edgecolor='0.5')
ax.add_patch(poly)
x_math=(a+b)*0.5
y_math=35
plt.text(x_math,y_math,r"$\int_a^b(-(x-2)*(x-8)+40)dx$",horizontalalignment='center',size=12)
plt.show()
/pre
可以定義一個(gè)類(lèi),類(lèi)里定義很多函數(shù)(主要用它做什么)或直接定義函數(shù)在一個(gè)py文件中
在另一個(gè)文件中導(dǎo)入這個(gè)那個(gè)py包,調(diào)用類(lèi)和方法
就是封裝了