나의 따님들과 함께하고 싶은 코딩여행
그간 파이썬과 Jupyter Notebook 설치하느라 힘들었죠. 그리고 잘되지 않아서 구글링도 하고 네이버도 뒤지고 하면서 파이썬이니 주피터니 이런 용어들과 친숙해졌으리라 믿어요.
오늘은 코딩의 가장 핵심인 for loop (반복문)에 대해 시작하고 싶어요. 사실 반목문은 고수들의 영역인데, 소림사 초보가 고수가 되려면 여러 가지 수련을 해야 하듯이 우리는 가장 낮은 1층의 첫 번째 계단에서 100층의 마지막 계단까지 올라가야 합니다. 반복을 하는 거죠. 그런데 체력이 떨어지듯이, 컴퓨터는 계산 결과를 층마다 새로 Update 해야 합니다.
우리는 2x2=4 인 것을 압니다. 컴퓨터 연산으로는 x가 아니라 *입니다.
아래 Cell 13을 보면 i=2라고 선언을 했습니다. 이 말은 print(2*i)= print(2*2)= 4가 되는 것과 마찬가지입니다. 이해가 되죠?
이제는 한 번에 더 많게 i를 1~5로 확대하고, 다시 전체 곱하기를 해보면 cell [14]처럼 2*1~2*5까지 반복적으로 계산을 해서 2,4,6,8,10을 줍니다.
오른편 cell들은 i 대신 별을 주었습니다. star *2는 별을 2개를 그려줍니다. 만일 제가 백만 개의 별이 필요하다면 for loop으로 해결하면 되는데, 이 매직을 모르면 별을 복사해서 백만 번 붙여야 합니다. 아마 천 번을 넘어 가면 이개 천 개인가를 다시 세어봐야 할지도 모르고 백만 개를 다 그리기 전에 그린 숫자도 깜빡깜빡할 겁니다.
아니면 수동으로 cell [16]처럼 일일이 하든가, 아니면 cell [17]처럼 할 수도 있지만, 백만 송이의 장미를 그리는 경우 숫자를 백만 번 입력해야 해요. "아 이렇게 하나씩 쓰는 게 귀찮으니까 for문을 쓰는 거구나!"
이해되죠?
결론적으로
"만약 2 ×1부터 2 ×100까지 하려면 어떻게 할까?
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11... 100] 이렇게 다 쓸 거야?
그래서 range(1, 101)이라는 편리한 방법이 있는 거구나!" 도 이해가 됐죠?
# 더 똑똑한 방법 (숫자가 많을 때)