파이썬 & 오픈소스 개발 Tip과 강좌

이곳은 파이썬과 여러 오픈소스 기반 프레임워크 관련 Tip과 강좌 게시판 입니다. 관련 개발을 진행하면서 알아내신 Tip이나 강좌와 새로운 소식을 적어 주시면 다른 공부하는 분들에게 큰 도움이 됩니다. 감사합니다. SQLER.com은 개발자와 IT전문가의 지식 나눔을 실천하기 위해 노력하고 있습니다.

안녕하세요. SQLER의 코난 김대우입니다. 

이번 강좌에서는, Python 초급 강좌 목차 - 9. 조건문(Condition):2 다중 조건 처리를 진행토록 하겠습니다.

 

SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록

 

코드를 실행하기 위해서는, vscode에서 새로운 파일을 만들고 실행하시면 됩니다.

예를 들어, 09_multi_condition.py를 생성하고 코드를 실행합니다.

 

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 방에 있어야합니다.

 

참조링크

개발자 커뮤니티 SQLER.com - Python 무료 강좌 - 기초, 중급, 머신러닝

c9-python-getting-started/python-for-beginners/09 - Handling multiple conditions at master · CloudBreadPaPa/c9-python-getting-started (github.com)

 

No. Subject Author Date Views
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2021년 1월 업데이트) 코난(김대우) 2021.01.01 392
103 Python 중급 강좌 - 9. 비동기 작업(Asynchronous operations): asyncio 코난(김대우) 2021.01.03 225
102 Python 중급 강좌 - 8. 외부 리소스 관리(Managing external resources): with 코난(김대우) 2021.01.03 118
101 Python 중급 강좌 - 7. 파일작업(File read/write) file 코난(김대우) 2021.01.03 141
100 Python 중급 강좌 - 6. 파일시스템(File system) 관리 코난(김대우) 2021.01.03 135
99 Python 중급 강좌 - 5. 다중상속(Mixins - multiple inheritance) 코난(김대우) 2021.01.03 83
98 Python 중급 강좌 - 4. 상속(Inheritance) 코난(김대우) 2021.01.03 35
97 Python 중급 강좌 - 3. 클래스(Class) 코난(김대우) 2021.01.03 47
96 Python 중급 강좌 - 2. 람다(Lamda) file 코난(김대우) 2021.01.03 64
95 Python 중급 강좌 - 1. Python 스타일 가이드: 서식(Formatting)과 린팅(Linting) file 코난(김대우) 2021.01.02 88
94 Python 초급 강좌 목차 - 19. 코드에서 중요한 키(패드워드) 관리 - dotenv 코난(김대우) 2021.01.02 47
93 Python 초급 강좌 목차 - 18. 데코레이터(Decorators) 코난(김대우) 2021.01.02 45
92 Python 초급 강좌 목차 - 17. JSON 데이터 처리 file 코난(김대우) 2021.01.02 93
91 Python 초급 강좌 목차 - 16. 외부 웹서비스 API 호출 file 코난(김대우) 2021.01.02 105
90 Python 초급 강좌 목차 - 15. 패키지(Package): import, pip 코난(김대우) 2021.01.02 47
89 Python 초급 강좌 목차 - 14. 함수 파라미터(Parameter) 코난(김대우) 2021.01.02 43
88 Python 초급 강좌 목차 - 13. 함수(Function) 코난(김대우) 2021.01.02 32
87 Python 초급 강좌 목차 - 12. 반복문(Loop): for, while 코난(김대우) 2021.01.02 34
86 Python 초급 강좌 목차 - 11. 컬렉션(Collection): list, array, dictionary file 코난(김대우) 2021.01.02 47
85 Python 초급 강좌 목차 - 10. 조건문(Condition):3 복잡한 조건 처리 코난(김대우) 2021.01.01 35
» Python 초급 강좌 목차 - 9. 조건문(Condition):2 다중 조건 처리 코난(김대우) 2021.01.01 54





XE Login