1. codition (조건문) 기본
- 특정 조건을 만족하는 경우에나 수행할 작업이 있는 경우 사용
- 모든 조건은 boolean으로 표현 된다.(예외 사항은 아래에서 살펴보자.)
- if, elif, else 키워드가 사용됨
- 조건문의 경우 if, elif, else 블록에 종속된 코드는 들여쓰기로 표현 가능하다.
- 즉 아래코드에서와 같이, 조건문 아래에 들여쓰기된 2줄의 코드만이 조건문의 조건에 따라 수행될 수도, 수행되지 않을 수도 있는 코드라고 할 수 있음.
# <in>
if 6 >= 5:
print('6 is greater than 5')
print('Yeah, it is true')
print('This code is not belongs to if statements')
# <out>
6 is greater than 5
Yeah, it is true
This code is not belongs to if statements
Logical AND, OR, NOT
- 조건문에 사용되는 조건의 경우, boolean이기 때문에 논리식 AND, OR, NOT이 사용가능하다.
- AND : and
- OR : or
- NOT : not
우선순위
if의 조건이 bool이 아닌 경우
- 일반적으로 조건문에는 bool이 주로 위치한다.
- 하지만 정수, 실수, 문자열 리스트 등 기본 타입도 조건에 사용 가능
- False로 간주되는 값 (각 type의 default값)
- None
- 0
- 0.0
- ‘’
- [ ] → 빈 리스트
- () → 빈 튜플
- {} → 빈 딕셔너리
- set() → 빈 집합
- 그 밖에는 모두 Ture로 간주한다.
# <in>
a = []
if a:
print('print')
a = [1]
if a:
print('print')
# <out>
print
2. else 사용
- if가 아닌 경우, 나머지 조건을 표현하고 싶다면 바로 아래 else 블록을 사용한다.
- 이 경우, if조건이 True인 경우, if 블록의 코드가 수행, 거짓인 경우 else 블록의 코드가 수행된다.
💡 주의 할 점 : if와 else사이에 다른 코드 삽입은 불가능.
# 짝수인 경우에는 2로 나눈 값을 출력하고
# 홀수인 경우에는 1을 더한 값을 출력해라
# <in>
a = 12
if a % 2 ==0: # 짝수인지 판별
print(a / 2)
else:
print(a + 1)
# <out>
6.0
3. 조건이 여러개인 조건문 만들기 elif
- 조건이 여러개인 경우, 다음 조건을 elif 블록에 명시 가능
- 이 경우, 각 조건을 확인 후, True인 조건의 코드 블락을 실행한 후, 전체 if, elif, else구문을 종료
- 조건문을 사용할 때에는 if 이후, 0개 이상의 elif를 사용 가능하며, 0개 또는 1개의 else를 사용 가능하다.
# <in>
a = 17
if a % 4 == 0:
print('a is divisible by 4')
elif a % 4 == 1:
print('a % 4 is 1')
elif a % 4 == 2:
print('a % 4 is 2')
else:
print('a % 4 is 3')
# <out>
a % 4 is 1
4. 중첩 조건문(nested condition)
- 조건문의 경우 중첩하여 작성이 가능하다.
- 중첩의 의미는 depth(깊이)로 생각할 수 있으며, depth의 제한은 없다.
# <in>
a = 10
b = 9
c = 8
if a == 10:
if c == 8:
if b == 8:
print('a is ten and b is 8')
else:
print('a is ten b is not 8')
# <out>
a is ten b is not 8