"돈이 있으면 택시를 타고, 돈이 없으면 걸어간다."
우리에게 일어날 수 있는 상황 중 하나이다. 이렇게 프로그래밍에서 조건을 판단하여 해당 조건에 맞는 상황을 수행하는 데 쓰는 것이 바로 if문이다.
>>> money = True
>>> if money:
... print("택시를 타고 가라")
... else:
... print("걸어가라")
...
택시를 타고 가라
money에 True를 입력했으므로 money는 참이다. 따라서 if문 다음 문장이 수행되어 '택시를 타고 가라'가 출력된다.
if 조건문:
수행할 문장1
수행할 문장2
...
else:
수행할 문장A
수행할 문장B
...
조건문을 테스트해서 참이면 if문 바로 다음 문장들을 수행하고, 조건문이 거짓이면 else문 다음 문장을 수행하게 된다. else문은 if문 없이 독립적으로 사용할 수 없다.
들여쓰기는 if문에 속하는 모든 문장에 들여쓰기를 해주어야 한다.
if 조건문:
수행할 문장1
수행할 문장2
수행할 문장3
#올바르게 들여쓰기 한 경우
if 조건문:
수행할 문장1
수행할 문장2
수행할 문장3
#'수행할 문장2'를 들여쓰기하지 않아 오류발생
if 조건문에서 "조건문"은 참과 거짓을 판단하는 문장이다.
if money = True
에서 조건문인 money는 True이므로 조건이 참이 되어 if문 다음 문장을 수행할 수 있게 된다.
조건문의 비교연산자에 대한 설명이다.
if문에서는 비교연산자를 다음 예와 같이 사용할 수 있다.
>>> money = 2000
>>> if money >= 3000:
... print("택시를 타고 가라")
... else:
... print("걸어가라")
...
걸어가라
다음 예시를 설명하면 "만약 3000원 이상의 돈을 가지고 있으면 택시를 타고 그렇지 않으면 걸어가라" 이다.
위의 예시에서 money가 2000이므로 money >= 3000
조건문이 거짓이 된다. 그러므로 else문의 다음 문장이 수행된다.
>>> money = 2000
>>> card = True
>>> if money >= 3000 or card:
... print("택시를 타고 가라")
...else:
... print("걸어가라")
...
택시를 타고 가라
위의 예시는 "돈이 3000원 이상 있거나 카드가 있다면 택시를 타고 그렇지 않으면 걸어 가라" 이다.
money는 2000이지만 card가 True이므로 money >= 3000 or card
조건문이 참이 된다. 따라서 if문 다음 '택시를 타고 가라' 문장이 출력된다.
>>> 1 in [1, 2, 3]
True
# [1, 2, 3]이라는 리스트 안에 1이 있는가?
# 1은 [1, 2, 3] 안에 있으므로 True를 돌려준다.
>>> 1 not in [1, 2, 3]
False
# [1, 2, 3] 리스트 안에 1이 없는가?
# 1은 [1, 2, 3] 안에 있으므로 거짓이 되어 False를 돌려준다.
다음 예시는 택시 예제에 in을 적용한 것이다.
>>> pocket = ['paper', 'cellphone', 'money']
>>> if 'money' in pocket:
... print("택시를 타고 가라")
... else:
... print("걸어가라")
...
택시를 타고 가라
['paper', 'cellphone', 'money'] 리스트 안에 'money'가 있으므로 'money' in pockey
은 참이 된다.
"주머니에 돈이 있으면 택시를 타고, 주머니에 돈은 없지만 카드가 있으면 택시를 타고, 돈도 없고 카드도 없으면 걸어 가라."
위 문장을 elif를 사용하여 코드로 옮기면 다음과 같다.
>>> pocket = ['paper', 'cellphone']
>>> card = True
>>> if 'money' in pocket:
... print("택시를 타고가라")
... elif card:
... print("택시를 타고가라")
... else:
... print("걸어가라")
...
택시를 타고가라
if <조건문>:
<수행할 문장1>
<수행할 문장2>
...
elif <조건문>:
<수행할 문장1>
<수행할 문장2>
...
elif <조건문>:
<수행할 문장1>
<수행할 문장2>
...
...
else:
<수행할 문장1>
<수행할 문장2>
...
if, elif, else의 기본 구조이다. elif는 개수에 제한 없이 사용할 수 있다.
if score >= 60:
message = "success"
else:
message = "failure"
위 코드는 score가 60 이상일 경우 message에 문자열 "success"를, 아닐 경우에는 "failure"를 대입한다.
다음 코드에 조건부 표현식을 사용하면 더 간단하게 표현할 수 있다.
message = "success" if score >= 60 else "failure"
조건부 표현식은
조건문이 참인 경우
if 조건문
else 조건문이 거짓인 경우
로 정의한다.