그동안 이상하게 python을 사용해서 개발할 때 one-line 코딩을 거의 사용하지 않았었다. 그러나 python으로 알고리즘 공부를 하다보니 점점 클린 코드에 대한 욕심이 생기면서 간단한 if문에서는 one-line 코딩을 습관화하고자 생각했다. 따라서 이번 포스팅에서는 python if문을 한줄(one-line) 코딩하는 법에 대해 알아보겠다.
사실 elif나 else가 포함되지 않는 if문은 한줄 코딩을 한 것과 그렇지 않은 것에 큰 차이가 있지 않다. 그러나 간단한 만큼 한줄로 코딩하는 것이 더 깔끔해 보인다고 생각한다.
a = 1
if a == 1:
result = "일치"
print(result) # 일치
a = 1
if a == 1: result = "일치"
print(result) # 일치
형식: if {조건}: 결과
굳이 주의할 점이라면 아래에 나오는 형식과는 다르게 : 뒤의 '\n' 만 삭제해주는 형식이라는 것이 있다.
else가 포함된 if문을 한줄 코딩하는 방법에 대해 알아보자.
a = 1
if a == 1:
result = "일치"
else:
result = "불일치"
print(result) # 일치
a = 1
result = "일치" if a == 1 else "불일치"
print(result) # 일치
형식: 변수 = A if {조건} else B
여기서 A는 조건에 부합(if)할 시의 결과, B는 조건에 부합하지 않을(else) 시의 결과를 뜻한다.
elif, else가 포함된 if문을 한줄 코딩하는 방법에 대해 알아보자.
a = 1
if a == 1:
result = "일치"
elif a == 2:
result = "a는 2"
else:
result = "불일치"
print(result) # 일치
a = 1
result = "일치" if a == 1 else "a는 2" if a == 2 else "불일치"
print(result) # 일치
형식: 변수 = A if {조건1} else B if {조건2} else C
elif에 대한 if-else문이 한 번 더 추가되면서 조금 헷갈릴 수 있는데,
변수 = A if {조건1} else (B if {조건2} else C)
이렇게 묶어서 보면 더 보기 편할 거다. 애초에 가독성을 위해서 위와 같이 괄호로 묶어서 표현하는 것도 좋을 것 같다.
애초에 조건이 많아질 수록 one-line 코딩은 가독성이 떨어질 수 있기 때문에 조건이 많거나 내용이 긴 if-elif-else문에서는 one-line 표현을 남용하지 말아야 한다.
보통 다른 언어에서는 아래와 같은 방식으로 삼항 연산자를 지원하는 경우가 많다.
변수 = {조건} ? [true_value] : [false_value]변수 = {조건1} ? [true_value] : {조건2} ? [true_value] : [false_value]one-line if문 작성 방법에 대해 상황별로 정리해보았다.
위에서도 살짝 언급했지만, one-line 표현은 조건이 너무 많거나 코드가 너무 길어질 때 사용하면 오히려 가독성이 떨어질 수 있으니 적절히 사용하도록 하자.