제어문
파이썬의 제어구문은 프로그램의 흐름을 제어하는 데 사용됩니다. 조건문과 반복문이 주된 제어구문이며, 추가로 예외 처리를 위한 구문도 포함됩니다.
1. 조건문 (Conditional Statements)
(1) if, elif, else
- 특정 조건에 따라 코드 블록을 실행하거나 건너뛰는 데 사용됩니다.
-
구문 형식:
if 조건식: 실행할 코드 elif 다른 조건식: 실행할 코드 else: 실행할 코드 -
예제:
score = 85 if score >= 90: print("A등급") elif score >= 80: print("B등급") else: print("C등급")
(2) 중첩 조건문
- 조건문 안에 또 다른 조건문을 포함.
- 예제:
age = 20 has_ticket = True if age >= 18: if has_ticket: print("입장 가능") else: print("티켓이 필요합니다") else: print("나이가 부족합니다")
(3) 조건 표현식 (삼항 연산자)
- 단일 표현식으로 조건에 따라 값을 선택.
-
구문 형식:
참일 때 값 if 조건식 else 거짓일 때 값 -
예제:
age = 18 category = "성인" if age >= 18 else "미성년자" print(category) # 성인
2. 반복문 (Loops)
(1) for 문
- 반복 가능한 객체(리스트, 문자열, 튜플 등)를 순회.
-
구문 형식:
for 변수 in 반복 가능한 객체: 실행할 코드 -
예제:
for i in range(5): print(i) # 0, 1, 2, 3, 4 -
중첩
for문:for i in range(3): for j in range(2): print(f"i={i}, j={j}")
(2) while 문
- 조건식이 참인 동안 코드 블록을 반복.
-
구문 형식:
while 조건식: 실행할 코드 -
예제:
count = 0 while count < 5: print(count) count += 1
(3) 반복 제어 구문
-
break: 반복문을 즉시 종료.for i in range(10): if i == 5: break print(i) # 0, 1, 2, 3, 4 -
continue: 현재 반복을 건너뛰고 다음 반복으로 이동.for i in range(5): if i == 2: continue print(i) # 0, 1, 3, 4 -
else: 반복문이 정상 종료된 경우 실행.for i in range(5): print(i) else: print("반복 종료") # 반복문이 break 없이 종료되면 실행
3. 예외 처리 (Exception Handling)
(1) try, except, else, finally
- 프로그램 실행 중 발생할 수 있는 오류를 처리하여 중단을 방지.
-
구문 형식:
try: 실행할 코드 except 예외 종류: 예외 처리 코드 else: 예외가 발생하지 않을 때 실행할 코드 finally: 항상 실행할 코드 -
예제:
try: num = int(input("숫자를 입력하세요: ")) print(10 / num) except ZeroDivisionError: print("0으로 나눌 수 없습니다.") except ValueError: print("숫자를 입력해야 합니다.") else: print("정상적으로 처리되었습니다.") finally: print("프로그램 종료")
4. 컴프리헨션 (Comprehension)
(1) 리스트 컴프리헨션
- 설명: 반복문을 사용하여 리스트를 간결하게 생성.
-
구문 형식:
[표현식 for 변수 in 반복 가능한 객체 if 조건식] -
예제:
squares = [x**2 for x in range(10) if x % 2 == 0] print(squares) # [0, 4, 16, 36, 64]
(2) 딕셔너리 컴프리헨션
- 예제:
keys = ['a', 'b', 'c'] values = [1, 2, 3] dictionary = {k: v for k, v in zip(keys, values)} print(dictionary) # {'a': 1, 'b': 2, 'c': 3}
(3) 집합 컴프리헨션
- 예제:
unique_squares = {x**2 for x in range(10)} print(unique_squares) # {0, 1, 4, 9, 16, 25, 36, 49, 64, 81}
5. 함수와 관련된 제어 구문
(1) return
- 함수에서 값을 반환하고 실행 종료.
- 예제:
def add(a, b): return a + b print(add(2, 3)) # 5
(2) pass
- 실행할 코드가 없을 때 사용.
- 예제:
if True: pass # 아무 작업도 하지 않음
(3) yield
- 제너레이터 함수에서 값을 반환하고 상태를 유지.
- 예제:
def generate_numbers(): for i in range(3): yield i for num in generate_numbers(): print(num) # 0, 1, 2
요약
- 조건문:
if,elif,else로 분기 처리. - 반복문:
for,while로 반복 처리.break,continue,else로 제어 가능. - 예외 처리:
try,except,else,finally로 오류 관리. - 컴프리헨션: 반복문과 조건을 간결하게 활용.
- 기타:
pass,return,yield로 추가 흐름 제어.
제어구문을 잘 활용하면 복잡한 프로그램도 간결하고 효율적으로 작성할 수 있습니다. 😊