코딩교육/Python 초등교육에서 전문가까지

2단계 : 2. 조건문 (조건문 작성 시 유의사항, 들여쓰기, 조건 표현식)

제리토리 2025. 2. 20. 09:00
728x90
반응형

 

 

Python에서 조건문을 작성할 때는 몇 가지 중요한 사항을 고려해야 합니다. Python은 들여쓰기(Indentation)를 필수적으로 요구하는 언어이며, 조건 표현식(Conditional Expressions)을 사용하면 코드를 더 간결하게 만들 수 있습니다. 이 장에서는 Python 조건문을 작성할 때 반드시 알아야 할 들여쓰기 규칙조건 표현식(삼항 연산자) 활용법을 심도 있게 다룹니다.

 

 

 

1. 들여쓰기(Indentation)

 

Python에서 들여쓰기(Indentation)는 코드 블록을 구분하는 데 필수적인 요소입니다. C, Java 등 다른 프로그래밍 언어에서는 {}(중괄호)로 블록을 구분하지만, Python에서는 일관된 들여쓰기가 없으면 코드가 실행되지 않습니다.

 

㉮ Python의 들여쓰기 규칙

  • Python 에서는 보통 4개의 공백(Space 4개) 또는 1개의 탭(Tab)을 사용하여 들여쓰기를 합니다. 하지만 일관된 들여쓰기 방식을 유지하는 것이 중요합니다.
if True:
    print("들여쓰기가 올바름") # 4개의 공백 사용

 

㉯ 잘못된 들여쓰기 예제

  • 들여쓰기가 일관되지 않거나 부족할 경우 IndentationError가 발생합니다.

예제 : 들여쓰기 오류 발생

if True:
print("이 코드 블록은 들여쓰기 오류가 발생합니다.") # IndentationError 발생

 

예제 : 들여쓰기 스타일 혼용 오류

if True:
    print("이 줄은 4개의 공백 사용")
   print("이 줄은 탭(Tab) 사용") # IndentationError 발생

💡 해결 방법: 동일한 방식(공백 4개 또는 탭 1개)으로 들여쓰기를 통일해야 합니다.

 

㉰ 중첩 조건문에서 들여쓰기

  • Python 에서는 조건문 내부에 또 다른 조건문이 들어갈 수 있으며, 이를 중첩 조건문(Nested Conditional Statements)이라고 합니다.
x = 10
if x > 5:
    print("x는 5보다 큽니다.")
    if x > 8:
        print("x는 8보다도 큽니다.")

 

출력결과

x는 5보다 큽니다.
x는 8보다도 큽니다.

 

 

 

2. 조건 표현식 (Conditional Expression, 삼항 연산자)

 

 

조건문은 if-else를 활용하여 여러 줄로 작성할 수 있지만, 간단한 조건은 한 줄로 표현할 수도 있습니다. 이를 조건 표현식(Conditional Expression) 또는 삼항 연산자(Ternary Operator)라고 합니다.

 

㉮ 조건 표현식의 기본 문법

변수 = 값1 if 조건 else 값2

 

  • 조건이 True 이면 값1이 변수에 할당됨
  • 조건이 False 이면 값2가 변수에 할당됨

㉯ 기본예제

num = 5
result = "양수" if num > 0 else "음수"
print(result)

 

출력결과

양수

 

위 코드는 다음과 동일한 역할을 합니다.

num = 5
if num > 0:
    result = "양수"
else:
    result = "음수"
print(result)

 

㉰ 다중 조건을 활용한 삼항 연산자

  • elif 는 직접 사용할 수 없지만, 중첩된 삼항 연산자로 표현할 수 있습니다.

예제 : 숫자의 양수, 음수, 0 판별

num = -3
result = "양수" if num > 0 else "음수" if num < 0 else "0"
print(result)

 

출력 결과

음수

 

위 코드는 다음과 동일한 역할을 합니다.

if num > 0:
    result = "양수"
elif num < 0:
    result = "음수"
else:
    result = "0"

 

㉱ 조건 표현식 활용 예제

  • 삼항 연산자를 활용하면 리스트의 길이에 따라 동작을 달리할 수 있습니다.
my_list = [1, 2, 3]
msg = "리스트가 비어있음" if len(my_list) == 0 else f"리스트에 {len(my_list)}개의 요소가 있음"
print(msg)

 

출력 결과

리스트에 3개의 요소가 있음

 

 

 

3. 논리적 조건 시 유의해야 할 사항

 

㉮ 일관된 들여쓰기 사용

  • Python 에서는 들여쓰기가 문법적으로 필수적이므로, 혼합된 공백과 탭을 피해야 합니다.
if True:
    print("4개 공백 사용")

 

㉯ 논리적 조건을 명확하게 작성

  • 가독성을 높이기 위해 복잡한 논리식을 피하고, and , or 연산자를 적절히 활용해야 합니다.
if (a > 10) and (b < 5):
    print("조건 충족")

 

㉰ 불필요한 중첩 조건문을 피할 것

  • if 문 내부에 또 다른 if 문이 있는 경우, and 연산자를 사용하여 중첩을 줄이는 것이 좋습니다. 
# 비효율적인 중첩 조건문
if a > 0:
    if b > 0:
        print("a와 b는 모두 양수입니다.")
# 개선된 코드
if a > 0 and b > 0:
    print("a와 b는 모두 양수입니다.")

 

㉱ 삼항 연산자는 간단한 조건에만 사용

  • 여러 개의 조건을 삼항 연산자로 표현하는 것은 가독성을 해칠 수 있습니다.

㉲ 명확한 비교 연산자 사용

  • if x == True : 대신 if x:와 같이 표현하는 것이 더 Pythonic한 방식입니다.
if is_active: # 올바른 방식
    print("활성화됨")

 

 

 

4. 요약

 

  • Python의 들여쓰기는 필수적이며, 코드 블록을 올바르게 구분해야 합니다.
  • if-else 문을 한 줄로 줄여서 표현하는 조건 표현식(삼항 연산자)을 활용하면 코드를 간결하게 만들 수 있습니다.
  • 중첩 조건문은 가독성을 고려하여 최소화하고, and 연산자를 활용하여 조건을 최적화할 수 있습니다.
  • 명확한 비교 연산자를 사용하여 논리적 오류를 방지해야 합니다.

 

 

728x90
반응형