2011-12-27 4 views
-2

하나의 변수를 여러 값과 비교할 수 없습니다.Python2.6 IF 사용 AND

예를 들어 이라는 변수는 SleepBinlog과 달라야합니다.

if (query != "Sleep") or (query != "Binlog Dump"): 
    print query[4] 

위의 코드를 사용하면 제 스크립트가 작동하지 않습니다. 당신이 나를 도울 수?

감사합니다.

+2

제목에 "AND OR"이 (가) 있습니다. '또는'대신'와'를 써서 표현을 해봤습니까? –

+0

아마도 내가 문제를 해결하기 위해 "and"를 사용해야 할 것 같아서 ... 아마도 내가 틀 렸습니다 ... – user1110801

+0

아니요, 맞습니다. 당신이 필요합니다. 그리고 당신은 왜 필요하다고 생각합니까? '? –

답변

0

어쩌면 명백한 것을 사용할 수 있습니까?

if _query not in ('Sleep', 'Binlog'): 
    print _query 

아마도 가장 Pythonic 관용어이기도합니다.

+0

감사합니다. Tanriol – user1110801

2

생각해보십시오. 그것도 둘 다 동일하지 않을 수 있습니다 - - query항상"Sleep" 또는 "Binlog Dump" 중 하나 동일하지에이고 or 표현은 사실이다 인수의 중 하나 마찬가지입니다. 그래서 당신의 상태는 항상 사실입니다! 당신이 원하는 것은 :

if query != "Sleep" and query != "Binlog Dump": 

을하지만 첫 번째는 좀 더 명확하게 의도를 표현하기 때문에 쉽게 읽을 수 : 적용된 일부 부울 대수와

if not (query == "Sleep" or query == "Binlog Dump"): 

, 이것은 다음과 논리적으로 등가 인 경우 검색어는 두 용어 중 하나가 아닙니다. 이것은 쉽게 필요한 경우 추가의 측면으로 확장되는 이점을 갖고, 또한 틀림없이 더욱 판독 첫번째 예보다

if query not in ("Sleep", "Binlog Dump"): 

:

이 조건

는 또한 명확하게 기록 될 수있다. 또한 테스트중인 변수 이름을 반복하지 않아도됩니다.