파이썬 조건문에 대한 모범 사례
이 글은 파이썬에서 조건문을 사용하는 모범 사례를 설명합니다.
YouTube Video
파이썬 조건문에 대한 모범 사례
파이썬에서 if 문은 조건 분기를 구현하기 위한 기본 구조이며, 코드 가독성과 유지보수성에 큰 영향을 미칩니다. 여기서 우리는 if 문을 사용하는 모범 사례에 대해 자세히 논의하겠습니다.
명확한 조건식을 사용하세요
조건 표현식을 간결하고 명확하게 작성하고, 중복된 문장은 피하세요.
1condition = True
2
3### Bad Example
4if condition == True:
5 pass
6
7### Good Example
8if condition:
9 pass- 파이썬에서는
if condition:를 작성하여 조건이 참임을 나타낼 수 있습니다.
여러 조건 결합하기
여러 조건을 결합할 때, and 또는 or를 사용하세요. 그러나 조건식이 복잡해지면 가독성이 저하될 수 있으므로 다음과 같은 조정을 고려하세요:.
1age = 15
2is_student = True
3
4### Bad Example
5# Complex condition
6if (age > 18 and age < 65) or (is_student and age > 15):
7 pass
8
9### Good Example
10# Improving readability
11is_working_age = 18 < age < 65
12is_eligible_student = is_student and age > 15
13
14if is_working_age or is_eligible_student:
15 pass- 조건을 분리하고 변수에 할당함으로써 가독성을 향상시킬 수 있습니다.
and/or 단락 평가
and나 or를 사용하는 조건 표현식에서 결과가 왼쪽 값만으로 결정될 수 있는 경우, 단락 평가가 발생하여 오른쪽은 평가되지 않습니다. 이 점을 이해하면 불필요한 처리를 피하고 오류를 방지할 수 있습니다.
1user = None
2def expensive_check():
3 return True
4
5# Example of short-circuiting with 'and'
6if user and user.is_active:
7 # If user is None, user.is_active will NOT be evaluated
8 print("Active user found.")
9
10# Example of short-circuiting with 'or'
11if user.is_admin or expensive_check(user):
12 # If user.is_admin is True, expensive_check will NOT be called.
13 print("Access granted.")
14else:
15 print("Access denied.")- 단락 평가를 활용하면 처리 효율성과 안정성을 높일 수 있습니다.
and와 or의 우선순위
and가 or보다 우선순위가 높습니다. 따라서 조건을 단순히 결합하면 의도하지 않은 결과를 얻을 수 있습니다. 의도를 명확히 하기 위해 괄호를 사용하는 것이 중요합니다.
1age = 15
2is_student = True
3
4### Unclear example
5# This is interpreted as: age > 18 and (age < 65 or is_student)
6if age > 18 and age < 65 or is_student:
7 pass
8
9### Clear example
10# Explicit parentheses make the intended logic obvious
11if (age > 18 and age < 65) or is_student:
12 pass- 괄호를 사용하면
and와or의 우선순위를 명확히 할 수 있어, 예상치 못한 버그의 위험을 줄일 수 있습니다.
Truthy와 Falsy에 대해 이해하기
파이썬에서는 다음 값들이 False로 평가됩니다:.
없음거짓- 숫자
0(예:0.0포함) - 빈 시퀀스 타입 (예: 빈 리스트, 튜플, 문자열)
- 예시:
[],(),""
- 예시:
- 빈 딕셔너리
- 예시:
{}
- 예시:
이를 활용하면 조건식을 단순화할 수 있습니다.
1items = [1, 2, 3]
2
3### Bad Example
4if len(items) > 0:
5 pass
6
7### Good Example
8if items:
9 passelif 와 else의 적절한 사용
여러 조건을 평가할 때는 elif를 사용하세요. 끝에 기본 동작을 정의하기 위해 else를 사용하세요.
1score = 80
2
3if score >= 90:
4 grade = "A"
5elif score >= 80:
6 grade = "B"
7elif score >= 70:
8 grade = "C"
9else:
10 grade = "F"else는 필수는 아닙니다. 모든 조건이 충족되면 생략할 수 있습니다.- 조건문의 순서에 주의하고 중복 없이 논리적으로 배열하세요.
중첩의 깊이를 제한하세요
if 문을 깊게 중첩하면 코드 가독성이 떨어집니다.
1def access_resource():
2 return True
3
4### Bad Example
5def deep_nest(user, resource):
6 if user.is_authenticated:
7 if user.has_permission:
8 if resource.is_available:
9 access_resource()
10
11### Good Example
12def early_return(user, resource):
13 if not user.is_authenticated:
14 return
15 if not user.has_permission:
16 return
17 if not resource.is_available:
18 return
19
20 access_resource()- 조기 반환을 사용하면 중첩을 줄이고 코드를 더 간결하게 만들 수 있습니다.
한 줄로 작성된 if 문은 피하세요
if문을 한 줄로 작성하는 것이 가능하지만, 이는 가독성을 떨어뜨릴 수 있습니다.
1condition = False
2def do_something():
3 return True
4
5### Bad Example
6if condition: do_something()
7
8### Good Example
9if condition:
10 do_something()- 한 줄 if문은 짧은 조건이나 동작에만 허용되며, 너무 장황한 코드는 피해야 합니다.
삼항 연산자나 or로 간소화하기
간단한 조건 분기에서는 삼항 연산자나 or를 사용하면 코드를 더 간결하게 만들 수 있습니다. 하지만 과도하게 사용하면 코드의 가독성이 떨어질 수 있으므로, 단순하고 직관적인 조건에만 사용하는 것이 좋습니다.
1is_admin = True
2input_name = None
3
4# Regular if statement
5if is_admin:
6 role = "Administrator"
7else:
8 role = "User"
9
10# Simplified using an inline if
11role = "Administrator" if is_admin else "User"
12
13# Use 'or' to provide a default value
14name = input_name or "Guest"- 단순한 조건에서는 삼항 연산자나
or를 사용하면 코드를 더 짧고 이해하기 쉽게 만들 수 있습니다.
조건식을 캐싱하기
비용이 많이 드는 계산이나 함수 호출을 포함한 조건식은 변수에 캐싱하여 성능을 향상시킬 수 있습니다.
1def expensive_function():
2 pass
3
4def another_expensive_function():
5 pass
6
7### Bad Example
8if expensive_function() and another_expensive_function():
9 pass
10
11### Good Example
12result1 = expensive_function()
13result2 = another_expensive_function()
14if result1 and result2:
15 pass요약
Python의 if 문은 간단하고 강력한 도구이지만 잘못 사용하면 코드가 복잡하고 읽기 어려워질 수 있습니다. 여기에서 소개된 모범 사례를 채택함으로써 코드의 가독성, 유지보수성, 그리고 효율성을 향상시킬 수 있습니다.
위의 기사를 보면서 Visual Studio Code를 사용해 우리 유튜브 채널에서 함께 따라할 수 있습니다. 유튜브 채널도 확인해 주세요.