자기계발/Python

[Python] 기본6. elif구문

호등 2022. 2. 26. 11:39
반응형

if, else는 건너뛰고 elif구문으로 넘어옴

elif구문은 Python에서 조건문을 여러개 나열할 때 사용한다.

elif구문

if 조건 A:

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

elif 조건 B:

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

elif 조건 C:

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

·······

else:

□□□□ 모든 조건에 들어맞지 않을때 실행할 문장

 

if문을 여러개 연결한 구조인데 if문과 else문 사이에 elif 구문을 입력해준다.


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

90점 이상이면 A등급,

80점 이상 90점 미만이면 B등급,

70점 이상 80점 미만이면 C등급,

70점 미만이면 D등급을 받는 평가가 있다고 가정했을때 이 평가를 프로그래밍하면

score = int(input("점수 입력> "))

if score >= 90:
	print("A등급")
elif 80 <= score < 90:
	print("B등급")
elif 70 <= score < 80:
	print("C등급")
else:
	print("D등급")

이렇게 작성할 수 있다. 하지만 이 코드를 좀 더 효율적으로 작성할 수 있다.

score = int(input("점수 입력> "))

if score >= 90:
	print("A등급")
elif 80 <= score :
	print("B등급")
elif 70 <= score :
	print("C등급")
else:
	print("D등급")

if문 첫 번째 줄을 보면 입력된 점수가 90점이 아니었을때 다음 문장을 실행한다.

그러므로 그 다음줄에서 score가 90점미만인지 비교해볼 필요가 없다.

 

elif 80 <= score < 90elif 80<= score

 


False를 의미하는 값들

if 조건문의 매개변수에 bool이 아닌 다른 값이 올 때 자동으로 bool로 변환하여 처리한다.

False로 변환되는 값은 None,숫자 0과 0.0,빈 컨테이너(빈 문자열, 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕셔너리 등)이다.

나머지 값을은 전부 True를 의미한다.


pass 키워드

number = input("정수입력> ")
number = int(number)

if number > 0 :
#들여쓰기 없이 빈 공백으로 둠
else :
#들여쓰기 없이 빈 공백으로 둠

프로그래밍을 할 때 위와 같이 골격만 잡아 놓는 경우가 많다.

다른 프로그래밍 언어와 다르게 파이썬에서는 if 조건문 사이에 아무 내용을 작성하지 않으면 에러가 발생한다.

에러명 IndentationError : expected an indented block

들여쓰기가 잘못되어서 출력되는 에러인데 

파이썬에서는 if 구문 결과로 실행될 내용을 들여쓰기 + 아무 내용이라도 넣어 주어야한다.

 

이럴때 사용하는게 pass 키워드!

pass는 진짜로 아무것도 안하거나 곧 개발하겠다는 의미로 사용된다.

number = input("정수입력> ")
number = int(number)

#pass 키워드 사용
if number > 0 :
    	pass
else :
	pass

raise NotImplementError

pass 키워드를 입력해놓고 내일 되면 까먹는 경우가 있다.

다른 날에 이어서 개발할 경우엔 raise NotImplementError 구문을 넣어서 일부로 오류를 발생시킬 수 있다.

number = input("정수입력> ")
number = int(number)

if number > 0 :
    raise NotImplementedError
else :
    raise NotImplementedError

NotImplementedError 발생!

NotImplementedError 메세지를 보고 구현하다 만 부분을 인지할 수 있게 된다.

 

반응형