2017-09-14 44 views
-2

這個程序是要找到一個向量的正常化,但我不能打印的清單:無法打印列表,如何糾正錯誤?

防守功能:

def _unit_vector_sample_(vector): 
    # calculate the magnitude 
    x = vector[0] 
    y = vector[1] 
    z = vector[2] 
    mag = ((x**2) + (y**2) + (z**2))**(1/2) 
    # normalize the vector by dividing each component with the magnitude 
    new_x = x/mag 
    new_y = y/mag 
    new_z = z/mag 
    unit_vector = [new_x, new_y, new_z] 
    #return unit_vector 

主程序:

vector=[2,3,-4] 

    def _unit_vector_sample_(vector): 
     print(unit_vector) 

我怎樣才能糾正錯誤?

+0

修復您的問題實際上是一個問題,並正確地格式化您的代碼以供顯示。 – HostFission

回答

0

試試這個:

def _unit_vector_sample_(vector): 
    # calculate the magnitude 
    x = vector[0] 
    y = vector[1] 
    z = vector[2] 
    mag = ((x**2) + (y**2) + (z**2))**(1/2) 
    # normalize the vector by dividing each component with the magnitude 
    new_x = x/mag 
    new_y = y/mag 
    new_z = z/mag 
    unit_vector = [new_x, new_y, new_z] 
    return unit_vector 

vector=[2,3,-4] 
print(_unit_vector_sample_(vector)) 

打印輸出:

[0.3713906763541037, 0.5570860145311556, -0.7427813527082074] 

您需要your _unit_vector_sample函數聲明return語句。否則,你的函數將會運行,但它不能將結果返回給main。

或者你可以這樣做:正在打印

def _unit_vector_sample_(vector): 
    # calculate the magnitude 
    x = vector[0] 
    y = vector[1] 
    z = vector[2] 
    mag = ((x**2) + (y**2) + (z**2))**(1/2) 
    # normalize the vector by dividing each component with the magnitude 
    new_x = x/mag 
    new_y = y/mag 
    new_z = z/mag 
    unit_vector = [new_x, new_y, new_z] 
    print(unit_vector) 

vector=[2,3,-4] 
_unit_vector_sample_(vector) 

導致相同的輸出:在你的函數調用打印

[0.3713906763541037, 0.5570860145311556, -0.7427813527082074] 

這裏unit_vector會打印每次運行該功能時。

要使用哪一個取決於你想要做什麼。 您是否還想將函數的結果賦值給主變量,然後使用第一個解決方案(而不是直接打印函數的結果將其分配給變量)。如果不需要,您可以使用第二個選項。