파이썬 python

파이썬 조건문 예제 - if, elif, else 조건문 여러개 사용 방법

studying develop 2021. 8. 13. 00:44

모든 프로그래밍 언어와 파이썬에서 사용되는 가장 기본 조건문은 if, elif, else입니다.

 

일단 if를 살펴 보겠습니다.

만약 ~ 하면 이라는 우리말로 번역할 수 있습니다.

 

한번 if문을 사용하는 상황을 가정해 봅시다.

만약 우리가 과자 가게의 키오스크의 코드를 구현한다 해봅시다.

"만약 내가 가진 돈이, 과자 가격보다 비싸면 내가 과자를 살 수 있다 출력해줘"에 대한 코드를 작성하면

 

아래와 같은 코드가 되겠습니다.

moneyIhave = 5000
cookiePrice = 1500

if cookiePrice < moneyIhave:
	print("쿠키 값이 1500원인데 나는 5000원이 있으니 과자를 살 수 있어!")

 

그런데 만약 돈이 모자라서, 손님에게 "과자를 못삽니다!" 라는 문구를 보여 주고 싶을 수도 있죠?

이때 print()문을 단순히 조건문 아래에 붙이면 안됩니다.

moneyIhave = 5000
cookiePrice = 1500

if cookiePrice < moneyIhave:
	print("쿠키 값이 1500원인데 나는 5000원이 있으니 과자를 살 수 있어!")
    	#if문으로 들어와야 실행되는 코드.
    	print("과자를 못사요!")

만약 이렇게 print("과자를 못사요!")를 if문 안에 넣게 되면 "과자를 살 수 있어"가 출력 된 후 "과자를 못사요!"가 출력됩니다.

왜냐하면 if문 이후 같은 정도로 띄어쓰기(들여쓰기, indent)를 한 코드는 if문이 성립할 경우에, 같이 실행하게 됩니다.

 

그렇다면 if문 밖에 print문을 사용하면 어떻게 될까요?

moneyIhave = 5000
cookiePrice = 1500

if cookiePrice < moneyIhave:
	print("쿠키 값이 1500원인데 나는 5000원이 있으니 과자를 살 수 있어!")

#if문과 관련없이 실행되는 코드.
print("과자를 못사요!")

이 경우에도 '쿠키를 살수있다!'라는 문구과 '과자를 못산다'라는 문구가 같이 나오게 됩니다. 

왜냐하면 if문의 실행 여부와 관계 없이 무조건 print("과자를 못사요!")가 출력되는 구조입니다.

 


그렇다면 어떻게 해야 할까요?

이제 우리는 "if문이 실행되지 않을때" 실행해주는 '코드 블록'이 필요합니다.

 

그것을 바로 else를 이용하여 구현합니다.

moneyIhave = 5000
cookiePrice = 1500

if cookiePrice < moneyIhave:
	print("쿠키 값이 1500원인데 나는 5000원이 있으니 과자를 살 수 있어!")
#if문이 거짓이면 else를 실행한다.
else:
	print("과자를 못사요!")

이렇게 구현하면, '쿠키를 살수있다' 또는 '살수 없다' 둘중에 한 코드만 실행되게 됩니다.


그럼 이제 한가지 조건문을 더 알려드리겠습니다.

그것은 elif입니다. 

elif는 앞선 if문에서는 거짓이라, 뒤의 elif중 가장 먼저 참인 것이 실행되는 구문입니다.

moneyIhave = 1000
cookiePrice = 1500

if cookiePrice < moneyIhave:
	print("쿠키 값이 1500원인데 나는 5000원이 있으니 과자를 살 수 있어!")
elif cookiePrice - moneyIhave == 500:
	print("500원 모자라지만 할인해 드릴게요!")
#if문과 elif문이 모두 거짓이면 else를 실행한다.
else:
	print("과자를 못사요!")

즉 여기서 중요한 포인트는 여러 조건문을 합쳤을때, if,elif,else가 합쳐진 조건문에서.

가장 위에서 먼저 참인 조건문을 한번만 실행합니다.

 

즉 if도 참이고 elif도 참이여도 먼저 참인 if문이 실행됩니다.

 

마찬가지로 elif가 여러개여도 먼저 참인 elif가 실행됩니다.

moneyIhave = 1000
cookiePrice = 1500

if cookiePrice < moneyIhave:
	print("쿠키 값이 1500원인데 나는 5000원이 있으니 과자를 살 수 있어!")
elif cookiePrice - moneyIhave == 500:
	print("500원 모자라지만 할인해 드릴게요!")
elif cookiePrice - moneyIhave <= 500:
	print("500원 이하로 모자라시네요 돈을 더 가져오세요")
#if문과 elif문이 모두 거짓이면 else를 실행한다.
else:
	print("과자를 못사요!")

 

즉 위에서 cookiePrice - moneyIhave가 500원씩 남지만 첫번째 elif만 실행되고 두번째 elif는 실행되지 않습니다.