점프 투 파이썬 - if문★
Language/Python

점프 투 파이썬 - if문★

뉴비뉴 2019. 7. 8.

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

댓글

💲 추천 글