728x90
반응형
Python에서 조건문 중첩(Nested Conditional Statements)은 하나의 if 문 안에 또 다른 if 문을 포함하는 구조입니다. 중첩 조건문을 사용하면 복잡한 논리 흐름을 구현할 수 있지만, 코드가 길어지고 가독성이 저하될 수 있습니다. 따라서 조건문을 효율적으로 사용하는 방법을 익히는 것이 중요합니다.
1. 중첩 조건문의 개념과 기본 구조
㉮ 중첩 조건문이란?
- 중첩 조건문 (Nested Conditional Statements) 은 하나의 if 문 내부에 또 다른 if 문이 포함된 구조를 의미합니다.
㉯ 기본 구조
if 조건1:
if 조건2:
실행 코드
else:
실행 코드
else:
실행 코드
2. 중첩 조건문의 예제
㉮ 기본 중첩 조건문
- 아래 예제는 사용자가 입력한 숫자가 양수인지, 음수인지, 그리고 짝수인지 홀수인지를 판단하는 코드입니다.
num = int(input("숫자를 입력하세요: "))
if num >= 0: # 첫 번째 조건 : 양수 또는 0인지 확인
print("양수 또는 0입니다.")
if num % 2 == 0: # 두 번째 조건 : 짝수인지 확인
print("짝수입니다.")
else:
print("홀수입니다.")
else:
print("음수입니다.")
실행 결과 예시
숫자를 입력하세요: 4
양수 또는 0입니다.
짝수입니다.
3. 중첩 조건문의 문제점
중첩 조건문이 많아지면 다음과 같은 문제점이 발생할 수 있습니다.
㉮ 가독성 저하
- 코드가 깊어질수록 이해하기 어려워짐
㉯ 디버깅 어려움
- 논리 오류가 발생했을 때 원인을 찾기 어려움
㉰ 불필요한 연산 증가
- 중복되는 조건을 제거하지 않으면 불필요한 연산이 수행됨
예제 : 중첩 조건문이 비효율적인 경우
score = 85
if score >= 60:
if score >= 80:
if score >= 90:
print("A 학점")
else:
print("B 학점")
else:
print("C 학점")
else:
print("F 학점")
위 코드는 중첩이 과도하여 비효율적이며, 불필요한 조건 검사(score >= 80, score >= 90)가 반복됩니다.
4. 중첩 조건문을 효율적으로 사용하는 방법
㉮ elif 문 활용
- elif 문을 사용하면 중첩을 줄일 수 있습니다.
score = 85
if score >= 90:
print("A 학점")
elif score >= 80:
print("B 학점")
elif score >= 60:
print("C 학점")
else:
print("F 학점")
개선 후 장점
- 가독성 향상 : 조건을 논리적으로 정리하여 한눈에 이해하기 쉬움.
- 불필요한 연산 감소 : 조건이 충족되면 이후 조건은 검사하지 않음.
㉯ and 연산자를 활용한 중첩 제거
- 두 개 이상의 조건을 동시에 검사해야 하는 경우, 중첩된 if 문 대신 and 연산자를 사용할 수 있습니다.
비효율적인 중첩 조건문
age = 25
income = 4000
if age >= 10:
if income >= 3000:
print("대출 신청 가능")
효율적인 코드 (and 연산자 활용)
if age >= 18 and income >= 3000:
print("대출 신청 가능")
개선 후 장점
- 불필요한 중첩 제거 : 중복된 if 문을 단일 조건으로 처리
- 간결한 코드 유지 : 코드 길이를 줄이고, 논리 흐름을 쉽게 이해할 수 있음
㉰ return 또는 break를 활용한 조건문 단순화
- 반복문에서 조건문을 효율적으로 사용하려면 return 또는 break를 활용하여 불필요한 중첩을 줄일 수 있습니다.
비효율적인 중첩 구조
def check_eligibility(age):
if age >= 18:
if age < 65:
return "근로 가능 연령"
else:
return "은퇴 연령"
else:
return "미성년자"
개선된 코드 (return 활용)
def check_eligibility(age):
if age < 18:
return "미성년자"
if age >= 65:
return "은퇴 연령"
return "근로 가능 연령"
개선 후 장점
- 중첩 구조 제거 : 조건을 간결하게 정리
- 코드 가독성 증가 : 논리적 흐름을 직관적으로 이해 가능
5. 중첩 조건문으로 실용적인 예제
㉮ 로그인 시스템
- 사용자의 아이디와 비밀번호를 확인하는 간단한 로그인 시스템을 작성합니다.
비효율적인 코드
username = "admin"
password = "1234"
input_user = input("아이디: ")
if input_user == username:
input_pass = input("비밀번호: ")
if input_pass == password:
print("로그인 성공!")
else:
print("비밀번호가 틀렸습니다.")
else:
print("아이디가 존재하지 않습니다.")
효율적인 코드 (and 연산자 활용)
username = "admin"
password = "1234"
input_user = input("아이디: ")
input_pass = input("비밀번호: ")
if input_user == username and input_pass == password:
print("로그인 성공!")
else:
print("아이디 또는 비밀번호가 틀렸습니다.")
6. 요약
- 중첩 조건문은 복잡한 논리를 처리할 때 유용하지만, 과도한 사용은 피해야 합니다.
- elif 문을 활용하여 불필요한 중첩을 제거하면 가독성을 높일 수 있습니다.
- and, or 연산자를 활용하면 논리 흐름을 단순화할 수 있습니다.
- return, break를 활용하면 조건문을 간결하게 만들 수 있습니다.
- 효율적인 조건문 작성을 통해 코드의 성능과 유지보수성을 향상할 수 있습니다.
728x90
반응형
'코딩교육 > Python 초등교육에서 전문가까지' 카테고리의 다른 글
2단계 : 2. 조건문 (조건문을 활용한 간단한 프로그램 만들기) (0) | 2025.02.23 |
---|---|
2단계 : 2. 조건문 (in , not in 연산자 활용) (0) | 2025.02.22 |
2단계 : 2. 조건문 (조건문 작성 시 유의사항, 들여쓰기, 조건 표현식) (0) | 2025.02.20 |
2단계 : 2. 조건문 (feat. if, else, elif 의 기본 가용법) (0) | 2025.02.19 |
2단계 : 1. 변수와 자료형 (feat. 변수와 메모리 구조 이해) (0) | 2025.02.14 |