[Python 기초]

[Python] 제어문 (Control Statements) 정리

dyk98 2024. 11. 26. 20:20

제어문 (Control Statements)

  • 제어문은 조건에 따라 코드의 실행 흐름을 제어하거나 반복적인 작업을 수행하는 데 사용됩니다.
  • Python의 주요 제어문과 그 기능, 활용 사례, 그리고 주의점을 아래에 가독성 있게 정리했습니다.
If 조건에 따라 코드 실행 점수 계산, 입력 검증 조건 순서와 들여쓰기 유의
Nested If 조건문 안에 또 다른 조건 처리 복잡한 조건 처리, 다단계 검증 들여쓰기 오류 주의
While 조건이 참일 동안 반복 실행 사용자 입력 반복, 특정 작업 반복 무한 루프 방지, 조건 업데이트 필요
For 컬렉션 요소나 범위를 순회 리스트 순회, 인덱스 기반 작업 범위(range)의 종료값 포함 여부 확인
Break 반복문 즉시 종료 무한 루프 종료, 특정 조건 만족 시 중단 조건 충족 시 제대로 종료되는지 확인
Continue 현재 반복 건너뛰고 다음 반복으로 진행 특정 조건 필터링 조건이 반복적으로 건너뛰는지 주의
Range 숫자 시퀀스 생성 및 반복에서 사용 특정 범위의 숫자 반복 종료값 포함되지 않음 확인
Nested Loop 반복문 안에 또 다른 반복문 실행 다차원 데이터 처리, 모든 조합 생성 중첩 루프의 복잡성과 성능 저하 관리 필요

1. 조건문 (If Statements)

기능

  • 특정 조건이 참일 경우 코드를 실행.
  • 조건에 따라 여러 경우를 처리할 수 있음.

활용 사례

  • 점수에 따른 학점 계산.
  • 사용자 입력 검증 및 처리.
  • 상황에 따라 실행 흐름을 다르게 처리.

예제

score = 85

if score >= 90:
    print("A 학점")
elif score >= 80:
    print("B 학점")
elif score >= 70:
    print("C 학점")
else:
    print("F 학점")

중첩 구조 (Nested If)

  • 조건문 내부에 또 다른 조건문을 포함해 복잡한 조건 처리 가능.
age = int(input("나이를 입력하세요: "))
is_student = input("학생입니까? (yes/no): ")

if age >= 18:
    if is_student.lower() == "yes":
        print("성인이며, 학생입니다.")
    else:
        print("성인이며, 학생이 아닙니다.")
else:
    if is_student.lower() == "yes":
        print("미성년자이며, 학생입니다.")
    else:
        print("미성년자이며, 학생이 아닙니다.")

주의점

  1. 조건 순서: 조건문은 위에서부터 차례로 평가되므로, 가장 포괄적인 조건은 뒤에 배치.
  2. 들여쓰기: Python에서는 들여쓰기가 필수. 들여쓰기가 잘못되면 IndentationError 발생.

2. 반복문 (Loops)

2.1 For Loop

  • 기능: 컬렉션(리스트, 튜플 등)의 요소나 범위(range)를 순회하며 작업 수행.
  • 활용 사례: 리스트 순회, 특정 패턴 출력, 데이터 처리.
# 리스트 순회
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

# 숫자 리스트의 각 요소 제곱 계산
numbers = [1, 2, 3, 4, 5]
for number in numbers:
    print(f"{number}의 제곱은 {number**2}입니다.")

2.2 While Loop

  • 기능: 조건이 참일 동안 반복 실행.
  • 활용 사례: 사용자 입력 반복, 특정 조건 만족 시까지 작업 반복.
# 카운트다운 예제
count = 5
while count > 0:
    print(f"카운트다운: {count}")
    count -= 1
print("발사!")

주의점

  1. 무한 루프 주의: 조건이 항상 참이면 반복문이 종료되지 않음.
  2. 조건이 False가 되는 지점 확인: 조건을 충족하지 않도록 값을 업데이트해야 함.

3. 제어 흐름 변경 (Break, Continue)

Break

  • 기능: 반복문을 즉시 종료.
  • 활용 사례: 특정 조건을 만족하면 반복 작업을 중단.
for i in range(1, 11):
    if i == 5:
        break
    print(i)

Continue

  • 기능: 현재 반복을 건너뛰고 다음 반복으로 진행.
  • 활용 사례: 특정 조건을 건너뛰어 처리.
for i in range(1, 6):
    if i % 2 == 0:
        continue
    print(i)

Break & Continue 활용 예제

# 사용자 입력에 따라 반복 종료 또는 특정 조건 건너뛰기
while True:
    number = int(input("숫자를 입력하세요 (음수를 입력하면 종료): "))
    if number < 0:
        print("음수가 입력되어 프로그램을 종료합니다.")
        break
    if number % 2 == 0:
        print("짝수입니다.")
        continue
    print("홀수입니다.")

 

4. range()

기능

  • 숫자 시퀀스를 생성하여 반복문에서 사용.
  • range(start, stop, step) 형식으로 시작값, 종료값, 증가값 설정 가능.

활용 사례

  • 특정 범위의 숫자 순회, 패턴 생성, 특정 조건 반복.
# 홀수 출력
for i in range(1, 10, 2):
    print(i)

# 1부터 10까지 짝수만 출력
for i in range(1, 11):
    if i % 2 == 0:
        print(i)

주의점

  • 종료값(stop)은 포함되지 않음.

5. 중첩 반복문 (Nested Loop)

기능

  • 반복문 내부에 또 다른 반복문을 포함해 다차원 데이터 처리 또는 모든 조합 생성.
  • 활용 사례: 2D 배열 처리, 구구단 출력, 패턴 생성.

예제

# 모든 조합 생성
for i in range(1, 4):
    for j in range(1, 4):
        print(f"i={i}, j={j}")

# 구구단 출력
for i in range(2, 10):
    print(f"{i}단:")
    for j in range(1, 10):
        print(f"{i} x {j} = {i*j}")
    print()  # 단마다 줄바꿈 추가

주의점

  1. 루프 수 증가: 중첩 횟수가 많아질수록 성능 저하.
  2. 복잡성 관리: 코드가 복잡해질 수 있으므로 루프의 목적과 데이터를 명확히 설계.

'[Python 기초]' 카테고리의 다른 글

[Python] Error & Exception 정리  (0) 2024.11.26
[Python] Function(함수) 정리  (0) 2024.11.26
[Python] Data type 정리  (0) 2024.11.26
[Python] SET 정리  (2) 2024.11.26
[Python] Dictionary 정리  (2) 2024.11.26