Python의 제어 흐름과 코드 구조

제어 흐름을 통한 프로그램 논리 설계

프로그램의 동작 방식은 코드의 구조, 즉 제어 흐름(control flow)에 의해 결정됩니다. 파이썬에서는 순차적 실행, 조건 기반 분기, 반복 처리 등 세 가지 기본적인 제어 구조를 제공하여 다양한 로직을 표현할 수 있습니다. 이들 구조를 효과적으로 활용하면 가독성 높고 유지보수 쉬운 코드를 작성할 수 있습니다.

1. 순차 구조 (Sequential Structure)

가장 기초적인 구조로, 코드가 위에서 아래로 한 줄씩 차례대로 실행됩니다. 특별한 제어문이 없으면 모든 파이썬 스크립트는 이 방식으로 동작합니다.

print("시작합니다")
x = 10
y = x * 2
print(f"결과: {y}")

위 코드는 출력 → 변수 할당 → 계산 → 출력 순서로 실행되며, 중간에 흐름의 변화 없이 직선적으로 진행됩니다.

2. 조건 분기 구조 (Conditional Branching)

특정 조건에 따라 다른 코드 블록을 실행해야 할 때 사용합니다. 주로 if, elif, else 키워드로 구성됩니다.

temperature = 30

if temperature > 35:
    print("매우 덥습니다.")
elif temperature > 25:
    print("따뜻합니다.")
elif temperature > 15:
    print("쾌적합니다.")
else:
    print("추운 날씨입니다.")

조건은 위에서 아래로 평가되며, 처음으로 참인 블록만 실행되고 나머지는 무시됩니다. 중첩도 가능하지만 과도한 중첩은 가독성을 해칠 수 있으므로 주의가 필요합니다.

3. 반복 구조 (Loop Structures)

반복 작업을 위해 forwhile 두 가지 루프를 제공합니다.

for 루프

시퀀스 자료형(list, tuple, 문자열 등) 또는 반복 가능한 객체를 순회할 때 사용합니다.

colors = ["red", "green", "blue"]

for color in colors:
    print(f"색상: {color.upper()}")

특정 횟수만큼 반복하고 싶을 경우 range() 함수를 활용할 수 있습니다.

for i in range(1, 6):  # 1부터 5까지
    print(f"반복 {i}회")

while 루프

조건이 참인 동안 계속해서 루프를 실행합니다. 조건이 언제든지 거짓이 되어야 무한루프를 피할 수 있습니다.

remaining_attempts = 3

while remaining_attempts > 0:
    guess = input("비밀번호를 입력하세요: ")
    if guess == "python123":
        print("접속 허가")
        break
    remaining_attempts -= 1
    print(f"남은 시도: {remaining_attempts}")
else:
    print("모든 시도가 실패했습니다.")

루프 제어 키워드

  • break: 루프를 즉시 종료합니다.
  • continue: 현재 반복을 건너뛰고 다음 반복으로 이동합니다.
  • else: 루프가 정상적으로 종료되었을 때 실행됩니다 (break 없이 종료).
  • pass: 구문상 필요하지만 아무 동작도 하지 않을 때 사용하는 더미 문입니다.
items = [1, 2, 'skip', 4, 5]

for item in items:
    if item == 'skip':
        continue
    if item == 4:
        pass  # 추후 구현 예정
    print(f"처리 중: {item}")

이러한 제어 구조들은 복잡한 로직을 단순한 블록들로 나누어 표현할 수 있게 해주며, 프로그래밍의 핵심 기반이 됩니다.

태그: python 제어 흐름 조건문 반복문 for 루프

6월 13일 03:39에 게시됨