2011-01-24 2 views
3

이것은 내가 작성한 함수입니다. 요일로 수요일을 입력하면 프로그램에서 인쇄 코드를 실행할 수 없습니다. 수요일을 올바르게 작동시키기위한 올바른 코드 구문은 무엇입니까? 코드에서if 문에서 Or을 문자열과 함께 올바르게 사용하는 방법

def day(dayOfWeek): 
    if dayOfWeek == ("Monday" or "Wednesday"): 
     print("Poetry: 6-7:15 in Chem 131") 

답변

8

표현 ("Monday" or "Wednesday")는 항상 "Monday"로 평가된다. or 연산자는 첫 번째 피연산자가 evaluates to True 인 경우 먼저 시도하는 논리 or입니다. 예이면 첫 번째 피연산자를 반환하고 그렇지 않으면 두 번째 피연산자를 반환합니다. "Monday"은 "trucy"이므로 비교는 항상 "Monday"과 비교됩니다.

사용이 대신 :

if dayOfWeek in ("Monday", "Wednesday"): 
    print("Poetry: 6-7:15 in Chem 131") 
+0

"in"앞에 쉼표가 있습니까? –

+2

@Zack Shapiro :'("Monday", "Wednesday")'는 단지 하나의 튜플 일뿐입니다. 그것은 "즉시"생성됩니다. 'in'은 엘리먼트가리스트, 터플 또는 딕트에 있는지 테스트하는 데 사용됩니다. 마술은 없다. –

3

스벤에 의해 주어진 답이 작동, 그리고 아마도 가장 좋은 방법이지만, 단지 당신이 이런 식으로 할 필요가 제대로 or을 사용하는 방법을 보여 할 것입니다 :

if (dayOfWeek == "Monday") or (dayOfWeek == "Wednesday"): 
0

당신이 사용하려는 경우 ==

if dayOfWeek == "Monday" or dayOfWeek == "Wednesday": 
    print("Poetry: 6-7:15 in Chem 131") 
관련 문제