if문의 기본 구조
if 조건문:
수행할 문장1
수행할 문장2
...
else:
수행할 문장A
수행할 문장B
...
들여쓰기
if 조건문:
수행할 문장1
수행할 문장2
수행할 문장3
if 조건문:
수행할 문장1
수행할 문장2
수행할 문장3
위와 같이 들여쓰기가 안되어있으면 오류가 발생한다.
또한 조건문 다음에 콜론(:) 이 들어가는 것도 잊으면 안된다.
x in s, x not in s
더 나아가 파이썬은 다른 프로그래밍 언어에서 쉽게 볼 수 없는 재미있는 조건문을 제공한다.
| in | not in |
| x in 리스트 | x not in 리스트 |
| x in 튜플 | x not in 튜플 |
| x in 문자열 | x not in 문자열 |
영어 단어 in의 뜻이 "~안에"라는 것을 생각해 보면 다음 예가 쉽게 이해될 것이다.
>>> 1 in [1, 2, 3] # [1,2,3]이라는 리스트 안에 1이 있는가?
True
>>> 1 not in [1, 2, 3] # [1,2,3]이라는 리스트 안에 1이 없는가?
False
다음은 튜플과 문자열에 적용한 예시이다.
>>> 'a' in ('a', 'b', 'c')
True
>>> 'j' not in 'python'
True
[조건문에서 아무 일도 일어나지 않게 설정하고 싶다면?]
"주머니에 돈이 있으면 가만히 있고 주머니에 돈이 없으면 카드를 꺼내라"
이럴 때 사용하는 것이 바로 pass이다.
>>> pocket = ['paper', 'money', 'cellphone']
>>> if 'money' in pocket:
... pass # continue 와 같은 의미
... else:
... print("카드를 꺼내라")
...
다양한 조건을 판단하는 elif
if와 else만으로 다양한 조건을 판단하기 어렵다.
"주머니에 돈이 있으면 택시를 타고, 주머니에 돈은 없지만 카드가 있으면 택시를 타고,
돈도 없고 카드도 없으면 걸어가라"
>>> pocket = ['paper', 'cellphone']
>>> card = True
>>> if 'money' in pocket: # 주머니에 돈이 있으면 True
... print("택시를 타고가라")
... elif card: # 주머니에 돈이 없지만 카드가 있으면 True
... print("택시를 타고가라")
... else: # 그렇지 않으면
... print("걸어가라")
...
택시를 타고가라
elif는 개수에 제한 없이 사용할 수 있다.
[if문을 한 줄로 작성하기]
앞의 pass를 사용한 예를 보면 if문 다음에 수행할 문장이 한 줄이고,
else문 다음에 수행할 문장도 한 줄 밖에 되지 않는다.
>>> pocket = ['paper', 'money', 'cellphone']
>>> if 'money' in pocket:
... pass
... else:
... print("카드를 꺼내라")
...
위 예시를 바탕으로 좀 더 간략하게 코드를 작성하는 방법은 아래와 같다.
>>> pocket = ['paper', 'money', 'cellphone']
>>> if 'money' in pocket: pass
... else: print("카드를 꺼내라")
...
콜론 뒤에 if문 다음에 수행할 문장을 적어주었다.
조건부 표현식
if score >= 60:
message = "success"
else:
message = "failure"
위 코드는 score가 60이상이면 message는 "success"를 출력, 아닐 경우엔 "failure"를 출력하는 코드이다.
파이썬의 조건부 표현식을 사용하면 위 코드를 다음과 같이 간단히 표현할 수 있다.
message = "success" if score >= 60 else "failure"
# if 의 조건문이 true면 if 전에 있는 "success"를
# false면 else 다음에 있는 "failure"를 출력한다.
"left big" if 10>5 else "right small"
결과는 "left big" 출력
조건부 표현식은 가독성에 유리하고 한 줄로 작성할 수 있어 활용성이 좋다.
'Language > Python' 카테고리의 다른 글
| 점프 투 파이썬 - for문★★ (0) | 2019.07.09 |
|---|---|
| 점프 투 파이썬 - while문 (0) | 2019.07.08 |
| 점프 투 파이썬 - 변수 (0) | 2019.07.08 |
| 점프 투 파이썬 - 불 자료형 (0) | 2019.07.08 |
| 점프 투 파이썬 - 집합 자료형 (0) | 2019.07.08 |
댓글