2013-10-25 88 views
1

我收到第14行的錯誤?我是新來的python,非常新,3天前開始。我不斷收到錯誤python 2.7

varA = 2 
varB = 1 

if varB or varA == str: 
print("string involved") 

elif varA > varB: 
print('bigger') 

elif varA == varB: 
print('equal') 

else varA < varB: 
print('smaller') # this is line 14, why am I getting an error here? 
+8

['else' clause](http://docs.python.org/2/reference/compound_stmts.html#else)不帶謂詞。用'else:'替換'else varA falsetru

+4

將來,當您遇到錯誤時,請發佈錯誤消息(整件事情,回溯),所以我們不必猜測。這一次很容易(並且速度足夠快),它不會浪費任何時間,但總的來說它會。 – abarnert

+0

今後將很有用,指出您得到的錯誤類型和/或標記出錯的線路。如果它已經是67或80,這可能是一個不同的故事,14仍然很容易算。 繼續工作:) – icedwater

回答

9

必須在倒數第二行

elif varA < varB: 

或更改

else: 

else不能用條件下使用。

順便說一句:您的第一個if可能不會做你想做的事。您寫的條件評估爲(varB) or (varA == str)。你想要做的是:

if isinstance(varA, basestring) or isinstance(varB, basestring): 
+0

如果varB == str或varA == str: – user2918250

+1

那麼邏輯更好。但它不會做你想做的事情。 'str'是一堂課。所以,如果你將'var'與'str'進行比較,只有'var'是對'str'類的引用纔會相等。 (您可以使用交互式解釋器來嘗試。)我的代碼檢查'var'是否是一個字符串實例。 –