2015-02-24 138 views
0

我試圖寫一個簡單的計算器,採用四面體的給定數量(用戶輸入他們的邊緣)和水給定的量(升),並計算如何四面體的許多可充滿水。我已經定義了計算單個四面體體積的函數,但是當我嘗試寫第二個函數(用水填充它們)時,我失敗了。蟒蛇函數參數

water = int(raw_input("water:")) #Enter the amount of water in litres 
n = raw_input("Enter the number of tetrahedrons:") 
tetrahedrons = [] 
for i in range(int(n)): 
    edge = raw_input("Enter the edge of a tetrahedron:") 
    tetrahedrons.append(int(edge)) 
    tetrahedrons.sort() 

#full_tetrahedrons = 0 # counter for the full tetrahedrons 

def fill_tetrahedron(num): 
    volume = (int(num) ** 3) // (6.0 * (2 ** 0.5)) 
    volume_in_l = volume/1000 

def tetrahedron_filled(tetrahedrons, water): 
    if water >= 0: 
     for number in tetrahedrons: 
      value = fill_tetrahedron(number) 
      water = water - value 
      full_tetrahedrons = 0 
      full_tetrahedrons += 1 
     return full_tetrahedrons 

print tetrahedron_filled(tetrahedrons, water) 

編輯:

OK,我已經解決了我的錯誤與爭論,但現在我進入什麼價值,我總是得到1作爲一個答案。

+1

您已經定義了'tetrahedron_filled'需要兩個參數,而你只用一個參數調用它。 – Iguananaut 2015-02-24 18:27:15

+0

大概你打算做'打印tetrahedron_filled(四面體,水)'而不是。 – 2015-02-24 18:28:14

回答

0

你只有通過一個函數參數tetrahedron_filled()

這個函數有兩個參數 - tetrahedronswater

+0

@David Robinson謝謝!我很笨拙.. 我現在得到一個不同的錯誤:d '文件 「new11.py」,第24行,在tetrahedron_filled full_tetrahedrons + = 1 UnboundLocalError:局部變量 'full_tetrahedrons' assignment' – 2015-02-24 19:16:53

+0

之前引用@ Anton:將'full_tetrahedrons = 0'移到循環的外部,這樣它就在'用於四面體中的數字:'之前,否則當你返回它的值時它總是'1'。 – martineau 2015-02-24 20:12:58