Variable, Loop, Control
프로그래밍의 기본인 변수를 먼저 알아야겠죠?
먼저 jupyter notebook을 실행합니다.
오른쪽 위의 New -> Python 3로 새로운 노트북 파일(.ipynb)을 만듭니다.
이제 새롭게 뜨는 창에서 하나씩 따라서 변수를 배워보겠습니다.
변수는 변할 수 있는 값을 뜻합니다.
위에 있는 내용을 그대로 치고 Shift + Enter를 치면 해당 셀을 실행합니다.
현재 car에 3이라는 값이 담겨있기 때문에 3대라고 출력합니다.
파이썬에서는 %d의 부분에서 % 변수에 해당하는 값을 불러와서 출력할 수 있습니다.
이것을 문자열 포맷팅이라고 부르는데, 다음 시간에 알아보고
오늘은 변수와 반복문, 제어문에 집중해보도록 하죠.
사정이 안 좋아져서 자동차를 팔았습니다.
car에 새로운 값인 2를 넣어줍니다.
똑같은 출력 문장을 실행하면 2대로 줄어든 것을 알 수 있습니다.
이처럼 변할 수 있는 car와 같은 단어를 변수라고 부릅니다.
다른 언어에서는 var, 혹은 int car와 같이 자료형을 함께 적어서 변수를 선언해줍니다.
하지만 파이썬에서는 그냥 car라는 단어를 적는 것으로만으로도 변수 선언이 끝납니다.
변수에 값을 대입할 때(=)는 꼭 숫자를 직접 입력하지 않아도 됩니다.
수식으로도 변수에 값을 넣을 수 있습니다.
다시 한번 경제적 상황이 안 좋아서 차를 팔아볼까요?
기존에 내가 차가 몇 대 있는지 몰라서 그냥 1대를 팔았다고 계산하고 변수에 넣고 싶습니다.
이럴 때는 car-1을 한 것을 다시 car에 넣어줍니다.
컴퓨터는 = 표시를 기준으로 오른쪽을 먼저 계산(car-1)하여 왼쪽으로 대입(car)하고,
그것을 새로운 변수로 가지고 있습니다.
다시 출력해보니 차가 1대로 줄어든 것을 확인할 수 있습니다.
변할 수 있는 값인 '변수'를 배웠습니다.
우리는 이걸로 재미있는 것을 해볼 텐데요,
바로 여러 개의 숫자를 한 번에 더해보는 것입니다.
시시하다고 느껴지시나요?
프로그래밍의 기본은 반복을 어떻게 수행하느냐에 있으니까
반복을 제대로 익혀둔다면 더 훌륭한 것을 쉽게 만들 수 있을 것입니다.
첫 번째로 해볼 것은 변수를 10개 선언해서 그 10개를 더하는 것입니다.
예를 들면
a = 1
b= 2
c = 3
.
.
.
와 같이 10개를 선언해서 모조리 다 더하는 것이죠.
그런데 여기서 이런 생각이 듭니다.
여러 개의 배열을 일일이 다 쳐야 하는 걸까? 하는 고민이죠.
만약, 변수를 20개나 입력해야 한다면?
고민됩니다.
20번을 다 손으로 치고 있을 수도 없고.
그래서 알아야 하는 것이 바로 '리스트'(list)이라는 개념입니다.
리스트는 여러 요소들을 갖는 집합을 말합니다.
설명보다도 어떻게 쓰는지 알아볼까요?
다시 Jupyter Notebook으로 돌아와서,
다음과 같이 적어줍니다.
numbers라는 변수를 선언하고 거기에 [] 대괄호를 넣어서 안에 숫자들을 입력합니다.
짜잔!
저렇게 하면 1부터 10까지의 숫자를 numbers라는 변수 안에 넣어줄 수 있습니다.
근데 조금 특이한 점은 numbers를 이제부터는 list 타입이라고 부를 것이라는 겁니다.
그게 무슨 말이냐면.. 나중에 이야기해보도록 하죠!
이제 앞에서 리스트(list)를 통해서 여러 변수를 하나로 묶어서 담을 수 있게 되었습니다.
이 numbers라는 리스트를 이용해서 1부터 10까지를 더해볼 텐데요.
먼저 코드부터 보실까요?
리스트를 선언한 아래로 1부터 10까지의 총합을 저장할 total이라는 변수를 만들었습니다.
그 이후에 for로 시작하는 구문을 적는데요.
for는 반복 작업을 할 때 쓰는 키워드로,
for 오른쪽의 number에는 numbers 리스트의 앞의 숫자(1)부터 한 개씩 숫자를 꺼내서 저장됩니다.
가장 첫 번째의 1을 꺼내왔을 때 아래의 구문을 수행하게 되는데요.
기존 total(현재 값 = 0)에 1을 더해서 그것을 다시 total이라는 변수에 넣어줍니다.
그러면 최종적으로는 total에 1이라는 값이 저장되게 됩니다.
아래 구문을 전부 다 수행했으면 리스트 안의 다음 차례인 2를 꺼내오게 되는데요.
같은 방식으로
기존 total(현재 값 = 1)에 2를 더해서 그것을 다시 total이라는 변수에 넣어줍니다.
그러면 이제 3이 되었죠?
같은 방식으로 4, 5, 6..... 10까지 모두 더해준 다음에 for문을 비로소 빠져나오게 됩니다.
그리고 아래 print문으로 출력해보면 total의 값이 55 임을 알 수 있습니다.
여기서 주의할 점이 있는데요!
total = 0을 for문 안에 넣어버리면 안 된다는 것입니다.
이렇게 할 경우에는
리스트의 값을 꺼내서 number에 넣고, 그 아래의 구문을 수행하는 동안 다시 total에 0이 들어가서 초기화해버리기 때문에
numbers 리스트의 가장 마지막 값인 10만 남게 되어버립니다.
조금 더 심화된 반복문으로 넘어가볼까요?