2023년 6월 업데이트
안녕하세요. SQLER의 코난 김대우입니다.
이번 강좌에서는, Python 초급 강좌 목차 - 9. 조건문(Condition):2 다중 조건 처리를 진행토록 하겠습니다.
SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록
코드를 실행하기 위해서는, vscode에서 새로운 파일을 만들고 실행하시면 됩니다.
예를 들어, 09_multi_condition.py를 생성하고 코드를 실행합니다.
TL;DR
이 챕터에서는 Python에서 if 문을 사용하여 여러 조건을 비교하는 방안에 대해 살펴봅니다. if 문, elif 문, else 문 사용 등, 복잡한 조건을 처리하기 위한 중첩 if 문도 다룹니다.
Python 초급 강좌 목차 - 9. 조건문(Condition):2 다중 조건 처리
여러 가지 조건의 비교를 해야 할 경우, 앞에서 배운 if 구문을 나열해 처리 가능합니다.
예를 들어, 지역마다 tax 값이 다를 경우의 조건을, 아래와 같이 if 구문을 나열해 여러 조건을 구현할 수도 있습니다.
하지만, 일반적으로 권장하는 방식은 아닙니다.
province = input("What province do you live in? ") tax = 0 # 여러 if 조건문을 나열해 수행 - 권장하는 방법은 아닙니다. if province == 'Alberta': tax = 0.05 if province == 'Nunavut': tax = 0.05 if province == 'Ontario': tax = 0.13 print(tax)
elif를 이용한 조건 비교
이렇게 여러 if 조건을 수행할 경우, elif로 코드 패턴을 변경하는 것이 더 권장하는 방식입니다. 다음과 같이 코드에서 elif를 이용할 수 있습니다.
province = input("What province do you live in? ") tax = 0 if province == 'Alberta': tax = 0.05 elif province == 'Nunavut': # elif 추가 tax = 0.05 elif province == 'Ontario': tax = 0.13 print(tax)
if - elif 구문을 이용할 경우 기본조건(default condition)으로 else 구문을 추가할 수도 있습니다.
province = input("What province do you live in? ") tax = 0 if province == 'Alberta': tax = 0.05 elif province == 'Nunavut': tax = 0.05 elif province == 'Ontario': tax = 0.13 else: # default condition으로 else 구문 처리 tax = 0.15 print(tax)
여러 조건을 하나의 동작으로 수행
여러 조건이 하나의 동작을 수행될 경우, 다음 코드와 같이 and 또는 or 연산자를 이용해 하나의 조건으로 조합할 수 있습니다.
아래 코드의 경우, or 조건으로 둘 중 하나의 조건이 True일 경우 다음 코드 블록이 실행됩니다.
province = input("What province do you live in? ") tax = 0 if province == 'Alberta' or province == 'Nunavut': # or 조건. 둘 중 하나의 조건이 True이면 실행 tax = 0.05 elif province == 'Ontario': tax = 0.13 else: tax = 0.15 print(tax)
여러 or 조건들을 나열할 경우 "in" 연산자를 이용 가능
or 조건이 많아질 경우, 각 조건들을 비교하는 or 구문을 계속 나열하기 어렵습니다. 이럴 때, in 연산자를 쓰면 편리합니다.
province = input("What province do you live in? ") tax = 0 if province in('Alberta', 'Nunavut', 'Yukon'): # in 연산자로 비교항목을 조합(combine)하여 처리 tax = 0.05 elif province == 'Ontario': tax = 0.13 else: tax = 0.15 print(tax)
중첩 if 구문(nest if statement)
조건들의 조합에 의존성이 있을 경우 - 중첩된(nested) if 구문을 사용합니다.
country = input("What country do you live in? ") if country.lower() == 'canada': province = input("What province/state do you live in? ") if province in('Alberta', 'Nunavut', 'Yukon'): tax = 0.05 elif province == 'Ontario': tax = 0.13 else: tax = 0.15 else: tax = 0.0 print(tax)
이렇게 다중 조건 처리를 Python에서 코드로 구현할 수 있습니다.
연습문제
아래의 comment를 살펴보고, 이를 코드로 구현하세요. 해결방안은 c9-python-getting-started/code_challenge_solution.py at master · CloudBreadPaPa/c9-python-getting-started (github.com)에서 보실 수 있습니다.
# 사용자에게 이름을 묻습니다. # 이름이 A 또는 B로 시작하는 경우 AB 방으로 배정하세요. # 이름이 C로 시작하는 경우 C 방으로 배정하세요. # 이름이 다른 문자로 시작하면 성을 문의합니다. # 성이 Z로 시작하면 Z 방으로 가라고 말하세요 # 성이 다른 문자로 시작하면 OTHER 방으로 가라고 말하세요. # 완료되면, Anna는 AB 방에 있어야 합니다. # Bob은 AB 방에 있어야 합니다. # Charlie는 C 방에 있어야 합니다. # Khalid Haque는 OTHER 방에 있어야 합니다. # Xin Zhao는 Z 방에 있어야 합니다.
파이썬 강좌 책 구매
강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다.
책구매 링크: 챗GPT와 함께하는 파이썬 & 머신러닝 코딩 마스터
참조링크
개발자 커뮤니티 SQLER.com - Python 무료 강좌 - 기초, 중급, 머신러닝