파이썬에는 반복문이 기존에 배웠던 while 문 외에도 for 문 이 있습니다.
파이썬 반복문 for 문 의 경우에는 while 문과 비슷하긴 하지만 그에 비해 문장 구조가 한눈에 쏙 들어온다는 장점이 있습니다.
반복문 for 문 의 기본 구조
for 문의 기본 구조 입니다
for 변수 in 리스트(또는 문자열이나 튜플):
수행할 문장 1
수행할 문장 2
...
for문은 리스트, 튜플, 문자열의 첫번째 요소부터 마지막 요소까지 변수에 차례대로 대입되면서 다음에 나오는 수행할 문장 1, 수행할 문장 2,… 등이 수행됩니다.
파이썬 for 문 예제
1. 전형적 for 문
>>> list_01 = ['one day', 'two day', 'three day']
>>> for i in list_01:
... print(i)
...
one day
two day
three day
리스트 list_01 의 요소 [‘one day’, ‘two day’, ‘three day’] 의 첫번째 요소인 ‘one day’가 제일 먼저 i 변수에 대입됩니다. 그리고 print(i) 를 통해 one day 가 출력 됩니다. 다음으로 두번째 요소인 ‘two day’ 가 i 변수에 입력 됩고 two day 가 출력 됩니다. 이렇게 반복해서 마지막 요소인 three day 까지 출력되게 됩니다.
2. 다양한 파이썬 for 문
>>> l = [(2, 4), (6, 8), (10, 12)]
>>> for (a, b) in l:
... print(a + b)
...
6
14
22
위 예제에서는 l 리스트의 요솟값 들이 튜플이기 때문에 각 요소들이 자동적으로 (a, b) 변수에 대입 되어서 2, 4의 합, 6, 8 의 합, 10, 12의 합 결과들이 출력 되게 됩니다.
3. 파이썬 for 문의 응용
아래와 같은 문제가 있습니다.
총 5명의 학생이 있고, 시험을 봐서 시험 점수가 70 점 이상이면 합격, 아니면 불합격 이라고 판단하고 합격인지 불합격인지 판단해서 결과를 출력해보세요
5명의 시험 점수는 아래와 같습니다.
j = [80, 75, 90, 65, 30]
첫 번째 학생은 80 점이고 마지막 학생은 30 점 입니다.
프로그래밍을 해보면 아래와 같습니다.
# mark_01.py
j = [80, 75, 90, 65, 30]
n = 0
for i in j:
n = n + 1
if i >= 70:
print("%d 번째 학생은 합격입니다." % n)
else:
print("%d 번째 학생은 불합격입니다." % n)
첫번째 부터 다섯번째 학생까지 번호를 부여하기 위해 n 변수를 사용했습니다.
j 리스트에서 차례로 점수를 꺼내서 i 변수에 대입하고 for 문 안의 문장들을 수행하게 됩니다.
for 문이 한 번씩 수행 될때 마다 n 변수는 1 씩 증가합니다.
실행을 해보면 i 변수가 70 이상 일 때 합격했다는 문장을 출력하고 그렇지 않으면 불합격 했다는 문장을 출력하게 됩니다.
1 번째 학생은 합격입니다.
2 번째 학생은 합격입니다.
3 번째 학생은 합격입니다.
4 번째 학생은 불합격입니다.
5 번째 학생은 불합격입니다.
for 문과 continue
이전 while 문에서도 continue 문이 있었는데 for 문에서도 사용이 가능합니다.
while 문과 마찬가지로 for 문 안의 문장을 수행하다가 continue 문을 만나게 되면 for 문의 처음으로 돌아가게 됩니다.
직전에 했던 for 문 예문을 활용해서 70 점 이상인 사람에게만 축하한다는 문장을 출력하고 나머지 사람은 불합격 문장을 출력하지 않고 그냥 지나가는 프로그램을 작성해 보겠습니다.
# mark_02.py
j = [80, 75, 90, 65, 30]
n = 0
for i in j:
n = n + 1
if i < 70:
continue
print("%d 번째 학생은 합격입니다. 축하합니다." % n)
실행 결과는 다음과 같습니다
1 번째 학생은 합격입니다. 축하합니다.
2 번째 학생은 합격입니다. 축하합니다.
3 번째 학생은 합격입니다. 축하합니다.
점수가 70 보다 작을 경우에 참이 되어 첫번째 부터 세번째 학생은 축하한다는 문장을 출력하고 나머지 학생의 경우에는 for 문의 처음으로 돌아가므로 아무 문장도 출력하지 않게 됩니다.
이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
