6. 제어문 > 6-7. for문 응용
for문 응용
해당 파트는 아래 영상 시청 후 교안을 정독해주세요.
이중 for문 for문 안에는 또 다른 for문을 넣어 반복시켜줄 수 있습니다. 아래 코드를 실행하면 어떤 결과가 나올지 생각해본 뒤, 코드를 쳐서 출력 결과를 확인해보세요.
for a in range(1, 10):
for b in range(1, 10):
print('%d * %d = %d'%(a, b, a * b))
print('===%d단 끝!==='%(a))
print('구구단 1단 부터 9단까지 끝!')
결과를 확인해보셨나요? 이 코드는 구구단 1단 부터 9단까지를 출력하는 코드였습니다. 아래 이미지는 어떤 순서로 중첩된 2개의 for문이 실행되는지 설명하고 있습니다.
리스트 안에 for문 포함하기
기존에 for문은 ':'기호 뒤에 엔터+들여쓰기 형식을 꼭 지켜야 한다고 했는데요, 사실 가독성은 떨어지지만 한 줄로 for문을 간단하게 작성하는 방법도 있습니다. 이는 새로운 리스트에 데이터를 채워주는 코드를 작성할 때 자주 사용됩니다.
# 기존 방법
new_list=[] # 빈 리스트 만들어주기
for i in range(1,6):
new_list.append(i * 10)
# 간단한 방법
new_list=[i*10 for i in range(1,6)]
for문의 break, continue
break와 continue는 앞서 배운 while에서와 동일한 역할을 합니다. (: 뒤에 바로 써 줄 수도 있고 엔터 + 들여쓰기 형식에 맞춰 사용할 수도 있습니다.)
# break 예시
for i in range(1,5):
if i > 3:
break
print(i)
# continue 예시
for i in range(1,5):
if i > 3: continue
print(i)
for문의 else
if문에서 사용되는 else가 for문에서 사용되기도 합니다. for와 함께 쓰는 else는, for문이 중간에 break 등으로 끊기지 않고 끝까지 정상적으로 실행 되었을 때 수행됩니다.
a = 100
for i in range(0,10):
print(i)
if i == a: break
else:
print('for complete')
print('done')
위 코드를 한 줄씩 해석해보면 다음과 같습니다.
✔️동일하게 '반복'이 포인트인 for와 while, 차이가 뭔가요?
- for
- 지정된 횟수, 지정된 데이터 수 만큼의 반복.
- 변수를 지정
- while
- 조건이 만족될 때(거짓이 될때까지)까지 반복.
- 조건이 만족되지 않는다면 무한으로 실행됨.
이렇게 봐도 둘의 차이가 잘 이해되지 않으시나요? 괜찮습니다. 파이썬에는 비슷한 역할을 하지만 다르게 표현하는 문법들이 많습니다. 사용자는 상황에 따라서 더 적합한, 더 익숙한 코드를 작성하면 된답니다!