if문에서 여러 줄에 걸쳐서 조건문을 쓰려면 어떻게 하죠?

발생하는 문제 및 실행환경

if에 조건을 여러 줄에 걸쳐서 쓸 때 어떤 방법을 써야 되나요?

if (cond1 == 'val1' and cond2 == 'val2' and
    cond3 == 'val3' and cond4 == 'val4'):
    do_something

이렇게 쓰는 건 cond3do_something이랑 같은 줄에 있어서 코드가 더러워 보여요

파이썬에서는 보통 4칸 띄우는 걸로 들여쓰기를 하니까 이렇게도 써 봤는데

if (    cond1 == 'val1' and cond2 == 'val2' and
        cond3 == 'val3' and cond4 == 'val4'):
    do_something

이것도 좀 이상합니다. PEP에서 정해진 규칙이 있나요?

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    관련한 스타일 가이드는 PEP0008에 있습니다.

    보통은 두 번째 줄부터 들여 쓰기 하는 방식을 많이 쓰고

    if (cond1 == 'val1' and cond2 == 'val2' and 
           cond3 == 'val3' and cond4 == 'val4'):
        do_something
    

    괄호로 묶어놨기 때문에

    if (   
           cond1 == 'val1' and cond2 == 'val2' and 
           cond3 == 'val3' and cond4 == 'val4'
       ):
        do_something
    
    #혹은
    
    if    (cond1 == 'val1' and cond2 == 'val2' and 
           cond3 == 'val3' and cond4 == 'val4'):
        do_something
    

    으로 써도 됩니다.

    스타일 가이드에서는 권장하지 않지만 괄호를 제거한 후 슬래시(\)를 쓰는 것도 가능합니다

    if cond1 == 'val1' and cond2 == 'val2' and \
       cond3 == 'val3' and cond4 == 'val4':
        do_something
    
    #혹은
    
    if cond1 == 'val1' and cond2 == 'val2' and \
                           cond3 == 'val3' and \
                           cond4 == 'val4':
        do_something
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.