#4. 파이썬 기본 4 - 조건문
- PIA team
- 2022년 2월 8일
- 4분 분량

#4-1. if문과 else문
영어에서의 If 와 마찬가지로, 프로그래밍에서도 조건문이라는 것이 있습니다.
조건을 판단하여 그 조건에 맞는 상황을 수행하는 것입니다.
"만약 한식이면 불고기이고, 한식이 아니라면 일식이다."
라는 조건문이 있습니다. 이런 조건문을 python에서 사용한다면,
>>> Korea = True
... if Korea:
... print("불고기")
... else:
... print("일식")
이렇게 표현하면 됩니다. 해석을 해보자면,
"만약 Korea 라면, 불고기을 출력하고, 그것이 아니라면 일식을 출력하라" 는 뜻입니다.
그런데 맨 위에서 볼 수 있듯이 Korea 가 참입니다. 따라서 불고기을 출력하게 될 것입니다.

여기서 하나를 더 알아낼 수 있는데, 바로 else의 용법입니다.
조건문을 사용하고, if문이 참이 아니라면 이라는 의미를 갖고 있는 것이 바로 else문입니다.
따라서, else문은 if문 없이 단독으로 쓰일 수 없습니다.
조건문이 참일 경우에는 if문을 수행하고, 거짓일 경우에는 else문을 수행하기 때문입니다.
그리고 두 가지 특징을 더 발견할 수 있습니다.
① 들여쓰기
>>> if 조건문:
... 수행할 문장(1)
... 수행할 문장(2)
조건문을 사용할 때에는 if문 아래에 수행할 문장들을 들여쓰기를 해야합니다.
수행할 문장들이 if문 안에 포함되어 있도록 만든다고 생각하시면 될 것 같습니다.
여기서 주의해야 할 점은, 들여쓰기를 했을 때, 수행할 문장 (1)과 (2)의 너비가 같아야 한다는 것입니다. 즉, (1)과 (2)의 앞에 공백의 너비가 같아야 합니다. 보통 들여쓰기를 할 때 사용하는 방법은 두 가지입니다.
첫 번째는 공백(space bar)을 4번 사용하는 것입니다.
두 번째는 탭 키(tab)를 1번 사용하는 것입니다.
두 가지 중 어떤 방법을 쓰든 상관은 없지만, 한 문장에서 둘을 혼용하지 않는 것이 좋습니다. 한 가지 방법을 선택했다면, 끝까지 그 방법으로 밀고 가야 하는 것입니다.
② 조건문 다음에 콜론( : ) 을 사용하기
위의 예문을 확인해 보면, if 조건문이 나온 다음 마지막에 : 를 사용해 준 것을 볼 수 있습니다.
python에서는 : 을 통해 들여쓰기를 하도록 만들었기 때문에 꼭 사용해 주어야 합니다.
들여쓰기를 할 때에는 꼭 : 을 써준다고 생각하시면 앞으로도 편리할 것 같습니다.
#4-2. if문의 연산자
① 비교연산자
조건문에서 쓰는 비교연산자에 대해서 설명드리겠습니다.
비교연산자는 a<b , a>b , a==b , a!=b , a<=b , a>=b 이렇게 6가지가 있는데요,
각각 a가 b보다 작다 , a가 b보다 크다 , a와 b가 같다 , a와 b가 같지 않다 ,
a가 b보다 작거나 같다 , a가 b보다 크거나 같다 라는 의미입니다.
>>> a = 5
>>> b = 7
>>> print(a<b) # 5<7 : True
>>> print(a>b) # 5>7 : False
>>> print(a==b) # 5=7 : False
>>> print(a!=b) # 5≠7 : True
>>> print(a<=b) # 5≤7 : True
>>> print(a>=b) # 5≥7 : False
예를 들어 6가지 경우를 모두 출력해 보겠습니다. a=5 이고 b=7입니다.
옆에 참조처럼 값이 print될 것입니다.

값이 잘 출력된 것을 볼 수 있습니다.
이것을 이용하여 더 자세히 예를 들어 보겠습니다.
" 가격이 8000원 이하면 구매하고, 그렇지 않으면 구매하지 않을것이다. "
위와 같은 상황에서 표현해보겠습니다.
>>> price = 8000 # 가격이 8000원이다.
>>> if price<=8000: # 만약 가격이 8000원 이하라면
>>> print("purchase") # 구매
>>> else: # 그렇지 않으면
>>> print("not purchase") # 구매하지 않는다.
이렇게 구성하면 될 것입니다. 가격이 8000원으로 if문이 True가 될 것이므로,
값은 " purchase " 가 출력될 것입니다.

