• Home
  • About
    • SevillaBK's Blog photo

      SevillaBK's Blog

      Data Science Blog

    • Learn More
    • Github
  • Posts
    • All Posts
    • Python
    • ML & DL
    • All Tags

[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
  • 패스트캠퍼스 파이썬 강의


Pythonif Share Tweet +1