2015-09-04 27 views
0

下面是代碼。變量在文件前面定義python3中的變量undefined

if selc == "1": 
    unitPrice = a2 
elif selc == "2": 
    unitPrice = b2 
elif selc == "3": 
    unitPrice = c2 
elif selc == "4": 
    unitPrice = d2 
elif selc == "5": 
    unitPrice = e2 
print (unitPrice) 

終端說unitPrice是undefined,我該如何解決這個問題?

+0

我我的眼睛不要欺騙我;但是你的變量'unitprice'是拼寫錯誤,所以可能是這樣。另一種方法是在評估條件之後「unitPrice」沒有被宣佈。 – Poriferous

+0

你的權利,一些大寫字母是關閉的,我希望這不是一個壞問題 –

+0

@JohnStivers那麼問題是大寫? – Zizouz212

回答

1

首先,你需要與你的變量名一定的一致性。看起來您來自'舊'語言背景(例如C或Java)。在Python中,變量以下劃線命名。所以unit_price與CamelCase unitPrice相反。

接下來,請確保始終聲明unit_price。有這樣做的方法有兩種:

unit_price = 0 
if something: 
    unit_price = 1 

或者,確保UNIT_PRICE在您if塊總是定義,通過包括與else塊:

if something == 0: 
    unit_price = 0 
elif something == 1: 
    unit_price = 1 
else: 
    unit_price = 2 

希望幫助:)

+0

哈哈,你是對的Java。事實證明,我應該問if語句來檢查整數而不是字符串。它現在的作品:) –

+0

@JohnStivers哈,哈哈。太棒了。很高興我能幫上忙 :) – Zizouz212

0

首先,如果你複製/粘貼你的代碼,那麼unitPrice和unitprice是不一樣的。檢查你的大小寫。

如果仍有問題,則可能是您沒有在上面聲明unitPrice變量。不是100%確定python範圍,但你很可能需要在if語句上方聲明該變量。

unitPrice = defaultValue 
if selc == "1": 
    unitPrice = a2 
. 
. 
. 
print(unitPrice) 
+0

我解決了這個問題,並在語句上方聲明瞭變量,但它仍然顯示相同的錯誤 –

+2

您對unitPrice的聲明是錯誤的。那什麼都不做。 – Zizouz212

+0

哎呀。忘了初始化。固定。 – SWPhantom