>>>for i in range(1,13):
... print "%d x 12 = %d" % (i, i*12)
...
고지 1: range(1,13)으로 13을 지정할 필요가 있는데 range() 함수는 앞 숫자에서부터 두 번째 숫자 미만까지 만들어내기 때문입니다. 처음보면 약간 괴이하게 보이지만 거기에는 이유가 있으며 곧 익숙해질 것입니다.
고지 2: 파이썬에서 for 연산자는 실제로 foreach 연산자입니다. 한 집단의 각 원소에 코드를 적용한다는 점에서 말입니다. 이 경우 집단은 range()가 생성한 숫자로 구성된 연속열입니다. 파이썬 프롬프트에서 print range(1,13)를 타자해서 무엇이 인쇄되는지 보면 증명할 수 있습니다.
고지 3: print 줄은 들여쓰기(indented) 되어 있습니다. 다시 말해 위의 for 줄보다 더 안으로 공간이 들어가 있습니다. 파이썬에게 print가 반복할 부분이라는 것을 알리는데 아주 중요한 요점입니다. 여러 줄이 안으로 들여쓰기 되어도 좋습니다. 파이썬은 집단의 매 원소마다 들여쓰기된 그 모든 줄을 반복할 것입니다. 또한, 얼마를 들여쓰기 하든 신경쓰지 않습니다. 일관성만 있으면 됩니다.
고지 4: 상호대화 인터프리터에서 리턴키를 두 번 눌러야 프로그램을 실행시킬 수 있습니다. 그 이유는 파이썬 인터프리터가 첫 리턴키만으로는 회돌이 코드 뒤에 추가해야 할 또다른 줄인지 아닌지 구별하지 못하기 때문입니다. 두 번째로 엔터키를 치면 파이썬은 코드가 끝났다고 간주하고 프로그램을 실행시킵니다.
그래서 어떻게 프로그램은 작동하는가? 단계별로 알아 봅시다.
무엇보다, 파이썬은 range 함수를 사용하여 1에서 12까지의 숫자 리스트를 만듭니다.
다음으로 파이썬은 i를 리스트의 첫 값과 똑 같이 만듭니다. 이 경우 1이군요. 다음으로 값 i = 1을 사용하여 들여쓰기된 코드를 실행합니다:
print "%d x 12 = %d" % (1, 1*12)
다음으로 파이썬은 다시 for 줄로 되돌아가 i에 리스트의 다음 값을 설정하는데, 이번에는 2이군요. 다시 들여쓰기된 코드를 실행합니다. 이번에는 i = 2를 사용합니다:
print "%d x 12 = %d" % (2, 2*12)
i에 리스트의 모든 값이 할당될 때까지 계속해서 이렇게 반복합니다. 그 지점에 이르면 들여쓰기 되지 않은 다음 명령어로 갑니다. 실제로 - 이 경우 더 이상 명령어가 없으므로 프로그램이 끝납니다.
Posted by 홍반장