HOWTO · Python
파이썬 여러 줄 if 조건
파이썬 여러 줄 if 조건
이 페이지의 내용
Python에서 긴 if 조건을 여러 줄로 나누려면 식을 괄호로 감싸세요. 그러면 Python은 암시적 줄 연속을 허용하므로, 각 줄 끝에 백슬래시가 필요하지 않습니다. 연속 들여쓰기는 가독성을 위해 선택됩니다. Python이 자동으로 네 칸의 공백을 추가해 주지는 않습니다. 문장의 본문은 평소대로 if 아래에 들여쓴 상태로 유지하세요.
괄호를 사용해 긴 if 조건 나누기
괄호는 한 줄에 편하게 들어가지 않는 조건에 대한 가장 명확한 기본 선택입니다. 괄호를 사용하면 의미 있는 지점에서 식을 나누고 닫는 괄호를 콜론 옆에 둘 수 있습니다. 식을 훑어보기 쉽게 만드는 연속 들여쓰기를 선택하고, 파일 안에서 같은 패턴을 일관되게 사용하세요.
불리언 연산자를 연속 줄 앞에 배치하기
PEP 8은 이항 연산자 앞에서 줄을 나눌 것을 권장하는데, 그러면 and나 or가 다음 연속 줄의 시작에 옵니다. 이렇게 하면 추가되는 각 검사를 쉽게 알아볼 수 있습니다. 이 배치는 서식 선택입니다. 괄호와 줄 바꿈은 Python이 식을 그룹화하는 방식이나 and와 or가 단락 평가하는 방식을 바꾸지 않습니다. 여러 줄 if 문에 대한 PEP 8 지침을 참조하세요.
세 가지 검사를 가진 간결한 예제가 여기 있습니다. 본문은 if에 속합니다. 괄호 안의 들여쓰기는 독자가 식을 훑어보는 데 도움이 됩니다.
plan = {"active": True, "paid": True, "seats": 4}
if (
plan["active"]
and plan["paid"]
and plan["seats"] >= 3
):
print("Eligible for the team plan.")
else:
print("Choose another plan.")
표시된 값으로는 세 가지 검사가 모두 참이므로, 프로그램은 다음을 출력합니다.
Eligible for the team plan.
혼합 논리의 경우, (is_member or has_invitation) and account_is_active와 같이 괄호를 사용해 의도한 그룹화를 보이게 하세요. 앞선 검사가 뒤의 검사를 보호해야 한다면 그 순서를 유지하세요. and와 or는 단락 평가 동작으로 왼쪽에서 오른쪽으로 평가합니다. 서식만으로는 다른 그룹화가 동등해지지 않습니다.
백슬래시는 필요할 때만 사용하기
백슬래시는 문장을 명시적으로 이어 줄 수 있지만, 괄호보다 더 취약합니다. 그 표시자는 물리적 줄의 마지막 문자여야 합니다. 그 뒤의 후행 공백이나 나중의 편집이 연속을 깨뜨릴 수 있습니다. 예를 들어, 줄은 다음 조건 앞에 if account_is_active and \로 끝날 수 있습니다. 긴 조건에는 괄호를 선호하세요. 줄 끝 의존성을 피하고 자연스러운 들여쓰기를 허용하기 때문입니다. 백슬래시는 주변 구문이 암시적 연속 맥락을 제공하지 않는 경우를 위해 남겨 두세요.
명확성이 좋아질 때 조건에 이름 붙이기
조건에 그 자체로 유용한 의미가 있거나 재사용될 때는, eligible_for_team_plan과 같은 설명적인 이름을 할당하고, 그런 다음 if eligible_for_team_plan:라고 쓰세요. 이것은 if 문에 간결하고 의미 있는 테스트를 부여하고, 주변 제어 흐름을 읽기 쉽게 만들 수 있습니다. 이름은 할당되고 사용되는 모든 곳에서 일관되게 유지하세요.
이름 붙인 변수는 스타일 선택이지 리팩터링에 반대하는 규칙이 아닙니다. 한 번만 사용되는 짧은 식의 경우, 괄호로 감싼 조건을 if 옆에 두는 것이 더 명확할 수 있습니다. 더 길거나 재사용되는 규칙의 경우, 이름이 의도를 더 잘 전달할 수 있습니다. 프로젝트의 관례를 따르고, 다른 개발자가 결정을 가장 쉽게 이해할 수 있는 형식을 선택하세요.