이번엔 for 문에 대해서 알아볼 차례입니다. 파이썬에서 for 문의 쓰임새는 다른 언어와 차이가 있다고 하네요. 저도 그걸 모르고 한참 글을 쓰다보니 뭔가 이상하다는 것을 발견했습니다. ^^;
for 문은 우리가 전에 배웠던 목록(list)과 같은 순서형 자료를 이용해서 원하는 명령을 반복할 때 쓰인다고 합니다. 순서형에 대해서는 나중에 자세하게 알려드리도록 하구요, 전에 배웠던 목록을 다시 한번 볼까요?
>>> family = ['mother', 'father', 'gentleman', 'sexy lady']
저희 가족이 이랬었는데 기억 나시지요? 그냥 따라 치지 마시고 여러분의 가족을 나타내는 목록을 만들어 보세요.
다음은 for 문을 이용해서 저희 가족들의 이름과 문자열 길이를 출력하는 프로그램입니다.
>>> for x in family: # family라는 목록의 각각의 항목 x에 대하여:
... print('%s %s' % (x, len(x))) # x와 x의 길이를 출력하라.
...
답은 아래와 같이 나오게 되지요.
mother 6
father 6
gentleman 9
sexy lady 9
in family for x:라고 쓰면 안되냐구요?
안되네요. --;
문법이 그런 거니까 그대로 써주시면 됩니다.
이번엔 range()라는 것을 배워보도록 하지요. range는 범위라는 뜻인데 여기서는 어떤 숫자를 적어주면 그 범위 안에서 리스트를 만들어줍니다. 말은 좀 어렵지만 별 거 아니랍니다.
>>> range(2, 7) # 파이썬 2
>>> list(range(2, 7)) # 파이썬 3
이렇게 쳐 보세요. 어떤 답이 나오나요?
[2, 3, 4, 5, 6]
예, 2 이상 7 미만인 숫자로 리스트를 만들어 주었군요. 위에서 설명한 말이 이해되시죠?
그런데, for를 설명하다가 갑자기 웬 range가 나오는 걸까요? 그렇습니다. for 문에서 range를 써먹을 수 있기 때문이겠죠. range와 리스트는 결국 같은 것이니까 for 문에서도 사용할 수 있다는 말씀입니다.
>>> a = [4, 5, 6, 7]
>>> for i in a:
... print(i)
...
위의 예제와 아래 예제는 같은 일을 하게 되는 것이지요.
>>> for i in range(4, 8):
... print(i)
...
답이 어떻게 나올까요? 따라서 치시기 전에 먼저 생각을 해보세요. 그리 어렵지 않죠?