Coding Diary.

(파이썬) 조건문 if, elif, else 문 본문

Coding/Python

(파이썬) 조건문 if, elif, else 문

life-of-nomad 2024. 6. 7. 10:01
728x90
반응형
저번 글까지는 위에서 아래로 모든 라인을 단순히 실행하는 코드를 작성하는 방법에 대해 알아보았습니다. 하지만 어떤 경우에는 특정 조건이 유지되는 경우에만 코드를 실행해야 합니다. 이번 글에서는 이러한 방법을 가능하게 해주는 조건문인 if문에 대해 알아보겠습니다.

 

1. if 문

  • if문은 어떤 조건이 참 혹은 거짓인지에 따라 코드를 실행하거나 건너뛰는 조건문입니다. 
  • 예를 들어 휴대 전화에 대한 청구 시스템이 있다고 가정해봅시다. 고객이 전화와 메시지 발송에 사용할 수 있는 크레딧 잔고가 있다고 해보겠습니다. 전화 크레딧 잔고가 임계 값(이 경우 5달러) 아래로 떨어지면 10달러의 크레딧이 추가되고 고객의 은행 계좌로 청구되도록 할 수 있습니다. 
  • 이 청구 시스템을 아래의 코드로 나타내면 간단합니다.
if phone_balance < 5:  # 5달러 미만으로 떨어지면 
    phone_balance += 10  # 휴대폰 계죄에 10을 더하고
    bank_balance -= 10  # 은행 계좌에서 10을 빼기
  • if문은 키워드 if로 시작하고 그 뒤에는 검사할 조건이 나옵니다.
  • 이 조건 다음에 콜론이 나옵니다. 조건은 true 또는 false로 평가되는 불린 형식으로 지정됩니다. 
  • 그 다음 줄에는 조건이 참일 경우에 실행되어야 하는 코드 블록이 들여쓰기가 되어 나옵니다. 
  • 그렇지 않을 경우에는 if 블록 안의 코드를 그냥 건너뛰게 됩니다. 
phone_balance = 3
bank_balance = 100

print(phone_balance, bank_balance)

if phone_balance < 5:
    phone_balance += 10
    bank_balance -= 10
    
print(phone_balance, bank_balance)

>>> 3, 10
>>> 13, 90

 

 

2. if, elif, else 

  • 조건이 true 이면 코드 블록을 실행하는 방법을 알아보았습니다.
  • 이어서, 해당 조건이 false 일 때 실행하려는 다른 코드 블록이 있는 경우에는 else 를 사용할 수 있습니다.
  • 예를 들어, 정수 N이 짝수인지 홀수인지를 나타내는 메시지를 출력하는 코드를 작성해보겠습니다.
if n % 2 == 0:
	print("Number " + str(n) + " is even.")  # n이 짝수이면 실행
else:
	print("Number " + str(n) + " is odd.")  # False 이면 실행
  • else 뒤에는 항상 콜론(:)이 오고 불린 표현식이 필요하지 않습니다.
  • n을 15로 설정하면 아래와 같이 됩니다.
n = 15

if n % 2 == 0:
	print("Number " + str(n) + " is even.") 
else:
	print("Number " + str(n) + " is odd.")
    
print(n)

>> Number 15 is odd.
  • 이러한 경우가 두 개 이상일 때 상황을 처리하기 위해 "else if"의 약어인 "elif"를 사용할 수도 있습니다.
  • 이렇게 하면 else를 사용한 다음 else 블록 내에서 또 다른 if 문을 사용하는 등의 코드에 필요한 여러 들여쓰기를 생략할 수 있습니다.
  • if 와 마찬가지로 elif 문에는 항상 조건식이 필요합니다.
  • 예를 들어 현재의 계절을 기반으로 정원을 어떻게 처리할 지에 대해 출력하는 코드를 작성해보겠습니다.
season = 'spring'

if season == 'spring':
	print('plant the garden!')
elif season == 'summer':
	print('water the garden!')
elif season == 'fall':
	print('harvest the garden!')
elif season == 'winter':
	print('stay indoors!')
else:
	print('unrecognized season')
    
>>> plant the garden!
  • 계절을 봄으로 설정한다면, plant the garden 의 첫번째 조건이 true로 평가되므로 plant the garden이 출력됩니다.
  • 하지만 계절을 겨울로 설정하면 print('stay indoors!') 조건에 도달하여 해당 조건이 true로 평가될 때 까지 나머지 조건들은 false로 평가될 것입니다. 
  • 여기서 '=' 가 아닌 '=='를 사용한다는 점을 주의해야 합니다.
  • 단일 등호 '='는 계절을 특정 문자열로 설정할 때 처럼 할당을 위한 것이고,
  • 이중 등호 '=='는 등호 조건을 true 또는 false 로 평가하는 것 처럼 평가를 위한 것입니다. 

 

3. 조건문에 사용하는 부울 값 표현식 

  • 하나의 조건만 확인하는 단일 불 표현식에 대한 if문을 작성해보았습니다.
  • 하지만 if 문은 조건에 복잡한 조건식(다수의 비교 연산자, 논리 연산자, 계산)을 사용할 수도 있습니다. 
  • 조건이 숫자 변수와 함께 작용하는 경우 값이 특정 범위에 있는지 확인하거나 비교를 위해 일부 계산을 수행하고 싶을 수 있습니다.
  • 1) 계산 : 키와 몸무게에 대한 값을 지정하여 BMI 결과에 대해 출력하는 예시 
weight = 55
height = 164

if 18.5 <= weight / height**2 < 25:
    print("BMI is considered 'normal'")
    
>>> BMI is considered 'normal'
  • 2) 논리 연산자 : 비가 오고 화창하면 무지개가 나올 수 있는 조건(모두 true이여야 true로 평가), 하나라도 false이면 print문은 실행되지 않습니다.
if is_raining and is_sunny:
    print("Is there a rainbow?")
  • 3) 다수의 비교 연산자 : 고객이 이메일 구독 목록에서 삭제를 요청하지 않았고 동작을 사용할 수 있는 위치에 있는 경우 이메일을 고객에게 보내는 경우 (*조건을 명확하기 위해 괄호 필수) / and, or, not 여러개 조합할 수 있음
if (not unsubscribed) and (location == "USA" or location == "CAN"):
    print("send email")
  • 이러한 식으로 간단하든 복잡하든, if 문 안의 조건은 반드시 참이나 거짓으로 계산되는 불 값 표현식이여야 합니다.
  • 그리고 그 값에 따라 if 문 안의 들여쓰기 된 블록들이 실행될지의 여부가 결정됩니다.
728x90
반응형