2014-09-25 85 views
0

我正在做一個計算機編程類的介紹,並在其中使用python。它一直說我的功能沒有在Python中定義

我的任務是編寫一個名爲paint.py的程序,它將確定用矩形地板繪製棚屋牆壁的成本。假設棚子沒有窗戶,那麼油漆每加侖40美元。一加侖佔地300平方英尺。提示用戶輸入棚屋的尺寸。使用名爲paint_cost的函數,將用戶輸入作爲參數並返回繪製棚屋牆壁的成本。以貨幣形式表達成本。

我非常努力地想着如何去做。我在我的Python書中一遍又一遍地研究和閱讀了這一章。所以如果任何人都可以請幫助我。

def paint_cost(price): 
    return (dimen/300) * 40 
def main(): 
    dimen = input('Enter the dimensions of the shed: ') 
    print('Your cost of painting will be $', paint_cost(price)) 
main() 
+0

如果我運行此代碼,它不告訴我函數未定義。它確實告訴我'NameError:name'價格'未定義'。 「價格」顯然並沒有在任何地方定義,並且可能不是一種功能。 (順便說一句,這就是爲什麼你應該發佈實際的錯誤信息,而不僅僅是描述它。) – abarnert 2014-09-25 23:29:37

+0

事實上,如果你修復了兩個_other_錯誤,那麼你將會得到一個關於'retun'函數沒有被定義的錯誤,因爲這個錯字恰好使你的return語句看起來像一個表達式,並且調用了一個名爲'retun'的函數在其中... – abarnert 2014-09-25 23:32:38

+0

@Marius,意思是'retun' – 2014-09-25 23:34:19

回答

0

錯誤在你原來的代碼:

  • 2號線:retun應該return
  • paint_cost功能刪除price,因爲你在網上計算它2.
  • 替換它與dimen

def paint_cost(dimen): 
    cost = (dimen/300) * 40 
    return cost 
def main(): 
    dimen = int(input('Enter the dimensions of the shed: ')) 
    print 'Your cost of painting will be $ %s' % str(paint_cost(dimen)) 
main() 
+0

沒錯,但他甚至沒有那麼遠。 – abarnert 2014-09-25 23:28:38

+0

哇,我沒有看到,但它仍然說: NameError:name'price'is not defined – Redblaster13 2014-09-25 23:29:21

+0

@ Redblaster13:是的,正如Padraic指出的那樣,您的代碼中至少有3個重大錯誤;很難讓任何人都無法猜測你會先看到哪一個沒有運行它......稍做改動,這個將會是'SyntaxError',並且阻止你進入'NameError' ... – abarnert 2014-09-25 23:30:48

-1

在你行:

print('Your cost of painting will be $', paint_cost(price)) 

price尚未確定。

通常Python會給出什麼是錯的一個很好的說明,因爲它沒有爲我這裏的時候,我跑了這一點:

NameError: global name 'price' is not defined 

還有其他的問題,而是通過自己的方式工作,要特別注意的回溯。

1

我覺得這是更接近你正在嘗試做的事:

def paint_cost(dimen): 
    return (dimen/300.) * 40 # calculates cost based on dimension 
def main(): 
    dimen = int(input('Enter the dimensions of the shed: ')) ] # cast input as an integer 
    print('Your cost of painting will be ${}'.format(paint_cost(dimen)))# pass the dimensions to paint_cost and print using `str.format` 
main() 

錯誤在你原來的代碼:

retun應該是return這麼一個語法錯誤

(dimen/300) * 40dimen只存在在main函數中有這樣一個未定義的錯誤

paint_cost(price)價格未定義,所以另一個未定義的錯誤

+0

啊,非常感謝你沒有意識到我應該把尺寸作爲參數。 – Redblaster13 2014-09-25 23:36:26

+0

不用擔心,不客氣 – 2014-09-25 23:42:27

相關問題