Python에서 if 문으로 조건 분기를 작성하는 방법

사업

파이썬에서 if 문을 사용하여 조건 분기를 설명합니다.

  • if 문의 기본 사항(if, elif, else)
  • 비교 연산자 등으로 조건을 지정하십시오.
  • 번호, 목록 등으로 조건을 지정합니다.
  • 논리 연산자(and, or, not)를 사용하여 여러 조건 또는 부정 지정
  • 새 줄 및 여러 줄의 조건식

한 줄에 조건 분기를 설명하는 삼항 연산자도 있습니다. 다음 기사를 참조하십시오.

if 문의 기본 사항(if, elif, else)

if 문의 기본 형식은 다음과 같습니다.

if Conditional expression 1:
    `Processing to be performed if Expression 1 is True.`
elif Conditional expression 2:
    `Processing to be performed when expression 1 is false and expression 2 is true.`
elif Expression 3:
    `Process when expression 1 and 2 are false and expression 3 is true.`
...
else:
    `Processing when all conditionals are false.`

“elif”는 C 및 기타 언어의 “else if”에 해당하며 “elif”의 수에는 제한이 없습니다.

조건식이나 false가 필요하지 않은 경우 처리가 하나만 있는 경우 “elif” 및 “else” 블록을 생략할 수 있습니다.

비교 연산자 등으로 조건을 지정하십시오.

비교 연산자와 같이 bool 유형(true, false)을 반환하는 연산으로 조건을 지정합니다.

파이썬 비교 연산자는 다음과 같습니다

운영자결과
x < yx가 y보다 작으면 참
x <= yx가 y보다 작거나 같으면 참
x > yx가 y보다 크면 참
x >= yx가 y보다 크거나 같으면 true
x == yx와 y 값이 같으면 참
x != yx 및 y 값이 같지 않으면 truex is yx와 y가 같은 객체이면 참x is not yx와 y가 같은 객체가 아니면 truex in yx가 y에 포함되어 있으면 truex not in yx가 y에 포함되지 않은 경우 true

예시. 편의상 def 문으로 함수로 정의한다.

def if_test(num):
    if num > 100:
        print('100 < num')
    elif num > 50:
        print('50 < num <= 100')
    elif num > 0:
        print('0 < num <= 50')
    elif num == 0:
        print('num == 0')
    else:
        print('num < 0')

if_test(1000)
# 100 < num

if_test(70)
# 50 < num <= 100

if_test(0)
# num == 0

if_test(-100)
# num < 0

다음은 Python 고유의 방식으로 작성할 수 있습니다. 자세한 내용은 다음 문서를 참조하십시오.
a < x < b

def if_test2(num):
    if 50 < num < 100:
        print('50 < num < 100')
    else:
        print('num <= 50 or num >= 100')

if_test2(70)
# 50 < num < 100

if_test2(0)
# num <= 50 or num >= 100
  • #ERROR!
  • !=

위는 값의 비교입니다. 개체 ID를 비교하려면 다음을 사용하십시오.

  • is
  • is not

예를 들어 정수와 부동 소수점 숫자를 비교할 때 “==”는 값이 같으면 true를 반환하지만 “is”는 서로 다른 객체이기 때문에 false를 반환합니다.

i = 10
print(type(i))
# <class 'int'>

f = 10.0
print(type(f))
# <class 'float'>

print(i == f)
# True

print(i is f)
# False

목록이나 문자열에 특정 요소(문자)가 포함되어 있는지 여부를 조건으로 만드는 것도 가능합니다.

  • in:포함하다
  • not in:~를 포함하지 않는
def if_test_in(s):
    if 'a' in s:
        print('a is in string')
    else:
        print('a is NOT in string')

if_test_in('apple')
# a is in string

if_test_in('melon')
# a is NOT in string

번호, 목록 등으로 조건을 지정합니다.

if 문의 조건식은 숫자, 목록 또는 bool 유형(true, false)이 아닌 기타 개체일 수 있습니다.

if 10:
    print('True')
# True

if [0, 1, 2]:
    print('True')
# True

Python if 문의 조건식에서 다음 객체는 false로 간주됩니다.

0, 빈 문자열, 목록 등을 나타내는 숫자는 거짓으로 간주됩니다. 다른 모든 것은 사실로 간주됩니다.

객체가 어떻게 판단되는지는 bool()로 확인할 수 있습니다.

print(bool(10))
# True

print(bool(0.0))
# False

print(bool([]))
# False

print(bool('False'))
# True

이것은 예를 들어 목록이 비어 있을 때 단순히 프로세스를 작성하는 데 사용할 수 있습니다.

def if_test_list(l):
    if l:
        print('list is NOT empty')
    else:
        print('list is empty')

if_test_list([0, 1, 2])
# list is NOT empty

if_test_list([])
# list is empty

위의 예에서 볼 수 있듯이 문자열에서 비어 있지 않은 모든 문자열은 true가 되기 때문에 ‘False’ 문자열도 true입니다.’ ‘True’ 또는 ‘False’와 같은 특정 문자열을 1,0으로 변환하려면 distutils.util 모듈에서 strtobool()을 사용합니다.

논리 연산자(and, or, not)를 사용하여 여러 조건 또는 부정 지정

논리 연산자(and, or, not)는 여러 조건의 논리 결합, 논리 분리 및 부정을 처리하는 데 사용할 수 있습니다.

운영자(결과(if 문의 조건식에서)
x and yx와 y가 모두 참이면 참
x or yx 또는 y가 참이면 참
not xx가 참이면 거짓, x가 거짓이면 참
def if_test_and_not(num):
    if num >= 0 and not num % 2 == 0:
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_not(5)
# num is positive odd

if_test_and_not(10)
# num is NOT positive odd

if_test_and_not(-10)
# num is NOT positive odd

실제로 “x 및 y” 및 “x 또는 y”는 True 또는 False를 반환하지 않고 x 또는 y를 반환합니다. if 문의 조건식에 사용되는 한 True 또는 False로 평가되므로 걱정할 필요가 없습니다. 자세한 내용은 다음 문서를 참조하십시오.

and 및/또는 여러 번 사용할 수 있습니다.

def if_test_and_not_or(num):
    if num >= 0 and not num % 2 == 0 or num == -10:
        print('num is positive odd or -10')
    else:
        print('num is NOT positive odd or -10')

if_test_and_not_or(5)
# num is positive odd or -10

if_test_and_not_or(10)
# num is NOT positive odd or -10

if_test_and_not_or(-10)
# num is positive odd or -10

새 줄 및 여러 줄의 조건식

여러 조건식을 “and” 또는 “or”로 연결하여 사용하고 각 줄이 길어지면 조건식을 끊고 여러 줄에 작성해야 하는 경우가 있습니다.

줄 바꿈은 백슬래시를 사용하거나 전체 줄을 괄호로 묶어 만들 수 있습니다.

def if_test_and_backslash(num):
    if num >= 0 \
       and not num % 2 == 0:
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_backslash(5)
# num is positive odd

def if_test_and_brackets(num):
    if (num >= 0
        and not num % 2 == 0):
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_brackets(5)
# num is positive odd

백슬래시를 사용하여 원하는 만큼 줄을 깰 수 있습니다. 마찬가지로 괄호 안에서 줄을 여러 번 깰 수 있습니다. 들여쓰기 제한이 없습니다.

이것은 if 문뿐만 아니라 Python 코드의 모든 곳에서 사용할 수 있는 기술입니다.