지금까지의 if조건문은 한가지 조건문만을 테스트하는 간단한 구조였다.
하지만 실제로는 여러가지 조건문들을 테스트 해야하는 더 복잡한 케이스 들이 많다.
and, or, not
조건을 판단하기 위해 사용하는 다른 연산자로는 and, or, not이 있다. 각각의 연산자는 다음처럼 동작한다.
and 의 반대의 경우가 or 이다. or 는 테스트 하는 조건들중 하나만 True 이여도 if 구문의 코드가 실행이 된다.
"돈이 3000원 이상 있거나 카드가 있다면 택시를 타고 그렇지 않으면 걸어 가라."
money = 2500
card = True
if money >= 3000 or card:
print("택시를 타고 가라!")
else:
print("걸어가...")
결과 -- "택시를 타고 가라!"
외모가 준수하고, 노래를 잘하고, 춤을 잘춘다.
if appearance == "준수" and good_singer == True and dance == "Good":
print("훌륭한 아이돌이 될 수 있는 가능성이 높습니다!")
and 구문을 사용할 때 염두해야 할 점은 and 구문을 사용하여 테스트 하는 모든 조이 True 일때만 if 구문의 코드가 실행이 된다는 점이다. 조건문들 중 하나라도 False 이면 실행이 안된다.
and 와 or 을 같이 사용할 수 도 있다.
예를들어, 어떤 은행의 전세대출 우대자 조건은 "30대 미만의 성인 청년 이거나 1년 수입이 1억 미만은 신혼 기혼자"일 경우 다음과 같이 파이썬으로 표현 할 수 있다.
if (age <30 and age >19) or (married == true and income < 100000000):
print("WeCode 은행의 전세대출 우대자 이십니다")
월(month)와 일(day), 이 2가지를 input 값으로 받았을때, 2019년의 해당 월과 일의 다음 날의 월과 일을 출력해주세요.
예를 들어, month 는 3이고 일은 31이면 2019년 3월 31일의 다음날은 4월 1일 임으로 다음과 같이 출력이 되면 됩니다 (월 과 일을 각각 다른 줄에 출력 해주세요).
4
1
hint
경우를 생각해보자.
month = int(input())
day = int(input())
if day==31: #day가 30일이 아닌 31일인 경우로 잡아보자.
print(month+1)
print(1)
elif day==28 and month==2: #day가 28일로 끝나는 2월의 경우
print(3)
print(1)
else: #나머지는 그대로
print(month)
print(day+1)
테스트 통과는 되지만... 결과적으로 오류가 생길수밖에 없는 코딩....
day가 30일인 경우에는 이 코딩은 오류가 발생한다..
빠밤!