2016-12-15 207 views
0

我需要使用3個不同的目標函數(下面)和我定義的函數findLength來查找曲線長度。我通過它跑我不能得到任何數字誰能告訴我什麼是錯了,它這個代碼,我很新的蟒蛇,這是學校分配Python找到一條曲線長度

def showLength(targetFunc, minPoints, maxPoints): 
    while minPoints <= maxPoints: 
     x_ = (targetFunc(minPoints)[0][0]) 
     y_ = (targetFunc(minPoints)[1]) 
     length = findLength(x_, y_) 

     print('Length of the curve of the function %s ' % targetFunc.__name__) 
     print("#POINTS  LENGTHS") 
     print(" %f    %.4d" % (minPoints, length) ) 

     minPoints = minPoints * 2 


def findLength(xs,ys): 
    xVal = np.array(xs) 
    yVal = np.ndarray(ys) 
    length = np.sqrt((xVal - (xVal-1))**2 + (yVal - (yVal - 1))**2) 
    return length 


def xSinx(numPoints): 
    MIN = -20 
    MAX = 20 
    xValues = np.linspace(MIN, MAX, numPoints) 
    yValues = xValues * np.sin(xValues) 

    return xValues, yValues 


def halfCircle(numPoints): 
    MIN = -5 
    MAX = 5 
    xValues = np.linspace(MIN, MAX, numPoints) 
    yValues = np.sqrt(25 - xValues ** 2) 

    return xValues, yValues 


def fractionalPowers(numPoints): 
    assert type(numPoints) is int and numPoints > 1, "invalid numPoints" 
    MIN = 0 
    MAX = 100 
    xValues = np.linspace(MIN, MAX, numPoints) 
    yValues = np.array(xValues**0.25 + (xValues**(1/3)) + np.sqrt(xValues)) 

    return xValues, yValues 
+0

你所定義的功能,但你不執行它們。 – furas

回答

-1

我不知道你是如何運行的代碼,但如果您只是按列出的方式運行腳本,則不會得到任何結果。你的腳本定義了一堆函數,但不叫它們。

要運行findLength(),你可以添加以下到腳本的底部:

xdata = [0, 1, 2] 
ydata = [3, 2, 6] 

result = findLength(xdata, ydata) 

print "The result is: %d" % result 

或更好:

if __name__ == "__main__": 
    xdata = [0, 1, 2] 
    ydata = [3, 2, 6] 

    result = findLength(xdata, ydata) 

    print "The result is: %d" % result 
+0

你應該問,但你不明白的問題 – eyllanesc

+0

@eyllanesc:我的理解是,tkim提出了一個關於如何運行Python代碼的問題。我在回答中解決了這個問題(而不是爲他/她解決問題)。你能否澄清爲什麼你覺得我不明白原來的問題? –