파이썬 여러 줄 if 조건

Neema Muganga 2023년10월10일
파이썬 여러 줄 if 조건

Python의 if 문의 여러 줄 조건은 PEP8에서 허용되는 다양한 방법으로 제공되었습니다.

우선 여러 조건문을 한 줄에 넣으면 안 됩니다. 대신 여러 조건의 이 한 줄을 분할하고 괄호로 묶습니다.

# do not define the multiple conditions in a single line like this
if (
    firstcondition == "something"
    and secondcondition == "something else"
    and thirdcondition == "something different"
):
    # something_to_be_done
    pass

PEP8은 여러 줄의 조건문을 구분하기 위해 연속선을 사용하는 방법을 안내합니다. 이 줄은 세로로 정렬되어야 하며 새 줄의 시작 부분부터 4칸 들여쓰기로 간격을 두어야 합니다. 닫는 괄호와 콜론은 조건의 끝을 명확하게 보여줍니다.

분명히 Python에는 if와 같은 2자 키워드, 단일 공백 ​​및 여는 괄호를 결합할 때마다 4 공백 들여쓰기를 자동으로 생성하는 방법이 있습니다. 따라서 조건 나누기에 추가 들여쓰기를 추가할 필요가 없습니다.

예제 코드:

if (this_matches_condition, this_also_matches_condition):  # end of conditions
    get_something_done()

위와 같이 여러 조건에 스타일을 적용하면 코드 가독성이 좋다는 장점이 있습니다. 또한 복잡한 조건을 보다 깔끔하게 표현합니다.

andor와 같은 논리 연산자 키워드가 조건에 포함된 시나리오에서는 PEP8 가이드에 따라 연속 조건 행 앞에 논리 연산자(and, or)를 배치하는 것이 좋습니다. 이 스타일을 Knuth 스타일이라고 합니다. Python에서 설정한 자동 4칸 들여쓰기로 조건의 가독성을 높여 모든 조건을 수직으로 정렬합니다.

또한 괄호 안의 조건을 더 잘 보이게 하고 단락 평가의 이점을 가져옵니다.

예시:

if sttmt1 and (sttmt2 or sttmt3) or name == "Goodman":

    something_happens

이러한 여러 줄 조건문의 스타일을 지정하는 다른 방법은 변수를 정의하고 이러한 조건 표현식을 할당하는 것입니다. 그러나 이 방법은 후속 리팩토링을 제한하는 경향이 있으므로 완전히 권장되지는 않습니다. 그러나 변수를 사용하면 코드가 더 명확해 보이고 프로그램 제어 흐름을 더 잘 이해할 수 있습니다.

condition_list = (
    condition_one == "number1"
    and condition_two == "number2"
    and condition_three == "number3"
)

if conditions_list:
    # implement_something
    pass

else:
    # something_else _is _done
    pass

위 코드의 if 문은 전체 condition_list가 true인 경우에만 구현되도록 합니다. 그렇지 않으면 condition_list의 조건 중 하나라도 거짓일 때 다른 것이 구현됩니다.

조건 표현식을 눈에 띄게 표시하기 위해 조건 주위에 추가 괄호 쌍을 감쌀 수 있습니다.

if sttmt1 and (sttmt2 or sttmt3) or name == "Goodman":
    something_happens

관련 문장 - Python Statement