본문 바로가기
[Python]/python 개념

조건문

by 코드몽규 2022. 1. 20.
반응형

조건문이란 

 

if 조건문에서 "조건문"이란 참과 거짓을 판단하는 문장을 말한다.

 

 


비교연산자

이번에는 조건문에 비교연산자(<, >, ==, !=, >=, <=)를 쓰는 방법에 대해 알아보자.

 

다음 표는 비교 연산자를 잘 설명해 준다.

x < y x가 y보다 작다
x > y x가 y보다 크다
x == y x와 y가 같다
x != y x와 y가 같지 않다
x >= y x가 y보다 크거나 같다
x <= y x가 y보다 작거나 같다

 

비교연산자 사용 예시

>>> x = 3
>>> y = 2
>>> x > y
True
>>>

3이 2보다 크기 때문에 참으로 True를 돌려준다.

>>> x < y
False

반대로 위 조건문은 거짓이기 때문에 False를 돌려준다.

>>> x != y
True

x와 y는 같지 않다. 따라서 위 조건문은 참이다.


and, or, not

조건을 판단하기 위해 사용하는 다른 연산자로는 and, or, not이 있다. 각각의 연산자는 다음처럼 동작한다.

 

연산자 설명

x or y x와 y 둘중에 하나만 참이어도 참이다
x and y x와 y 모두 참이어야 참이다
not x x가 거짓이면 참이다

연산자 사용법 예시

"돈이 3000원 이상 있거나 카드가 있다면 택시를 타고 그렇지 않으면 걸어 가라."
>>> money = 2000
>>> card = True
>>> if money >= 3000 or card:
...     print("택시를 타고 가라")
... else:
...     print("걸어가라")
...
택시를 타고 가라
>>>

 

money는 2000이지만 card가 True이기 때문에 money >= 3000 or card 조건문이 참이 된다.

따라서 if문 다음 ‘택시를 타고 가라’ 문장이 출력된다


x in s, x not in s

 파이썬은 다른 프로그래밍 언어에서 쉽게 볼 수 없는 재미있는 조건문을 제공한다.

x in 리스트 x not in 리스트
x in 튜플 x not in 튜플
x in 문자열 x not in 문자열

영어 단어 in의 뜻이 "~안에"라는 것을 생각해 보면 다음 예가 쉽게 이해될 것이다.

>>> 1 in [1, 2, 3]
True
>>> 1 not in [1, 2, 3]
False

앞서 사용한 예시에 in을 적용해 보자.

>>> pocket = ['paper', 'cellphone', 'money']
>>> if 'money' in pocket:
...     print("택시를 타고 가라")
... else:
...     print("걸어가라")
...
택시를 타고 가라
>>>

['paper', 'cellphone', 'money'] 리스트 안에 'money'가 있으므로 'money' in pocket은 참이 된다. 따라서 if문 다음 문장이 수행된다.

 

[조건문에서 아무 일도 하지 않게 설정하고 싶다면?] 

가끔 조건문의 참, 거짓에 따라 실행할 행동을 정의할 때, 아무런 일도 하지 않도록 설정하고 싶을 때가 있다.

 

다음 예를 보자.

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

이럴 때 사용하는 것이 바로 pass이다. 

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

pocket 리스트 안에 money 문자열이 있기 때문에 if문 다음 문장인 pass가 수행되고 아무 결과값도 보여 주지 않는다.


 2개 이상의 조건을 주고 싶을 때 사용하는 elif 

"주머니에 돈이 있으면 택시를 타고, 주머니에 돈은 없지만 카드가 있으면 택시를 타고, 돈도 없고 카드도 없으면 걸어 가라.

위 문장을 보면 조건을 판단하는 부분이 두 군데가 있다. 먼저 주머니에 돈이 있는지를 판단해야 하고 주머니에 돈이 없으면 다시 카드가 있는지 판단해야 한다.

>>> pocket = ['paper', 'cellphone']
>>> card = True
>>> if 'money' in pocket:
...      print("택시를 타고가라")
... elif card: 
...      print("택시를 타고가라")
... else:
...      print("걸어가라")
...
택시를 타고가라

조건문 if 'money' in pocket: 이 거짓일때 elif문이 수행된다. 위 코드에서는 'money'는 pocket[]에 없고 card=true 이기 때문에 "택시를 타고가라"가 프린트 되었다.

반응형

댓글