• 2020. 6. 24.

    by. 윈썸지니

    반응형

    어느 문으로 들어가야 할지 찾아 볼까요?

    지난 포스팅까지는 파이썬의 자료형에 대한 내용을 알아 보았습니다.

     

    이제는 파이썬의 기초 문법에서 제어문을 다룰 예정 입니다.

    제어문은 보통 조건문과 반복문으로 나뉠 수 있습니다.

     

    이번 포스팅은 이중 조건문에 해당하는 if 문에 대한 내용입니다.

    다른 프로그램 언어를 배우신 분이면  이미 아시겠지만 다른 언어와 형식만 약간 다를 뿐 내용은 동일합니다.

     

    기본적인 if 문의 형식 입니다.

    if 안에 if 있을 수 있습니다.  파이썬의 문법에 맞게 들여쓰기를 잘 해야 합니다.

    참고로 if 안에 if ~ else 를 중첩 할 수 있지만 너무 많이 중첩하는 것은 프로그램의 가독성을 떨어뜨리고 그리 좋은 코딩 방식은 아닙니다.

     

    조건문은 이전 포스팅을 참고해  주세요.

    [IT 이야기 공간/프로그램 언어 및 Database] - 파이썬 조건문 – 비교 논리 연산자

     

    파이썬 조건문 – 비교 논리 연산자

    지난 포스팅까지는 파이썬의 자료형에 대한 내용을 알아보았습니다.. 이제는 파이썬의 기조 문법에서 제어문을 다룰 예정입니다. 제어문을 알아보려면 먼저 제어문에서 사용하는 조건이라는 ��

    jinisbonusbook.tistory.com

    if  < 조건문>  :

        조건문이 참일 경우 실행할 명령문

        조건문이 참일 경우 실행할 명령문

    else :

        조건문이 거짓일 경우 실행할 명령문

        조건문이 거짓일 경우 실행할 명령문

     

    else 가 없고 if 문만 있을 수 있습니다. elseif 가 당연히 있어야 합니다.   

    조건문을 여러 개 사용하고 싶을 경우는 아래와 같은 형식으로 사용합니다.

     

    if  < 조건문1>  :

        조건문1이 참일 경우 실행할 명령문

        조건문1이 참일 경우 실행할 명령문

    elif < 조건문2>  :

        조건문2가 참일 경우 실행할 명령문

        조건문2가 참일 경우 실행할 명령문

    elif < 조건문3>  :

        조건문3이 참일 경우 실행할 명령문

        조건문3이 참일 경우 실행할 명령문

    else :

        위의 조건문 모두 해당 사항이 없을 경우(거짓) 실행할 명령문

        위의 조건문 모두 해당 사항이 없을 경우(거짓) 실행할 명령문

     

    참고로, 위 문장은 다른 프로그램 언어에서 case 문으로 대체 가능하지만 파이썬은 case 문이 없습니다.

     

    예제를 통해서 기본 구조를 알아 봅니다.

    ## 기본 구조로 if 문만 작성 할 수도 있습니다. X10 print 하고 그렇지 않으면 아무것도 안 합니다.

    >>> x = 10

    >>> if x == 10 :

      print( 'x is 10')

    x is 10

    ## 기본 구조로 X 10  x is 10 을 출력하고 그렇지 않으면  x is not 10 을 출력합니다.

    >>> if x == 10 :

      print( 'x is 10')

    else :

      print( 'x' is not 10 )

     

    x is 10

    조건을 여러 개 사용하는 것으로 elif 를 사용합니다.

    처음 조건을 만족하므로 x 10 보다 크거나 같음을 출력하고 다음 조건도 만족하지만 조건이 만족하는 if를 만난 후 구문을 빠져나갑니다. 따라서 두번째 elif x >= 5 는 수행을 안 합니다.

    여기서 힌트를 얻으면 가장 참일 확률이 높은 구문을 먼저 써 주는 것이 좋습니다.

    >>> if x >= 10 :
    print( 'x는 10 보다 크거나 같음')
    elif x >= 5 :
    print ( 'x는 5보다 크거나 같음')


    x는 10 보다 크거나 같음
    >>> 

    ## if 안에 if를 사용 가능합니다.
    >>> x = 10
    >>> y = 10
    >>> if x >= 10:
    if y >=20 :
    print( '1번')
    elif y > 10 :
    print( '2번')
    else:
    print( '3번')


    3번
    >>> 
    >>> x = [ 1, 3, 5 ]
    >>> if 4 in x:              ## 1. 조건을 만족하지 않으므로 else 로 감
    print( '1번' )
    else:                          ## 2
    if 1 in x: print( '2번')   ## 3. 만족하므로 2번을 출력
    else: print('3번')         ## 3번에서 만족하므로 if 문을 빠져 나와서 수행 안함
    print('4번')                ## 2 번에 해당하는 구문이므로 수행

    2번
    4번
    >>> 

     

    If 문을 한 라인으로 표현하고 싶다면 아래와 같이 바로 연결해서 사용하면 됩니다.

    Case 문과 같이 사용하는 경우는 두번째 표현 방식이 개인적인 생각으로는 가독성이 좀더 좋은 것 같습니다.

    >>> x = 4
    >>> if x == 1:
    print( '1번')
    elif x == 2 :
    print( '2번')
    elif x == 3 :
    print('3번')
    elif x == 4 : 
    print('4번')
    else:
    print('5번')

    4번

    ## 위와 동일한 문장입니다.
    >>> if x == 1: print( '1번')
    elif x == 2 : print( '2번')
    elif x == 3 : print('3번')
    elif x == 4 : print('4번')
    else: print('5번')

    4번

    if 구문에서 아무것도 수행하고 싶지 않다고 하여 어떤 명령문도 넣어 주지 않으면 구문 오류가 발생합니다.

    이때는 pass 를 사용하면 아무런 행동을 하지 않습니다.

    >>> if x:
    else : print( '1번')
    SyntaxError: expected an indented block
    >>> if x : pass
    else : print( '1번’)

    >>> 

    이번 포스팅은 제어문if 구문에 대해 알아보았습니다.

    다음 포스팅은 제어문 중 반복문에 대한 내용을 포스팅 예정입니다.

    반응형