[Python] 조건문 if
22 Jan 2020
Reading time ~3 minutes
조건문 if
if
는 특정조건을 만족하는 경우 수행할 작업이 있는 경우에 사용합니다.
-
if, elif, else
의 키워드를 이용해서 표현하며 각 키워드 블록에 종속된 코드는 들여쓰기로 표현합니다. - 모든 블록 시작 줄의 끝에는
콜론( : )
을 적어주어야 합니다. - 기본적으로 if의 조건은 불리언으로 나타납니다.
if 6 >= 5:
print('6 is greater than 5')
print('Yeah, it\'s true')
print('This code does not belong to if statements')
# 출력:
6 is greater tahn 5
Yeah, it's true
This code does not belongs to if statements
if 6 == 5:
print('6 is greater than 5')
print('Yeah, it\'s true')
print('This code does not belong to if statements')
# 출력:
This code does not belong to if statements
and, or, not
조건문에 사용되는 조건의 경우, 통상적으로 불리언이기 때문에 and, or, not
이 사용 가능합니다.
- and, or, not 로직의 적용
- True and True : True
- True and False : False
- False and True : False
- False and False : False
- True or True : True
- True or False : True
- False or True : True
- False or False : False
- not True : False
- not False : True
- 적용의 우선순위 :
not > and > or
a, b, c = 10, 8, 11
# b는 8이기 때문에 아무것도 출력되지 않는다.
if a == 10 and b == 9:
print('딩동댕')
if a == 10 or b == 9:
print('딩동댕')
# 출력 :
딩동댕
# and 가 문저 고려되므로 " a or (b and c) " 로 보면 된다.
# 하지만 괄호를 잘 사용하는 것이 알아보기 좋은 코드
if a == 10 or b == 9 and c == 12:
print('딩동댕')
# 출력 :
딩동댕
# or를 and 보다 먼저 고려하고 싶으면 괄호로 묶어줘야 한다.
# 이 문장도 출력결과는 없습니다.
if ( a == 10 or b == 9 ) and c == 12:
print('딩동댕')
# 이 문장도 출력결과는 없습니다.
if not a == 10 :
print('a is not ten')
if 의 조건이 불리언이 아닌 경우
일반적으로는 조건문에 True, False인 불리언이 위치하지만 실수, 정수, 문자열 등 기본 타입도 조건에 사용이 가능합니다.
# False로 간주되는 값들
None
0
0.0
''
[] # 빈 리스트
{} # 빈 딕셔너리
() # 빈 튜플
set() # 빈 집합
# 위의 값들 외에는 True로 간주됩니다.
# 0이 아닌 숫자는 True
if 3 :
print('0이 아닌 숫자는 True로 인식됩니다.')
# 0과 빈 리스트는 False로 간주됩니다.
# 아래의 코드들은 출력결과가 없습니다.
a = 0
if a :
print('3 3333')
b = []
if b :
print('3 3333')
if, else
if
가 아닐 경우, 적용할 내용을 설정하고 싶으면 else
를 사용합니다.
이 경우, if 조건이 True인 경우, if 블록의 코드가 수행, False인 경우 else 블록의 코드가 수행됩니다.
다만, if 와 else 사이에는 다른 코드를 삽입할 수 없습니다.
# 짝수인 경우에는 2를 나눈 값을 출력
# 홀수인 경우에는 1을 더한 값을 출력
a = 9
if a % 2 == 0 : # 짝수인지 판별
print(a / 2)
else :
print(a + 1)
# 출력:
10
elif
조건이 여러 개인 경우에, 다음 조건들을 elif
블록에서 적어줍니다.
이 경우, 각 조건을 확인 후 True인 조건의 코드 블록을 실행한 후, 전체 if, elif, else
구문을 종료합니다.
a = 18
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')
# 출력:
a % 4 is 2
# elif가 아니라 if 로 이어 작성하면 개벌 if 를 다 거친다
a = 16
if a % 4 == 0:
print('a is divisible by 4')
if a % 3 == 0:
print('a is divisible by 3')
if a % 2 == 0:
print('a is divisible by 2')
else:
print('beep')
# 출력:
a is divisible by 4
a is divisible by 2
중첩 조건문(nested condition)
조건문 if 안에 다른 if 문을 중첩하여 작성할 수 있습니다.
a = 10
b = 9
c = 8
if a == 10:
if c == 8:
if b == 8:
print('a is ten b is eight')
else:
print('a is ten and b is not eight')
# 출력:
a is ten and b is not eight
Reference
- 패스트캠퍼스 파이썬 강의