19. 파이썬 조건문 두번째 시간~

19. 파이썬 조건문 두번째 시간~

지난 18회 파이썬 포스팅에 이어 파이썬 조건문 두번째 시간을 가져보겠습니다

조건문에서 아무것도 하지 않게 설정하기

조건문을 참이나 거짓에 따라 실행하도록 정의 하다 보면 어떤 경우에는 아무것도 하지 않게 설정해야 하는 경우도 생길 수 있습니다.
다음 예를 보면

“주머니에 돈이 있으면 가만히 있고, 주머니에 돈이 없으면 카드를 꺼내라”

위처럼 가만히 있어야 하는 경우를 표현하기 위해서 사용하는 것이 pass 명령입니다

Python
>>> pocket = ['paper', 'phone', 'money']
>>> if 'money' in pocket:
...     pass
... else:
...     print("카드를 꺼내세요")
...
>>>

위 코드를 보면 pocket 리스트 안에 money 라는 문자열이 있기 때문에 if 의 다음 문장인 pass 가 수행되지만 아무것도 보여주지 않습니다.

다양한 조건 판단을 위한 elif

if 와 else 만을 사용한다면 단순 이거 아니면 저거 라는 식으로 조건에 한계가 발생합니다. 다양한 조건 판단을 하려는데 if 와 else 만 사용한다면 조건문 자체가 상당히 길어질 수 밖에 없습니다.

“주머니에 현금이 있으면 택시를 타고, 주머니에 현금은 없지만 카드가 있다면 택시를 타고, 현금도 없고 카드도 없다면 걸어 가세요.”

위 예문을 보면 조건을 판단하는 부분이 두 군데 입니다. 현금이 있는지 판단을 하고 주머니에 현금이 없지만 카드가 있는지 판단을 해야 합니다.
위 예문을 if 와 else 만으로 구현하면 다음처럼 할 수 있을 겁니다

Python
>>> pocket = ['paper', 'phone']
>>> card = True
>>> if 'money' in pocket:
...     print("택시를 타고 가세요")
... else:
...     if card:
...         print("택시를 타고 가세요")
...     else:
...         print("그냥 걸어 가세요")
...
택시를 타고 가세요

if 문 안에 else 가 있고 그 아래에 또 다시 if ~ else 문을 쓰게 됩니다.
이런 산만하고 복잡한 느낌의 if ~ else 문을 해결하기 위해 elif 라는 것이 파이썬에는 존재합니다.
elif 를 사용하여 위의 코드를 변경해 보겠습니다.

Python
>>> pocket = ['paper', 'phone']
>>> card = True
>>> if 'money' in pocket:
...     print("택시를 타고 가세요")
... elif card:
...     print("택시를 타고 가세요")
... else:
...     print("그냥 걸어 가세요")
...
택시를 타고 가세요

위의 새로 생성한 코드 처럼 elif 는 이전 조건문이 거짓일 경우 수행됩니다.
if, elif, else 를 모두 사용한다면 아래 구조처럼 됩니다

Python
if 조건문 1:
    수행할 문장 1
    수행할 문장 2
    ...
elif 조건문 2
    수행할 문장 1
    수행할 문장 2
    ...
elif 조건문 2
    수행할 문장 1
    수행할 문장 2
    ...
...
else:
    수행할 문장 1
    수행할 문장 2
    ...

if 조건문에서 elif 는 개수에 제한없이 사용이 가능합니다.

if 조건문 한 줄로 작성하기

이전에 작성했던 pass 명령을 사용한 예를 보면 if 문 다음에 한 줄의 문장이 수행이 되고, else 문 다음에도 한 줄의 문장만 수행이 됩니다

Python
>>> if 'money' in pocket:
...     pass
... else:
...     print("카드를 꺼내세요")

이런 경우에는 조금 더 코드를 간단하게 만들 수가 있습니다.

Python
>>> pocket = ['paper', 'phone', 'money']
>>> if 'money' in pocket: pass
... else: print("카드를 꺼내세요")
...

원래 if 문에서는 한 줄 하고 다음 줄 pass, 그리고 다음 줄 else 하고 다음 한 줄 문장을 작성했다면 수정한 코드에서는 if 문 콜론(:) 뒤 수행할 문장 적은 거 한 줄, else 문 콜론(:) 뒤에 수행할 문장 적은 거 한 줄 로 두줄의 문장으로 코드가 종료가 되었습니다.

조건부 표현식

Python
>>> if jumsoo >= 70:
...     m = "success"
... else:
...     m = 'failure"

위의 코드는 jumsoo 가 70 점 이상일 경우 m 이라는 변수에 success 라는 문자열을 입력하고 아닐 경우에는 failure 라는 문자열을 입력하는 코드입니다.
위 코드를 파이썬 조건부 표현식(conditional expression)을 사용해서 다음 처럼 간단하게 변경할 수 있습니다.

Python
>>> m = "success" if jumsoo >= 70 else "failure"

조건부 표현식 은 다음처럼 정의 할 수 있습니다

변수 = 조건문이_참일_경우의_값 if 조건문 else 조건문이_거짓일_경우의_값

이처럼 조건부 표현식은 가독성이 유리하고 한 줄로 작성 할 수 있어서 활용성이 좋습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.