② and , or , not
a and b 라고 표현한다면, a와 b가 모두 True 이어야만 if문이 True로 평가됩니다.
a or b 라고 표현한다면, a 또는 b 둘 중 하나가 True 라면 if문이 True로 평가됩니다.
not a 라고 표현한다면, a가 False일 경우, if문이 True로 평가됩니다.
표로 정리하면 다음과 같습니다.

예문을 통해 보겠습니다.
" 가격이 5000원 이하이거나, 할인 행사 중이면 구매하고, 그렇지 않으면 구매하지 않겠다." 를
표현해 보겠습니다.
>>> price = 8000
>>> discount = True # 할인행사는 True입니다.
>>> if price<=5000 or discount:
>>> print("purchase")
>>> else:
>>> print("not purchase")
할인행사는 True이기 때문에, if문이 True로 평가되어 purchase를 print 할 것입니다.

잘 출력된 것을 볼 수 있습니다.
③ in, not in
영어에서 in의 의미(~안에)를 생각해 본다면, 쉽게 이해할 수 있을 것입니다.
>>> 1 in [1,2,3] # 1은 [1,2,3]안에 있다 -> True
>>> 3 not in [1,2,3] # 3은 [1,2,3]안에 없다 -> False
이렇게 코드를 print한다면, 윗줄은 True, 아랫줄은 False가 될 것입니다.
④ pass
조건문을 작성할 때, 아무 것도 실행시키고 싶지 않을 때가 있을 수 있습니다.
그럴 때 쓰는 것이 바로 pass 입니다.
>>> wallet = [7000, "card", "photo"]
>>> if 8000 not in wallet:
>>> pass
>>> else:
>>> print("purchase")
"만약 8000원이 지갑 안에 없다면 가만히 있고, 그렇지 않다면 구매한다" 를 표현한다면,

wallet 안에 8000원이 없기 때문에 pass 상태로 끝날 것입니다.
결국 아무 결과도 출력하지 않습니다.
추가적으로, pass문을 작성할 때, 수행할 문장을 콜론( : ) 뒤에 바로 써주면, 조금 더 짧게
코드를 짤 수 있습니다. 예를 들어 위의 pass문을 작성한다면,
>>> wallet = [7000,"card","photo"]
>>> if 8000 not in wallet: pass
>>> else: print("purchase")
이렇게 한 줄로 표현할 수 있습니다.

같은 결과가 print됨을 확인할 수 있습니다.
#4-3. elif문
elif문은 여러가지의 조건문을 판단할 때 사용합니다. 예를 들어,
"지갑 안에 8000원이 있다면 구매하고, 8000원이 없지만 카드가 있으면 구매하고, 8000원도 없고, 카드도 없으면 구매하지 않는다." 라는 문장을 코드로 표현한다면, 조건문을 2개를 사용해야 합니다. 우리가 지금까지 배운 것을 토대로 위 문장을 코드로 표현해보면
>>> wallet = [7000,"card","photo"]
>>> if 8000 in wallet:
>>> print("purchase")
>>> else:
>>> if card in wallet:
>>> print("purchase")
>>> else:
>>> print("not purchase")
위와 같이 상당히 긴 코드가 작성될 것입니다.
이렇게 if와 else문을 여러개 사용하는 긴 코드를 조금 간단하게 줄여주는 것이 elif문입니다.
위의 예문은 이렇게 표현이 가능합니다.
>>> wallet = [7000, "card", "photo"]
>>> if 8000 in wallet:
>>> print("purchase")
>>> elif "card":
>>> print("purchase")
>>> else:
>>> print("not purchase")
즉, elif는 if문이 거짓인 경우 수행됩니다. 추가적으로, elif는 if문과 else문 사이에
개수 제한 없이 여러 개를 사용할 수 있습니다.

오류없이 잘 출력됩니다.
#4-4. 조건부 표현식
>>> message = "pass" if score>=80 else "fail"
>>> print(message)
조건부 표현식은 위와 같이 조건문을 한 문장으로 표현 하는 식입니다.
조건문이 참일 경우 실행문 + if문 + else + 조건문이 거짓일 경우 실행문 의 구조로
이루어져 있으며, 조건문을 한 문장으로 표현하기 때문에 가독성이 좋고 활용성이 높습니다.

깔끔하게 잘 출력되는 것을 확인 할 수 있습니다.
댓글