본문 바로가기

파이썬/파이썬 언어 공부

파이썬 프로그래밍(10) - if 문

#조건문

1. 정의

  참과 거짓을 판단하는 문장을 말한다.

>>> money = True
>>> if money:
>>>	...

  이때 조건문은 머니가 된다.(여기서 'money'는 불 자료형으로 1과 0, 'True', 'False'만을 담는 자료형이다)

변수 money는 True이므로 조건문이 실행된다.

 

2. 비교 연산자

  조건문의 참, 거짓을 판단할 때 비교 연산자를 사용한다. 이는 알아두는 것이 좋다.

비교연산자 설명
x < y x가 y보다 작다.
x > y x가 y보다 크다.
x == y x와 y가 같다.
x != y x가 y보다 같지 않다.
x >= y x가 y보다 크거나 같다.
x <= y x가 y보다 작거나 같다.

  비교 연산자를 사용하면 코드에 알맞는 값을 True 또는 False로 리턴한다.

>>> x = 3
>>> y = 5
>>> x > y
False
>>> x != y
True
>>> x <= y
True

 

3. 연산자 and, or, not

  조건문을 사용할 때 도움을 줄 수 있는 연산자다.

연산자 설명
x or y x와 y 둘 중 하나라도 참이면 참이다.
x and y x와 y 모두 참이어야 참이다.
not x x가 거짓이면 참이다.
#주어진 점심 시간에 무엇을 먹을까?
>>> money = 10000
>>> time = 60
>>> if money > 7000 and time > 30:
>>>	print("돈까스를 먹자")
>>> else:
>>>	print("삼각김밥을 먹자")

  이 경우 돈도 7,000원이 있고 시간도 30(분)이상이므로 if 문의 '돈까스를 먹자'가 출력된다.

 

4. in, not in

  리스트에서 사용할 수 있는 조건문이다.

x in (리스트, 튜플, 문자열 중 선택) x not in (리스트, 튜플, 문자열 중 선택)
>>> 3 in [1, 3, 5]
True
>>> 3 not in [1, 3, 5]
False

 

 

 

#IF 문

1. 기본 구조

>>> if 조건문:
>>>	코드1
>>>	코드2
>>>	...
>>> else:
>>>	코드a
>>>	코드b
>>>	...

  조건문은 실행할 때 먼저 if 문의 조건을 확인한다. 참이면 if 문의 코드들(코드1, 코드2, ...)을 실행하고 거짓이라면 else 문의 코드들(코드a, 코드b)을 실행한다.

 

2. 들여쓰기

  if 문을 만들 때는 'if 조건문:' 다음 코드(if문에 해당하는 코드들만)부터 if 문에 속하는 코드들을 들여쓰기를 해주어야 한다.

>>> if 조건문:
>>>	코드1
>>>	코드2
>>>	코드3

  이때 들여쓰기를 동일하게 맞춰주지 않거나 하지 않을경우 오류가 발생한다.

#하면 안되는 예시
>>> if 조건문:
>>>	코드1
>>>		코드2
>>>코드3

  여기서 맞는 코드는 코드1만 해당하고 코드2와 코드3은 오류를 유발한다.

 

3. 콜론(:)

  if 조건문이나 다른 조건문을 사용할 때 반드시 콜론(:)을 붙여야 한다.(특별한 이유는 없는듯 하다)

>>> if 조건문:  #콜론(:) 필수!
>>>	코드1
>>>	코드2
>>>	코드3

 

4. if 문 한줄로 작성

  if 문 다음에 수행할 문장이 한 줄이라면 한줄로 작성해줄 수 있다.

>>> money = 10000
>>> if moeny >= 7000: print("돈까스를 먹자")
>>> else: print("삼각김밥을 먹자")

  한줄로 작성하더라도 if 조건문: 은 유지된다.

 

 

#elif 문

1. 기본 구조

>>> if 조건문:
>>> 	코드1
>>> 	코드2
>>> 	...
>>> elif 조건문:
>>> 	코드a
>>> 	코드b
>>> 	...
>>> ...
>>> else:
>>> 	코드A
>>> 	코드B
>>> 	...

  elif는 제한 없이 반복할 수 있으며 elif = else + if 이므로 조건문을 작성해야 한다. 앞의 점심을 먹는 방법을 더 복잡하게 생각한 예시를 보자

# 시간이 30분 이상있고 돈도 7,000원 이상이라면 돈까스,
# 시간이 없다면 햄버거를 먹고 돈이 없다면 삼각김밥을 먹자
>>> time = 30
>>> money = 10000

>>> if time >= 30 and money >= 7000:
>>> 	print("돈가스를 먹자")
>>> else:
>>> 	if time < 30:
>>> 		print("햄버거를 먹자")
>>> 	else:
>>> 		print("삼각김밥을 먹자")

  if와 else만으로 코드를 만들면 간단하지만 코드가 길어진다. 이런 다중 조건 판단을 위해 'elif'가 존재한다.

# 시간이 30분 이상있고 돈도 7,000원 이상이라면 돈까스,
# 시간이 없다면 햄버거를 먹고 돈이 없다면 삼각김밥을 먹자
>>> time = 30
>>> money = 10000

>>> if time >= 30 and money >= 7000:
>>> 	print("돈가스를 먹자")
>>> elif time < 30:
>>> 	print("햄버거를 먹자") 
>>> else:		
>>> 	print("삼각김밥을 먹자")

  훨씬 보기도 좋고 코드도 정렬이 잘 되어 보인다.

 

 

 

 

 

 

(해당 자료는 '점프 투 파이썬'을 참고하여 정리하였습니다)