본문 바로가기

Python

7. 조건문- if~else와 elif 구문

else 조건문의 활용

else 구문은 if 조건문 뒤에 사용하며, if 조건문의 조건이 거짓일 때 실행되는 부분.

 

if 조건:

oooo조건이 참일 때 실행할 문장

else:

oooo조건이 거짓일 때 실행할 문장

 

#if조건문에 else구문을 추가해서 짝수와 홀수 구분
#입력을 받습니다.
number=input("정수 입력> ")
number=int(number)

#조건문을 사용
if number%2==0:
print("짝수입니다.")
else:
print("홀수입니다.")

=>

정수 입력> 87
홀수입니다.

 

elif 구문

세 개 이상의 조건을 연결해서 사용하는 방법

 

if 조건A:

oooo조건A가 참일 때 실행할 문장

elif 조건B:

oooo조건B가 참일 때 실행할 문장

elif 조건C:

oooo조건C가 참일 때 실행할 문장

...

else:

oooo모든 조건이 거짓일 때 문장

 

#계절 구하기
#날짜/시간 관련된 기능 가져오기
import datetime

#현재 날짜/시간 구하고
#쉽게 사용할 수 있게 월을 변수에 저장

now=datetime.datetime.now()
month=now.month

#조건문으로 계절을 확인
if 3<=month<=5:
print("봄입니다")
elif 6<=month<=8:
print("여름입니다")
elif 9<=month<=11:
print("가을입니다")
else:
print("겨울입니다")

=>

봄입니다

 

※ "프로그래밍은 조건문으로 도배한다"라고 표현할 정도로 조건문을 많이 사용함.

 

if 조건문을 효율적으로 사용하기

score=float(input("학점 입력> "))

if score==4.5:
print("신")
elif 4.2<=score<4.5:
print("교수님의 사랑")
elif 3.5<=score<4.2:
print("현 체제의 수호자")
elif 2.8<=score<3.5:
print("일반인")
elif 2.3<=score<2.8:
print("일탈을 꿈꾸는 소시민")
elif 1.75<=score<2.3:
print("오락문화의 선구자")
elif 1.0<=score<1.75:
print("불가촉천민")
elif 0.5<=score<1.0:
print("자벌레")
elif 0<score<0.5:
print("플랑크톤")
else:
print("시대를 앞서가는 혁명의 씨앗")

=>

학점 입력> 2.75
일탈을 꿈꾸는 소시민

 

※ if 조건문은 위에서 아래로 흐르며, else 구문과 elif 구문은 이전의 조건이 맞지 않을 때 넘어오는 부분이므로, 이미 제외된 조건을 한 번 더 검사할 필요가 없다.

 

score=float(input("학점 입력> "))

if score==4.5:
print("신")
elif 4.2<=score:
print("교수님의 사랑")
elif 3.5<=score:
print("현 체제의 수호자")
elif 2.8<=score:
print("일반인")
elif 2.3<=score:
print("일탈을 꿈꾸는 소시민")
elif 1.75<=score:
print("오락문화의 선구자")
elif 1.0<=score:
print("불가촉천민")
elif 0.5<=score:
print("자벌레")
elif 0<score:
print("플랑크톤")
else:
print("시대를 앞서가는 혁명의 씨앗")

=>

학점 입력> 0.24
플랑크톤

 

False로 변환되는 값

if 조건문의 매개변수에 boolean이 아닌 다른 값이 오면 자동으로 boolean으로 변환해서 처리함.

None, 0, 0.0, 빈 컨테이너(빈 문자열, 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕셔너리 등)은 False로 변환됨. 이 외에는 모두 True로 변환됨

 

Pass 키워드

프로그래밍의 전체 골격을 잡아 놓고 내부에서 처리할 내용은 나중에 만들 의도일 때 사용.

if 조건문에서 아무 내용을 작성하지 않으면 IndentationError가 발생함.

pass 키워드를 사용하면 "아무것도 안함", "곧 개발하겠음"을 의미함.

 

#입력을 받습니다.
number=input("정수 입력>")
number=int(number)

#조건문 사용
if number>0:
#양수일 때 : 아직 미구현 상태입니다.
else:
#음수일 때 : 아직 미구현 상태입니다.

=>IndentationError: expected an indented block after 'if' statement on line 6

 

#입력을 받습니다.
number=input("정수 입력>")
number=int(number)

#조건문 사용
if number>0:
#양수일 때 : 아직 미구현 상태입니다.
pass
else:
#음수일 때 : 아직 미구현 상태입니다.
pass

=> 정수 입력>

 

※ raise NotImplementError

pass 키워드를 입력해놨어도 잊어버릴 수 있으므로, raise 키워드와 미구현 상태를 표현하는 NotImplementedError를 조합해 아직 구현되지 않은 부분이라는 오류를 강제로 발생시킬 수 있음.

코드를 실행하면 정상적으로 진행되지만, 구현되지 않은 부분에 들어서면 NotImplementedError라는 오류를 발생시킴. 따라서 구현 안했음을 인지할 수 있다.

#입력을 받습니다.
number=input("정수 입력>")
number=int(number)

#조건문 사용
if number>0:
#양수일 때 : 아직 미구현 상태입니다.
raise NotImplementedError
else:
#음수일 때 : 아직 미구현 상태입니다.
raise NotImplementedError

=>

정수 입력>10
Traceback (most recent call last):
  File "pass_keyword.py", line 8, in <module>
    raise NotImplementedError
NotImplementedError

'Python' 카테고리의 다른 글

8. 반복문 - 리스트와 반복문  (0) 2022.03.30
6. 조건문 - 불리언, if 조건문  (0) 2022.03.20
5. 숫자와 문자열의 다양한 기능  (0) 2022.03.15
4. 변수와 입력  (0) 2022.03.13
3. 숫자  (0) 2022.03.12