if, elif, else statements (조건분기문)
프로그램의 flow control를 담당함. (loop문과 함께)
Flow control을 위한 Control Structures에 대한 내용은 다음 URL을 참고.
http://ds31x.blogspot.com/2023/07/basic-control-structures-and-control.html
C언어의 if
, else if
, else
와 매우 유사함.
설명
다음은 이들 사용을 위한 간략한 예이다.
if condition: # if statement
if_block # if statement's code block
elif condition: # elif statement
elif_block # elif statement's code block
else: # else statement
else_block # else statement's code block
if
,elif
,else
는 keywords 임.condition
은 boolean value로 reduction 되는 expression을 가리킴
(and
,or
등으로 여러 condition이 묶이더라도 최종적으로는 하나의 boolean value로 reduction 됨.if
,elif
,else
statements은 compound statements이며 첫 라인이:
으로 끝나야 한다.- 이후 해당 condition 등이
True
일 경우 실행될 code block이 위치한다
(else
의 경우 condition이 없음을 주의). if
statement는 위의 예에서 첫 라인과 둘째 라인에 해당하며,
첫 라인의 condition이True
인 경우if_block
의 statements들이 수행됨.elif
statement는 위의 예에서 셋째와 넷째 라인에 해당한다. ( elif = else + if )- 항상 이전에
if
statement 1개와 0개 이상의elif
statements 선행되어야 하며, - 앞선
if
와elif
statement들의 condition이False
이고 자신의 condition이True
인 경우에 자신의elif_block
이 수행된다.
- 항상 이전에
else
statement는 위의 예에서 다섯째와 마지막 라인에 해당한다.- 항상 이전에
if
statement 1개와 0개 이상의elif
statements 선행되어야 하며, - 앞선
if
와elif
statement들의 condition이False
인 경우에만 자신의else_block
이 수행된다.
- 항상 이전에
if
statement는 단독으로 사용가능하지만, elif
와 else
statements는 단독으로 사용할 수 없다. if
와 else
statements 사이에 elif
statement가 없을 수도 있음.
- 같은 indent level의
if
와elif
,else
statements들은 오직 하나의 condition에 대한 code block만이 수행되게 된다. - 선행된 condition에 우선권이 있음.
- 각각에 해당하는 경우, 위에 위치한 것이 수행됨.
실제 code example
age = int(input ("당신의 나이는?"))
if age < 18 :
print('당신은 미성년자입니다.')
elif age < 65 :
print('당신은 성인입니다.')
else age >=65 and age <200 :
print('당신은 노인입니다.')
else:
print('당신은 ...')
위의 예제는 다음으로 나누어져 출력이 이루어짐.
- 18 미만인 경우,
- 18 이상 65 미만인 경우
- 65 이상 200 미만인 경우
- 200 이상인 경우
중첩
if
,elif
, else
statements 에서 각 code block에는 어떤 python statements도 놓일 수 있음.
즉, if
statement 안에 if
statement가 중첩가능함.
age = int(input('How old are you'))
if age >= 200:
print('당신은 ...')
else:
if age <18:
print('당신은 미성년자입니다.')
elif age <65:
print('당신은 성인입니다.')
else:
print('당신은 노인입니다.')
즉, 3중 if statement 이상도 가능하다 (가능하다고 권장되는 건 아니다.).
그리고, 가급적이면 많은 경우에 해당하는 조건을 앞에서 처리하도록 하는 게 좋다.
참고 : code block이란
Python code에서 여러 line을 하나의 block으로 묶을 수 있음.
- code block은 indent (들여 쓰기) level이 증가할 때 시작됨.
- code block은 다른 code block을 포함할 수 있음 : nested block이 가능.
- code block은 indent가 없거나, 자신을 포함한 code block의 indent level로 감소할 때 끝남.
같이 보면 좋은 자료
2023.10.06 - [Pages] - [Python] Control Structure and Control Flow
'Python' 카테고리의 다른 글
[Python] asterisk * 사용하기 : unpacking, packing (0) | 2023.07.30 |
---|---|
[Python] while statement, break and continue (0) | 2023.07.28 |
[Python] Boolean Operators, Relational Operators, and Membership Operator (0) | 2023.07.28 |
[Python] List's methods (0) | 2023.07.17 |
[Python] Closure (0) | 2023.07.15 |