code name blue

Python : 블록 구조 - if문, else문 본문

Programming/Python

Python : 블록 구조 - if문, else문

byebyeblue 2019. 4. 26. 10:31

 

블록 구조

Python은 들여쓰기를 바탕으로 조건문이 참일 때 실행할 명령이 2개 이상일 경우 아래쪽으로 명령을 계속 나열한다. 즉, 들여쓰기 수준이 같다면 같은 블록으로 인식되어 조건에 모두 걸리게 되고 들여쓰기가 맞지 않는다면 조건과 상관 없는 별개의 문장으로 인식한다.

if 조건문:
   명령1
   명령2
   명령3
명령4
명령5

위에서 명령1~3은 하나의 블록으로, 명령4와 명령5는 블록 외부의 명령으로 인식된다.

 

num = 3
if num < 5:
	print("5보다")
	print("작아요")

위의 실행 결과는 아래와 같다. print 명령이 같은 블록이기 때문에 두 개 모두 출력된다.

5보다
작아요

 

num = 3
if num < 2:
	print("2보다작아요")
print("3입니다")

위의 실행 결과는 첫 번째 명령(print("2보다작아요"))의 조건을 만족하지 않기 때문에 첫 번째 명령은 출력되지 않고 두 번째 명령만 출력되어 '3입니다'만 출력하게 된다.

 

여기서 들여쓰기는 Tab 혹은 4개의 공백을 권장한다. 왼쪽 끝이 가지런히 맞아야지만 같은 블록으로 인식된다.

 

 

else문

if else문은 조건의 진위여부에 따라 실행할 명령을 선택한다. if문이 조건이 참이면 명령을 실행하고 거짓이면 아무것도 하지 않는 것과는 대조적으로 if else문에서는 선택의 여지가 있다는 것이 차이점이다.

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

조건이 참이면 명령1을, 거짓이면 명령2를 실행한다. if문이 '할까 말까'라면 if else문은 '뭘 할까'이다.

 

num = 6
if num < 5:
	print("5보다작아요")
print("어떤숫자일까요")
else:
	print("5보다커요")

위와 같은 경우 조건이 참일 때 실행할 print 명령 중 두 번째 명령의 들여쓰기가 잘못 되었다. 이 경우 if문은 '5보다작아요' 명령에서 이미 끝났기 때문에 아무것도 표시 되지 않고, '어떤숫자일까요'는 들여쓰기 구조 상 if문과는 관련 없는 명령이기 때문에 반드시 실행한다. 뒤쪽의 else문은 대응되는 if문이 없기 때문에 에러로 처리된다. if와 else문은 항상 짝이 맞아야 한다!

 


참조

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

 

Comments