19. 파이썬 조건문 두번째 시간~

18. 파이썬 조건문 다 아시나요?

18. 파이썬 조건문 다 아시나요?

파이썬에 대해 꾸준히 공부하면서 포스팅을 이어 나가는 중입니다.
이번 제목이 ’18. 파이썬 조건문 다 아시나요?’ 인데 오해 없으시길 바랍니다.
욕하는 제목이 아니라 순번이 18 번째 라서 그리 된 것입니다.

파이썬 조건문 이란?

앞서 살펴본 if 조건문에서 조건문 이란건 참과 거짓을 판별하는 문장임을 확인했습니다.
택시를 타냐 마냐 하는 예문에서 조건문은 money 가 됩니다.

Python
>>> money = True
>>> if money:

파이썬 비교연산자

파이썬 조건문에 비교연산자를 사용하는 방법에 대해 살펴보겠습니다.
비교연산자는 <, >, ==, !=, >=, <= 가 있습니다.

  • a < b a 가 b 보다 작다
  • a > b a 가 b 보다 크다
  • a == b a 와 b 는 같다
  • a != b a 와 b 는 같지 않다
  • a >= b a 는 b 보다 크거나 같다
  • a <= b a 는 b 보다 작거나 같다

위의 비교연산자를 사용하는 방법은 아래와 같습니다.

Python
>>> a = 3
>>> b = 2
>>> a > b
True

a 에 3 을, b 에 2 를 대입한 후 a > b 라는 조건문을 수행하면 True 를 반환합니다.
당연히 3 이 2 보다 크므로 참이기 때문입니다.

Python
>>> a < b
False
>>> a == b
False

3 이 2보다 큰데 3 < 2 라고 조건문을 수행하면 거짓이기 때문에 False 를 반환하고
마찬가지로 3 == 2 라고 하면 3과 2는 같지 않기 때문에 False 를 반환합니다.

Python
>>> a != b
True

3 과 2 는 같지 않기 때문에 참으로 True를 반환하게 됩니다.
지난번 공부 할때 는 money = True 라고 했었는데
이번에는 ‘만약 돈이 4000원 이상이 있으면 택시를 타고 그렇지 않으면 걸어 가세요.’ 라는 문장으로 프로그래밍을 해보겠습니다

Python
>>> money = 3000
>>> if money >= 4000:
...     print("택시를 타고 가세요")
... else:
...     print("그냥 걸어 가세요")
...
그냥 걸어 가세요

위 처럼 money >= 4000 이라는 조건문이 거짓이기에 else 문 다음 문장을 수행해서 ‘그냥 걸어 가세요’ 라는 문장을 출력하게 됩니다.

and, or, not

조건을 판단하기 위해서 필요한 다른 연산자로 and, or, not 이 있습니다.

  • a or b a 와 b 둘 중에 하나만 참이어도 참
  • a and b a 와 b 둘 모두 참이어야 참
  • not a a 가 거짓이면 참

예를 통해서 사용법을 알아보겠습니다

“돈이 4000 원 이상 있거나 또는 카드가 있으면 택시를 타고 그렇지 않으면 걸어 가세요.”

Python
>>> money = 3000
>>> card = True
>>> if money >= 4000 or card:
...     print("택시를 타고 가세요")
... else:
...     print("그냥 걸어 가세요")
...
택시를 타고 가세요

위 예를 보면 money 는 3000 입니다. 그리고 card 는 True 입니다.
money >= 4000 or card 이기 때문에 둘 중 하나의 조건만 참이면 참이 됩니다.
따라서 if 문 다음 문장이 ‘택시를 타고 가세요’ 가 출력이 되는 것 입니다.

in, not in

다른 프로그래밍 언어에서는 쉽게 볼 수 없는 조건문입니다.

  • a in 리스트 a not in 리스트
  • a in 튜플 a not in 튜플
  • a in 문자열 a not in 문자열

영어에서 in 의 의미는 ~ 안에 라고 해석됩니다

Python
>>> 2 in [2, 4, 6]
True
>>> 'k' not in 'summer'
True

첫 번째는 리스트 [2, 4, 6] 안에 2 라는 숫자가 있는 지를 확인하는 조건문입니다. 2 가 리스트 안에 존재하므로 True 가 리턴 됩니다.
두 번째는 k 가 summer 안에 없는가 확인하는 조건문입니다. k 가 summer 에 없으므로 역시 참 True 가 리턴 됩니다.
리스트, 문자열, 튜플 다 마찬가지로 적용이 됩니다.

그럼 앞에 택시 예제에 대입해 보겠습니다.

“만약 주머니에 돈이 있으면 택시를 타고, 없으면 걸어 가세요”

Python
>>> pocket = ['paper', 'phone', 'money']
>>> if 'money' in pocket:
...     print("택시를 타고 가세요")
... else:
...     print("그냥 걸어 가세요")
...
택시를 타고 가세요

[‘paper’, ‘phone’, ‘money’] 리스트 안에 ‘money’ 가 존재하므로 참이 됩니다.
따라서 if 바로 뒤 문장이 출력 되게 됩니다.

이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.

18. 파이썬 조건문 다 아시나요