code name blue

Python : 블록 구조 - elif문, if문 중첩 본문

Programming/Python

Python : 블록 구조 - elif문, if문 중첩

byebyeblue 2019. 4. 26. 10:51

 

elif문

elif문은 if else문을 확장한 형태이다. if else의 선택지가 if와 else의 두 가지 라면, elif 문은 가운데에 elif를 두어 if와 else에 해당하지 않는 다른 여러가지 선택지를 제공해준다.

 

if 조건1:
   명령1
elif 조건2:
   명령2
else:
   명령3

 

조건1을 만족하면 명령1을 실행하고 전체 조건문이 완료된다. 조건1이 거짓이라면 조건2로 넘어가 참일 경우 조건2를, 조건1과 2가 모두 거짓이라면 명령3을 실행한다.

 

num = 55
if num < 21:
    print("21보다 작아요")
elif num < 52:
    print("52보다 작아요")
else:
    print(num, "입니다")

위의 결과는 '55 입니다'로 나온다. num에 지정된 55라는 수가 두 조건을 모두 만족하지 않기 때문이다. 만약 num이 33이라면 두 번째 조건을 만족하여 '52보다 작아요'가 나올 것이다.

 

elif는 위와 같이 중간에 하나만 들어가지 않고 더 많이 들어 갈 수 있다. 즉, 조건이 많아질수록 그에 해당하는 elif도 늘어난다.

 

 

if문 중첩

if문의 조건에는 다양한 명령이 들어갈 수 있다. 주로 예로 보였던 print를 포함하여 다른 변수에 값을 대입할 수도 있고, 함수를 호출할 수도 있다. if문도 하나의 명령이므로 상위의 if문 안에 들어 갈 수 있다. 이처럼 같은 명령끼리 겹치는 것을 중첩(Nesting)이라고 한다.

 

woman = True
age = 25
if woman == True:
    if age >= 19:
        print("성인 여자입니다!")

 

위에서는 먼저 woman이 True인지 점검한 후, 참이면 age가 19 이상인지 점검해본다. if문끼리 중첩하면 두 가지 조건이 모두 참일 때만 print문이 실행된다.

 

woman = True
age = 25
if woman == True and age>= 19:
    print("성인 여자입니다!")

 

if and문은 두 조건을 한꺼번에 점검하고, if if문은 위에서부터 차례로 점검한다는 점에서 약간 차이가 있지만, 결과는 완전히 똑같이 나타난다. 두 구문 모두 두 가지 조건이 모두 참일 때만 명령을 실행한다.

 

 


참조

김상형, <파이썬 정복>, 2018, 한빛미디어

 

Comments