2013-10-25 39 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'是否是一个字符串实例。 –