5) for문 (1)

  파이썬의 특징을 가장 잘 대변해주는 것이 바로 이 for문이다.

for문은 매우 유용하고 사용할 때 문장 구조가 한눈에 들어오며 이것을 잘만 쓰면 프로그래밍이 즐겁기까지 하다.

 

for문의 기본구조

 

  for 문의 기본적인 구조는 다음과 같다.

 

for 변수 in 리스트(또는 튜플, 문자열):
    <수행할 문장1>
    <수행할 문장2>
    ...

 

리스트의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입되어 <수행할 문장1>, <수행할 문장2> 등이 수행된다.

 

예제를 통해 for 알아보기

 

  for문은 예제를 통해서 보는 것이 가장 알기 쉽다. 예제를 따라해 보도록 하자.

 

     예 1) 전형적인 for문

 

>>> test_list = ['one', 'two', 'three'] 
>>> for i in test_list: 
...     print(i)
... 
one 
two 
three

 

  ['one', 'two', 'three']라는 리스트의 첫 번째 요소인 'one'이 먼저 i변수에 대입된 후 print(i)라는 문장을 수행한다.

다음에 'two'라는 두 번째 요소가 i변수에 대입된 후 print(i)문장을 수행하고 리스트의 마지막 요소까지 이것을 반복한다.

  for문의 쓰임새를 알기 위해서 다음을 가정해 보자.

 

     “총 5명의 학생이 시험을 보았는데 시험점수가 60점이 넘으면 합격이고 그렇지 않으면 불합격이다. 합격인지 불합격인지에 대한 결과를 보여주시오.”

 

우선 5명의 학생의 시험성적을 리스트로 표현 해 보았다.

 

mark = [90, 25, 67, 45, 80]

 

  1번 학생은 90점이고 5번 학생은 80점이다.

이런 점수를 차례로 검사해서 합격했는지 불합격했는지에 대한 통보를 해주는 프로그램을 만들어 보자. 역시 에디터로 만들어 보자.

 

# marks1.py
marks = [90, 25, 67, 45, 80]

number = 0 
for mark in marks: 
    number = number +1 
    if mark >= 60: 
        print("%d번 학생은 합격입니다." % number)
    else: 
        print("%d번 학생은 불합격입니다." % number)

 

  각각의 학생에게 번호를 붙이기 위해서 number라는 변수를 이용하였다.

점수 리스트인 marks에서 차례로 점수를 꺼내어 mark라는 변수에 대입하고 for안의 문장들을 수행하게 된다.

  우선 for문이 한번씩 수행될 때마다 number는 1씩 증가하고 mark가 60이상이면 합격 메시지를 출력하고 60을 넘지 않으면 불합격 메시지를 출력한다.

 

for와 continue

 

  while문에서 알아보았던 continue가 for문에서도 역시 동일하게 적용이 된다.

즉, for문 안의 문장을 수행하는 도중에 continue문을 만나면 for문의 처음으로 돌아가게 된다.

  위의 예제를 그대로 이용해서 60점 이상인 사람에게는 축하 메시지를 보내고 나머지 사람에게는 아무런 메시지도 전하지 않는 프로그램을 만들어 보자.

 

# marks2.py 
marks = [90, 25, 67, 45, 80]

number = 0 
for mark in marks: 
    number = number +1 
    if mark < 60: continue 
    print("%d번 학생 축하합니다. 합격입니다. " % number)

 

점수가 60점 이하인 학생일 경우에는 mark < 60이 참이 되어 continue문이 수행된다.

  따라서 축하 메시지를 출력하는 부분인 print문을 수행하지 않고 for문의 첫부분으로 돌아가게 된다.