2013-10-25 4 views
1

14 번 줄에 오류가 발생합니까? 나는 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 else 절] (http://docs.python.org/2/reference/compound_stmts.html#else)는 술어를 사용하지 않습니다. 'else varA falsetru

+4

앞으로 오류가 발생하면 추측 할 필요가 없도록 오류 메시지 (모든 것을 추적 표시)를 게시하십시오. 이번에는 언제든지 낭비하지 않아도 되기는 쉽지만 (falsetru은 충분히 빠름), 일반적으로 그렇게 할 것입니다. – abarnert

+0

향후 어떤 종류의 오류가 발생했는지 표시하고 오류가 발생한 행을 표시하는 것이 유용 할 것입니다. 14는 다른 이야기일지도 모른 67 세 또는 80 세인 경우에 아직도 셀 수 있습니다. 계속 작업하십시오. – icedwater

답변

9

당신은

else: 

else

elif varA < varB: 

또는 두 번째 - 마지막 줄을 변경해야합니다는 조건으로 사용할 수 없습니다.

한편 : 귀하의 첫 번째 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'이 문자열 인스턴스인지 여부를 검사합니다. –