본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
흐름제어(조건문, 반복문, 예외처리)
흐름제어 (Control Flow)
프로그램이 실행되는 동안 명령문이나 코드 블록의 실행 순서를 제어하고 결정하는 프로그래밍 개념
→ 즉, 흐름제어는 '프로그램의 사고방식'을 의미하고, 변수 ·자료구조가 재료라면 흐른제어는 판단하고 반복하는 사고 구조를 의미.
흐름제어의 종류
조건문
조건문은 조건을 검사하고 그 결과에 따라 다른 명령문 블록을 실행
ex) 10점이 넘으면 합격, 그렇지 않으면 불합격
반복문
명령문 블록을 여러 번 실행하는 데 사용 조건이 참인 동안 명령문을 반복 실행
ex) 10번 반복하여 메세지를 출력
예외 처리
예상치 못한 오류 또는 예외 상황을 처리하기 위해 사용
ex) 리스트에 없는 값을 삭제하려고 하면 잘못된 입력이라 출력하고 해당 명령을 무시
조건문
- "프로그램"은 다양한 명령문들의 집합
- 언제 어떠한 명령문을 사용할 것인가?
- 다양한 분기와 선택, "논리구조"의 구현
- 만약(if)와 그렇지 않다면(else)로 구성
- if 뒤에는 참/거짓을 가지는 조건문
- else 뒤에는 조건이 작성되지 않음
- if{boolean statement}:
- 조건에 의해 수행될 명령은 indent(들여쓰기)로 구분 (Tab / 4 Spaces)
<조건문 예시>
#10점이 넘으면 합격
score = 15
is_passed = False
if score > 10:
is_passed = True
#홀수면 "Odd", 짝수면 "Even" 출력
num = 11
if(num % 2 == 0):
print("Even")
else:
print("odd")
#1을 입력하면, 새로운 할 일 추가
choice = input("선택 : ")
if choice == "1":
todo = input("추가할 일 : ")
todo_list.append(todo)
print(f"{todo} 할 일이 추가되었습니다.")
복합조건문
- 여러 조건들을 중첩하여 체크하는 경우
- 한 if에서 필터링이 되지 않는 경우
- 여러 조건을 동시에 만족해야 하는 경우
- 계층구조에 따른 조건문을 만들고 싶은 경
복합조건문 - elif
- elif {boolean statement}:
- if 조건이 성립하지 않으며, 새로운 조건을 만족할 때 수행됨
score = 8
if score == 10:
print("You're the Best:")
elif score > 5:
print("You Passed!")
else:
print("You Failed..")
복합조건문 - Multi Condition
- if {boolean statement} [and/or] {boolean statement}:
→ 논리연산을 거친 결과가 True인 경우
level = 5
is_passed = True
if level > and is_passed:
print("You passed!")
elif is_passed:
print("Your level is not enough")
else:
print("You should pass")
반복문
- 특정 작업을 반복해서 수행
- '다른 값'에 대한 '동일한 연산'을 수행
- 자동적이고 효율적으로 반복 수행할 수 있음
- 반복문은 '언제 멈출 것인가'가 핵심!
- 반복 + 조건은 항상 세트로 생각
반복문 - for
- for : 시퀀스(리스트, 튜플, 문자열 등)을 순회할 수 있음
* 시퀀스 : 반복 가능한(Next 요소가 있는) 저장공간 - for를 통해 시퀀스 요소들에 동일한 연산을 수행
- 고정된 수행횟수
* 반복하여 수행될 명령은 indent(들여쓰기)로 구분 (Tab / 4 Spaces) - for {변수명} in {시퀀스}:
- else:
numbers = [1, 2, 3, 4, 5]
for number in numbers:
print(number)
else:
print("출력이 완료되었습니다.")
range()
- range([start, ], stop [, step])
- {Start}부터 {Step}만큼 증가, {Stop}까지의 숫자 목록을 생성
- 5회 반복(0~4), i갑은 1씩 증가
- range(n) : 0~(n-1) 까지의 정수
range(i, n) : i부터 (n-1) 까지의 정수
range(i, n, x) : i부터 (n-1) 까지, x 간격으로
enumerate()
- 시퀀스를 순회하며, 요소와 인덱스 쌍을 튜플로 반환
- 요소와 위치(순서)를 동시에 활용할 수 있음
- for loop의 시퀀스를 enumerate()로 감싸서 사용
fruits = ["사과", "바나나", "체리", "딸기"]
for index, fruit in enumerate(fruits, start=1):
print(f"{index} 번째 과일 : {fruit}")
반복문 - while
- while : 조건이 True인 동안 반복
- 수행횟수가 고정되지 않음
* 반복하여 수행될 명령은 indent(들여쓰기)로 구분 (Tab / 4 Spaces) - 반복문 내부에서 상태의 변화를 만들어주거나, 종료될 수 있는 상황을 만들어주어야 함
- while {boolean_statement}:
- else:
counter = 0
while counter < 3:
print(f'반복문 실행 중입니다. {counter}')
counter = counter + 1
else:
print('반복문이 종료되었습니다.')
반복문 제어하기
- break
→ 현재 수행 중인 반복문을 중단 - continue
→ 현재 수행 중인 반복 회차를 종료하고, 다음 반복 회차로 넘어감
<반복문 예시>
#주어진 숫자 리스트를 출력하다가, 10보다 큰 값을 만나면 종료하라
arr = [1, 3, 5, 11, 6, 15, 30]
for i in arr:
if i > 10:
break
else:
print(i)
무한 루프
- while True:
- 이 Loop는 프로그래머가 작성한 종료 규칙 또는 강제 중지로만 종료됨
- 특정 상황에 활용
→ 사용자 입력 대기 상황
→ 실시간 데이터 수집
pass
- 아무 작업도 수행하지 않고 코드블록을 빠져나오기 위한 예약어
- 아직 구현하지 않은 부분을 나타내거나, 차후 추가하기 위한 목적으로 활용
while True:
user_input = input("원하는 작업을 선택하세요 (q로 종료):")
if user_input == 'q':
break
elif user_input == '1':
#나중에 추가할 코드
pass
elif user_input == '2':
#나중에 추가할 코드
pass
▶ 모든 프로그램의 본질 : 판단(if), 반복(loop), 실패 대비(exception)
오늘 학습한 흐름제어란 프로그램이 실행되는 동안 어떤 명령문을 어떤 순서로 실행할지 결정하는 개념으로, 단순히 코드를 위에서 아래로 실행하는 것을 넘어 조건에 따라 분기하고, 필요할 때 반복하며, 예외 상황을 처리하는 구조를 만들어요. 흐름 제어의 대표적인 구성 요소는 조건문, 반복문, 예외처리가 있죠.
조건문은 특정 조건을 검사한 뒤, 그 결과에 따라 다른 명령문 블록을 실행하는, 말 그대로 코드에 '조건'을 달아 작성하는 겁니다. '점수가 60점을 넘으면 합격, 그렇지 않으면 불합격' 처럼, 현실의 판단 구조를 그대로 코드로 옮긴 형태라고 볼 수 있어요. 파이썬의 조건문은 if, elif, else로 구성되며, 조건 뒤에는 반드시 참(True) 또는 거짓(False)로 평가되는 식이 와야합니다. 특히 elif를 사용한 복합 조건문은 여러 조건을 계층적으로 판단할 때 매우 유용하죠. 조건을 위에서부터 차례로 검사하기 때문에, 논리 흐름이 자연스럽고 코드의 가독성도 좋아집니다. 또한 and, or 같은 논리 연산자를 활용하면 여러 조건을 동시에 고려하는 판단도 가능해집니다. 반복문은 특정 조건을 만족하는 동안 명령문 블록을 여러 번 실행할 때 사용됩니다. "5번 반복해서 메세지를 출력한다"와 같은 작업을 효율적으로 처리할 수 있고, 반복 횟수나 종료 조건을 어떻게 설정하느냐가 매우 중요합니다. 주의할 점은, 반복문은 잘못 작성하면 무한 루프에 빠질 수 있기 때문에, 항상 "언제 멈출지"를 함께 고려해야 합니다.
흐름제어는 단순한 문법이 아니라 프로그램에 사고 능력을 부여하는 핵심 장치라는 것을 이해할 수 있는 수업이었네요. 앞으로 더 복잡한 프로그램이나 AI 시스템을 만들 때 조건과 반복, 예외처리로 이루어진 흐름제어를 잘 생각해서 구성해야겠어요!!




커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr
'RAG' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 45일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.26 |
|---|---|
| 패스트캠퍼스 환급챌린지 44일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.25 |
| 패스트캠퍼스 환급챌린지 42일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.23 |
| 패스트캠퍼스 환급챌린지 41일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.22 |
| 패스트캠퍼스 환급챌린지 40일차 : 테디노트의 RAG 비법노트 강의 후기 (1) | 2025.12.21 |