Skip to content

Latest commit

 

History

History
127 lines (96 loc) · 3.04 KB

File metadata and controls

127 lines (96 loc) · 3.04 KB

if-else

Coding을 할 때, 자주 쓰게 되는 구문중 하나인 조건문입니다. if-else를 같이 보기 전에, if 문을 어떻게 쓰는지 알아 보도록 합시다.

if

if <condition>:
    pass # pass는 아무런 동작도 하지 않겠다는 말입니다!

<condition>은 꼭 <>으로 감싸주어야 하는 것이 아닙니다. type이 bool이라면 어떠한 것이라도 올 수 있습니다.

true_data = True
false_data = False
if bool_data:
    print("checked_1")
if false_data:
    print("checked_2")
# 출력 결과
checked_1

다음과 같이 bool로 선언된 값 자체를 넣을 수도 있으며,

a = 12
if a % 4 == 0 and a % 3 == 0:
    print("checked_1")
if a == 7 or a / 5 == 2:
    print("checked_2")
# 출력 결과
checked_1

return type이 bool인 연산자를 넣을 수도 있으며,

def return_true():
    return True
def return_false():
    return False

if return_true():
    print("checked_1")
if return_false():
    print("checked_2")
# 출력 결과
checked_1

return type이 bool인 function도 넣을 수 있습니다.

else

else는 condition을 가지지 않으며, if 문에서 실행되지 않는다면 else구문을 실행합니다. 그렇기 때문에 해당 구문은 if문 당 하나의 else만 가질 수 있습니다. 또한, else 혼자 쓰일 수 없습니다.

if <condition>:
	pass
else:
    pass

위와 같은 구문을 사용하면, 만약 condition이 binary한 결과를 가지는 상황에서 사용하면 좀 더 간결하게 쓸 수 있습니다.

def is_even(num):
    if num % 2 == 0:
        return "yes"
    else:
        return "no"
print(is_even(7))
# 출력 결과
no

사실 간결하게 쓸 수 있다는 표현보다 if-else는 한 묶음으로 동작한다고 보시면 됩니다. 즉 둘 중에 하나만 실행됩니다.

Tip👀

위의 예시를 단순히 if문 두 번으로도 구현할 수 있습니다. 그러나, if문을 두 번 나누어 쓰는 경우, interpreterif문의 각 condition들을 전부 확인합니다. (해당 condition이 True인지 False인지) 결과적으로 필요하지 않은 계산을 할 수 있다는 것입니다.

그렇기 때문에 binary condition에서는 if-else 구문을 활용하시는 편이 좋습니다.

if-elif-else

else if 의 약자로서 조건문이 binary한 경우로 나뉘어 지지 않는다면 주로 사용하는 구문입니다.

def season(month):
    if month >= 3 and month <= 5:
        return "spring"
    elif month >= 6 and month <= 8:
        return "summer"
    elif month >= 9 and month <= 11:
        return "autumn"
    else:
        return "winter"
        
print(season(12))
# 출력 결과
winter

여기서도 else를 보면 ifelif의 조건에 들어가지 않는 나머지 경우(12,1,2)에 한하여 해당 구문을 실행하게 됩니다.


Back - Control flow