파이썬 프로그램의 흐름제어 - for 문 완전 정복
파이썬 프로그램의 흐름제어 - for 문 완전 정복
여러분,
파이썬에서 반복 작업을 효율적으로 처리하는 방법이 궁금하지 않으셨나요?
바로 그 해답은 for 문에 있습니다!
안녕하세요, 여러분 😊
오늘은 파이썬에서 정말 많이 쓰이고 중요한 문법 중 하나인 for 문에 대해 아주 쉽게 풀어서 알려드릴게요.
조건문(if)과 반복문(while)도 중요하지만, 데이터를 다루거나 뭔가를 반복해서 처리할 때는 역시 for 문이 최고죠.
특히 range 함수, continue 문, 그리고 리스트 컴프리헨션 같이 for 문과 찰떡인 기능들도 함께 알아볼 거예요.
예제도 하나하나 실습하면서 따라올 수 있게 구성했으니, 파이썬이 처음이신 분들도 걱정하지 마세요! 👶🐍
목차
1. for 문의 기본 구조 🧱
프로그래밍을 시작하면서 반복적으로 어떤 작업을 수행해야 할 때가 많죠.
이럴 때 쓰는 게 바로 for 문입니다.
파이썬의 for
문은 반복 가능한(iterable) 객체의 요소를 하나씩 꺼내서 사용하는 반복문이에요.
문법도 아주 간단하고 직관적이죠.
기본 문법 📐
for 변수 in 반복가능한객체:
반복할 코드
예를 들어, 리스트 안의 숫자들을 하나씩 출력하려면 아래처럼 작성할 수 있어요.
numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(num)
위 코드를 실행하면 1부터 5까지 순서대로 출력돼요.
여기서 중요한 건 num
이라는 변수에 리스트의 각 요소가 순서대로 들어간다는 거죠.
다양한 반복 가능 객체 활용 🧺
for
문은 리스트뿐 아니라 문자열, 튜플, 딕셔너리 등에도 사용이 가능해요.
# 문자열 예시
for ch in "hello":
print(ch)
# 튜플 예시
for item in ("apple", "banana", "cherry"):
print(item)
for
문은 반복 가능한 객체라면 종류에 상관없이 쓸 수 있어서 활용도가 엄청 높습니다.
📋 for 문의 구성요소 정리
요소 | 설명 |
---|---|
변수 | 반복할 때마다 바뀌는 요소 하나를 담는 그릇 |
반복가능한 객체 | 리스트, 튜플, 문자열, 딕셔너리 등 |
코드 블록 | 들여쓰기 된 코드가 반복적으로 실행됨 |
📌 꼭 기억해요!
-
for 변수 in 객체:
뒤에는 반드시 콜론(:)을 붙여야 해요. - 반복할 코드는 반드시 들여쓰기가 되어야 해요!
이제 for 문의 기본적인 구조를 익혔으니, 다음은 실전 예제를 통해 한층 더 실력을 업그레이드해볼까요?
바로 다음 STEP에서 실습을 해볼게요! 😉
2. 실전 예제로 배우는 for 문 사용법 💻
이론만 알아서는 부족하죠!
실제로 손으로 코드를 써보며 감을 잡는 것이 중요합니다.
이번에는 for 문을 활용한 다양한 예제를 통해 반복문의 구조와 활용법을 몸에 익혀보도록 할게요. 🧠
예제 1: 리스트 요소 출력하기
fruits = ['사과', '바나나', '포도', '딸기']
for fruit in fruits:
print(fruit)
위 예제는 리스트에 있는 과일 이름을 하나씩 출력합니다.
파이썬의 for
문이 얼마나 간결한지 다시 한 번 느껴지죠?
예제 2: 시험 점수에 따른 합격/불합격 판단
scores = [90, 45, 67, 38, 80]
for score in scores:
if score >= 60:
print("합격입니다.")
else:
print("불합격입니다.")
이 코드는 점수 리스트를 순회하며 각 점수가 60점 이상이면 합격, 그렇지 않으면 불합격이라고 출력합니다. 실제 학교 성적 처리 로직에도 많이 활용돼요.
예제 3: 인덱스와 함께 출력하고 싶을 땐?
students = ['홍길동', '이순신', '강감찬']
for i in range(len(students)):
print(f"{i + 1}번 학생: {students[i]}")
range(len(...))
를 사용하면 리스트의 인덱스를 활용할 수 있어요.
이렇게 번호를 매길 때 자주 쓰이는 패턴입니다.
하지만 더 좋은 방법이 있답니다... 👉 enumerate
!
예제 4: enumerate를 활용한 반복
for idx, student in enumerate(students):
print(f"{idx + 1}번 학생: {student}")
enumerate()
를 사용하면 코드가 훨씬 깔끔해져요.
인덱스와 값을 동시에 다룰 때는 꼭 기억해두세요.
for 문 활용 요약 🧾
활용 예 | 설명 |
---|---|
리스트 요소 출력 | 각 항목을 순서대로 출력 |
조건에 따라 출력 | if 문과 결합하여 판단 |
인덱스 출력 | range 또는 enumerate 사용 |
이처럼 for 문은 실전에서도 정말 다양하게 활용돼요.
이제 다음 단계에서는 range()
함수를 활용해서 반복 범위를 자유자재로 다루는 법을 알려드릴게요. 🧙♂️
3. range 함수로 숫자 다루기 🎯
앞에서 본 것처럼 리스트나 문자열을 대상으로 for
문을 쓰는 것도 좋지만, 숫자를 반복하고 싶을 땐 range() 함수를 이용합니다!
이 함수는 숫자 범위를 손쉽게 만들어주고, 반복문과 정말 궁합이 잘 맞는 친구입니다. 🎯
range 함수 기본 사용법
# 기본 형식: range(끝)
for i in range(5):
print(i)
이 코드는 0
부터 4
까지, 총 5번 반복해요.
range(n)
은 기본적으로 0부터 n-1까지 반복한다는 점을 꼭 기억하세요!
range 응용법: 시작, 끝, 간격
# 형식: range(시작, 끝, 간격)
for i in range(1, 10, 2):
print(i)
이렇게 쓰면 1
부터 9
까지 2씩 증가하면서 반복돼요.
즉, 결과는 1, 3, 5, 7, 9
가 됩니다. 😎
range 함수 파라미터 정리
형식 | 설명 |
---|---|
range(n) | 0부터 n-1까지 반복 |
range(start, end) | start부터 end-1까지 반복 |
range(start, end, step) | step 간격으로 반복 |
range로 합계 구하기
total = 0
for i in range(1, 11):
total += i
print("1부터 10까지의 합:", total)
1부터 10까지의 숫자
를 반복하면서 모두 더한 후, 총합을 출력합니다.
이런 계산도 range와 for 문 조합만 있으면 끝!
💡 기억할 것!
-
range()
는 메모리를 아끼는 range 객체를 리턴한다는 점도 참고! - 범위에 끝 숫자는 포함되지 않는다는 점 주의!
이제 숫자를 다루는 반복문은 문제없겠죠? 😎
다음 단계에서는 continue 문을 활용해 반복 중 일부 조건만 건너뛰는 방법을 배워볼게요!
4. continue 문과 for 문의 조합 💡
for
문을 쓸 때, 어떤 조건일 때는 그 순간의 반복만 건너뛰고 싶을 때가 있어요.
그럴 때 사용하는 게 바로 continue
문입니다.
이 문법을 잘 활용하면 프로그램의 흐름을 좀 더 유연하고 깔끔하게 만들 수 있답니다.
예제를 통해 바로 알아볼게요! 🔄
예제: 60점 이상인 학생에게만 메시지 출력
scores = [90, 45, 67, 38, 80]
for score in scores:
if score < 60:
continue
print("축하합니다! 합격입니다.")
이 코드에서는 score
가 60점 미만이면 continue
를 만나 반복을 건너뛰고 다음으로 넘어갑니다.
그래서 합격한 사람에게만 축하 메시지가 출력돼요. 🎉
⛳ continue 문을 사용할 때 주의할 점
-
continue
는 반복문의 맨 처음으로 돌아가게 합니다. - 조건에 따라 특정 상황만 제외 처리할 수 있어요.
예제: 홀수만 출력하기
for i in range(1, 11):
if i % 2 == 0:
continue
print(i)
i % 2 == 0
조건은 짝수일 때만 참이 되니까 continue
가 실행되고, 결과적으로 홀수만 출력되죠.
이렇게 하면 리스트나 범위에서 특정 조건만 필터링할 수 있어요. 😎
📝 정리하면!
문법 | 기능 |
---|---|
continue |
해당 반복을 건너뛰고 다음 반복으로 이동 |
if 조건: continue |
조건을 만족할 경우 실행 중단 |
continue
문은 불필요한 연산을 줄이거나, 깔끔하게 예외 처리를 할 때 유용합니다.
이제 다음 단계에서는 중첩 for 문을 활용한 구구단 만들기를 직접 해볼 거예요.
재밌는 수학 놀이 준비되셨죠? 😆
5. 중첩 for 문으로 구구단 만들기 🧮
파이썬의 반복문은 반복 안에 또 다른 반복을 넣을 수 있어요.
이걸 중첩 반복문이라고 부르는데요, 가장 대표적인 예가 바로 구구단입니다!
프로그래밍 입문자라면 꼭 한 번 만들어보는 예제죠.
함께 만들어보면서 반복문에 대한 이해를 단단히 다져봅시다! 💪
예제: 구구단 2단부터 9단까지 출력하기
for i in range(2, 10): # 2단부터 9단까지
for j in range(1, 10): # 1부터 9까지 곱함
print(f"{i} x {j} = {i * j}")
print("") # 단 사이에 줄바꿈
이 코드는 바깥 for 문이 단을 반복하고, 안쪽 for 문이 각 단에 곱해질 수를 반복합니다.
즉, 2 x 1 ~ 2 x 9
부터 9 x 1 ~ 9 x 9
까지 출력해주는 구조예요.
이렇게 반복문 안에 또 다른 반복문을 넣으면 다양한 형태의 반복 처리가 가능하죠!
🧠 중첩 반복문 동작 방식
바깥 for 문 | 안쪽 for 문 | 결과 |
---|---|---|
i = 2 | j = 1~9 | 2단 출력 |
i = 3 | j = 1~9 | 3단 출력 |
도전! 구구단을 세로가 아닌 가로로 출력해보기
for j in range(1, 10):
for i in range(2, 10):
print(f"{i}x{j}={i*j}", end="\t")
print()
end="\t"
를 활용해서 가로로 정렬된 구구단을 출력해봤어요.
이런 방식은 표 형태로 데이터를 출력하고 싶을 때도 활용돼요.
응용력만 키우면 반복문은 정말 강력한 도구가 됩니다!
📌 중첩 반복문 팁!
- 바깥 반복문 한 번 → 안쪽 반복문 전부 실행 → 바깥 반복 다음으로 넘어감!
- print 안에
end=
옵션을 활용하면 출력 형식을 자유롭게 바꿀 수 있어요.
이제 중첩 for 문까지 마스터했어요!
마지막으로 반복문을 더 간결하게 만들어주는 리스트 컴프리헨션을 알아보러 가볼까요? 🔁
6. 리스트 컴프리헨션 완전 정복 🔁
여러분, 반복문으로 리스트를 만들어 본 적 있죠?
그런데 그걸 한 줄로 작성할 수 있다면 얼마나 깔끔할까요?
그걸 가능하게 해주는 게 바로 리스트 컴프리헨션입니다.
파이썬의 대표적인 파워 기능 중 하나죠! 🦾
기본 리스트 컴프리헨션 구조
# 일반적인 방법
result = []
for i in range(1, 6):
result.append(i * 3)
# 리스트 컴프리헨션
result = [i * 3 for i in range(1, 6)]
같은 결과를 훨씬 간단하고 보기 좋게 만들 수 있죠?
이런 게 바로 파이썬이 사랑받는 이유 중 하나예요. 😍
💡 조건도 넣을 수 있어요!
# 짝수에만 3을 곱하고 싶다면?
result = [i * 3 for i in range(1, 6) if i % 2 == 0]
if
조건도 함께 넣을 수 있어서 필터링 + 계산을 동시에 할 수 있어요.
자바스크립트의 filter + map
조합과 비슷한 느낌입니다.
2중 for문도 사용 가능!
# 구구단 결과만 모으기
gugudan = [i * j for i in range(2, 10) for j in range(1, 10)]
무려 2중 반복문도 한 줄에 담을 수 있어요.
가독성만 잘 신경 쓰면 아주 강력한 도구가 될 수 있죠.
📚 리스트 컴프리헨션 vs 일반 for 문
항목 | 일반 for 문 | 리스트 컴프리헨션 |
---|---|---|
가독성 | 긴 코드로 명확 | 간결하고 직관적 |
성능 | 느릴 수 있음 | 빠르고 효율적 |
조건 처리 | if 별도 작성 | 한 줄에 if 포함 가능 |
이제 여러분도 반복문 마스터!
for 문 + range + continue + 중첩 for + 리스트 컴프리헨션
까지 완벽하게 익히셨습니다.
진짜 실전에서는 이 조합만 잘 써도 웬만한 자동화 작업이나 로직 처리는 다 가능해요. 😎
🎯 마무리
오늘은 파이썬의 반복문 중에서도 for 문을 중심으로 실습을 해봤습니다.
처음에는 다소 헷갈릴 수 있지만, 코드를 직접 써보고, 실행해보는 과정에서 자연스럽게 익혀집니다.
다양한 예제를 반복해서 연습하면서 손에 익히는 게 가장 좋아요.
무작정 외우기보다는, 왜 이렇게 쓰는지 이해하면서 응용력을 키워보세요.
이제 조건문과 반복문의 조합으로 나만의 간단한 프로그램도 만들 수 있을 거예요!
다음 강의에서는 사용자 정의 함수와 내장 함수들을 통해 한층 더 실용적인 파이썬 코딩을 배워볼게요.
기대해주세요!