딥러닝을 위한 파이썬 Level 1 강좌의 맛보기 강의입니다.
자 그러면 이번 시간부터 본격적으로 컴퓨터랑 얘기하는 연습을 한번 해보도록 하겠습니다 여러분들이 꼭 지켜 주셔야 될 거는 제가 시간을 들이는 동안 계속해서 반복 연습을 하시는 거를 꼭 지켜 주셔야 되는 겁니다 그럼 제가 일단 파이썬 3라고 터미널에서 치게 되면은 이런 Interactive Prompt라는 게 뜨게 되는 거죠 이랬을 때 다른 강의들이랑 마찬가지로 Hello World를 한번 해보도록 할게요 그랬을 때 우리가 print 이런 식으로 치는 거거든요 hello world 이런 식으로 딱 치게 되면 이 결과가 이 안에 들어있는 내용들을 출력을 해주게 되는 거예요 그래서 예를 들어서 print name 같은 경우 이름이 뭐니 이런 식으로 물어보면 저는 신경식이야 이런 식으로 하게 되면 여기 안에 들어있는 내용들이 첫 번째 여러분들이 아셔야 되는 거는 아 그냥 이 안에다가 프린트 예를 들어서 3 프린트 아니면 3.14 아니면 프린트 마이 뭐 이런 식으로 치게 되면은 이 결과들을 그대로 내보내 주는 걸 알 수가 있겠죠 이 첫 번째 예제를 통해서 그 다음에는 프린트 안에다가 콤마를 기준으로 우리가 이런 식으로 치게 되면 예를 들어서 위에서 나온 것처럼 name을 이렇게 치게 되면 이 결과를 그대로 내보내 주는 걸 볼 수가 있어요 지금까지는 별로 쓸모가 없어 보이죠 이 내용들을 그대로 내보내 줄 거면 뭐하러 프린트를 해주지 그건 다음 예제에서 우리가 변수를 할당하고 프린트하는 데서 충분히 여러분들이 이해가 되실 거예요 그러면 프린트 몇 살이니? 이러면 나는 이제 30살이야 이런식으로 하고 학점은 얼마니? 이런식으로 물어보게 되면은 우리가 이렇게 물어보게 되면 나는 4.5 만점이야 이런식으로 알려주게 되면은 이런식으로 각각 콤마를 기준으로 얘들이 전부 다 프린트아웃을 시켜주는 걸 볼 수가 있어요 그래서 여러분들이 또 보셔야 되는 것 중 하나 바로 첫 번째 포인트는 프린트를 사용하는 방법 이 안에다가 어떤 지금 String이라고 다루게 되는 이런 문자열을 넣어줬을 때는 얘를 그대로 내보내 주는 걸 볼 수가 있겠죠 그리고 여기다가 이렇게 String, String 이런 식으로 해주게 되면 이 두 개를 연속적으로 프린트아웃을 시켜주는 걸 볼 수 있어요 그리고 마찬가지로 얘는 우리가 정수, 실수, 그 다음에 String 이런 것도 다 똑같이 적용되는 걸 확인할 수가 있겠죠 얘를 섞게 되면은 String String 그 다음에 String Integer 제가 Integer로 부르는 거는 바로 정수를 말하는 거예요 그리고 얘 같은 경우에는 String Floating Point 즉 실수 값을 차례로 내보내는 걸 볼 수가 있겠죠 그래서 파이썬에서는 우리가 스트링을 표현하기 위해서 이런 식으로 큰 따옴표 그 다음에 작은 따옴표도 되거든요 그 차이점은 제가 나중에 설명을 드리도록 할게요 그래서 헬로월드 이런 식으로 이렇게 칠 수도 있는 거고 제가 여기 끝에다가 이렇게 작은 따옴표를 쓸 수도 있는 거고 아니면 큰 따옴표도 이렇게 쓸 수 있다 라고 정리를 해주시면 좋을 것 같습니다 그래서 여러분들이 반복해서 연습해야 될 첫 번째 문제는 바로 프린트로 데이터를 출력하기에요 그래서 여기서 나온 것처럼 스트링을 이런 식으로 표현을 한 다음에 프린트를 시키는 방법 그 다음에 스트링, 스트링, 스트링, 인티저 그 다음에 스트링, 플로팅 포인트 이런 식으로 차례대로 얘를 반복적으로 연습을 하면 됩니다 제가 이번 문제는 되게 간단하면서도 여러분들이 일단 컴퓨터랑 얘기하는 걸 손에 익히기 위해서 아주 간단하지만 반복 연습을 한번 시켜보도록 할게요 그러면 2분 정도 드릴 테니까 얘를 반복해서 치시면 되는 겁니다 그래서 제가 파이썬 3를 실행을 시킨 다음 여러분들은 프린트 이 PPT에 나온 대로 월드 이렇게 치고 그 다음에 엔터를 치면은 아 제가 오타가 났네요 헬로 월드 이렇게 치고 그럼 이 결과가 나오죠 그 다음에 네임은 뭐니 라고 하면 나는 신경식이야 이런 식으로 알려주는 거 그 다음에 나이는 몇 살이니? 나는 30살이야. 이렇게 하고 그 다음에 학점은 얼마니? 이런 식으로 하면 나는 4.5점 만점이야. 이거를 여러분들이 2분 동안 계속해서 반복 연습을 하시면서 손에 익히시길 바랍니다. 그러면 2분 동안 연습을 하고 돌아오시면 되는 겁니다. 자 여러분들이 이제 연습을 하고 오셨죠 그래서 제가 이 전체 강의는 여러분들이 어떤 거를 연습을 하게 되면 연습을 엄청 많이 하게 돼요 그럼 손에 많이 익겠죠 그래서 얘를 가지고 조금 조금씩 더 쌓아갈 거예요 그러니까 앞에 있는 이런 쉬운 내용들부터 완벽하게 몸에 익을 때까지 연습을 하시면 되는 겁니다 제가 살짝 종료를 해 놨다가 다시 한번 실행을 시켜 보도록 할게요 그래서 우리가 이번 시간에 다음으로 할 거는 뭐냐면 바로 변수를 할당하는 거에요 그래서 파이썬에서는 변수를 할당하는게 예를 들어서 a 에다가 10을 넣는다 이런식으로 할당을 해주는 거거든요 그래서 수학에서 다루는 것처럼 a는 10이다 이게 아니라 a라는 변수라는 이름 안에다가 10이라는 걸 넣어줘 이런 뜻이에요 그래서 보통 우리가 프로그래밍을 이제 강의를 들으면은 어떤 상자가 있고 이 안에 담겨 있을 때 10이라는 A라는 이름이 달려있는 상자에다가 10을 넣어준다 이렇게 10을 넣어준다 라고 표현을 많이 하는데 제가 나중에도 알려드리겠지만 사실은 이런 식으로 받아들이는 게 더 좋아요 뭐냐면 10이라는 값이 이미 있고 여기다가 여러분들이 A라는 이름을 살짝 붙여준다 라고 생각하시는 게 좋을 것 같아요 하지만 제가 나중에 설명을 드릴 거니까 지금은 간단하게 얘는 A라는 상자 안에다 변수 안에다가 10을 할당한다 즉 그림으로 봤을 때는 이렇게 표현이 된다라고 생각을 해주시면 좋을 것 같습니다 나중에 제가 이제 본격적으로 파이썬을 다시 한번 이제 Level 1, 2, 3가 기본적인 여러분들이 생존에 필요한 그런 문법들을 다루고 나서 파이썬을 조금 더 전문적으로 배워볼 거란 말이에요 그랬을 때 얘는 메모리 구조 이런 것들을 차용을 해서 여러분들한테 조금 더 구체적으로 설명을 드리겠습니다 그래서 지금은 단순히 파이썬에서 이 는 이라는 것은 assignment 즉 할당을 하는 연산자구나 즉 a 에다가 10을 할당을 해주는 거구나 라고 생각을 해 주면 좋을 것 같습니다 그럼 할당을 해서 뭐를 할 거냐 바로 a 이런식으로 출력을 해주면 이 안에 들어있는 값이 나오게 되는 거죠 그래서 이 상자 이름으로 접근을 하게 되는 거예요 왜 우리가 변수를 할당하게 되는 거냐면 실제로 프로그래밍을 하다 보면 엄청 많은 값들을 표현하게 된단 말이에요 근데 그 값들을 다 일일이 외우고 다닐 수도 없고 이걸 통해서 이 이름을 가지고 연산을 하기 때문에 우리는 이런 식으로 어떤 값들은, 특정 값들은 계속해서 변수를 할당하게 되는 거예요 그래서 우리는 이 뒤부터는 A라는 이름을 가지고 계속 프로그래밍을 진행하게 되는 거예요 그래서 참고 삼아서 여러번 알려드리자면 프로그래밍이 나중에는 짧으면 몇십줄, 몇백줄, 몇천줄까지도 갈 수 있어요. 그랬을 때 프로그래밍이 진행이 되면 앞부분에서는 이렇게 변수를 할당하는 내용들이 많지만 이 뒷부분으로 갈수록 이런 숫자들을 다루는 것 보다는 이 이름들, 변수의 이름들만 가지고 프로그래밍을 하게 될 거에요. 뭐 구체적으로 지금 이해를 못하시더라도 괜찮고 지금은 아 변수를 이렇게 할당을 하는 거구나 라고 알아주시면 좋을 것 같습니다. 그래서 제가 예를 들어서 Name 이라는 걸로 이렇게 할당을 해 볼게요 얘 같은 경우에는 마찬가지로 Name 이라는 상자 이름을 붙여 놓은 거죠 그래서 이 상자 안에다가 String 즉 문자열을 이렇게 담아 놓은 거라고 생각을 하시면 되는 거예요 그래서 얘를 우리가 프린트를 시켜 주게 되면 Name 해주면은 이 안에 들어 있는 내용이 String 문자열이 프린트아웃 되는 거를 확인할 수가 있겠죠 자 제가 다시 한번 해보도록 할게요 name은 신경식 이런식으로 담아놓고 그 다음에 수학 점수는 몇 점 맞았어 이런식으로 물어보게 되면 이렇게 80 이렇게 하고 그 다음에 height은 예를 들어서 180 190이야 190.5야 이런식으로 앞에서 우리가 다뤘던 것처럼 문자열 인티저 플로팅 포인트를 각각 변수에 담는 것을 확인할 수가 있겠죠 그랬을 때 여러분들한테 하나 습관을 드리고 넘어가고 싶은 게 있어요. 바로 변수명을 짓는 방법인 건데 이런 식으로 어떤 변수를 할당할 때 우리는 이런 식으로 이름을 짓게 돼요. 뭐냐면 얘 대표적인 게 얘인데 일단 우리는 소문자들로 이렇게 이름을 짓게 되는 거고 예를 들어서 우리가 문자 그냥 글을 쓸 때는 Math Score 이런 식으로 쓰잖아요 그랬을 때 이런 띄어쓰기는 Underscore로 붙여주는 거를 여러분들이 습관을 들이셨으면 좋겠어요 얘 같은 경우에는 꼭 지키지 않아도 프로그래밍이 돌긴 돌지만 여러분들이 장기적으로 봤을 때 좋은 프로그래머 즉 파이썬을 하는 사람이 봤을 때 이거는 파이썬을 쓰는 사람들끼리 약속이거든요 그러다 보니까 이거는 배운다기보다는 습관의 문제이기 때문에 여러분들이 이런 식으로 그래서 예를 들어서 math score 10점 그 다음에 english score는 20점 아니면 내 키 이런식으로 아니면 이렇게 190.5 아니면은 your height 이런식으로 뭐 아무 숫자나 넣어볼게요 이런식으로 쓰게 되는건데 단어들은 소문자로 시작을 하고 얘들을 끊어주는 즉 단어들 사이에서는 이 underscore 얘를 붙여줘서 구분을 한다 라고 생각을 해주시면 좋을 것 같습니다 만약 이런 내용들에 대해서 궁금하신 분들이 있다면 구글에다가 PEP8 이라는 걸 검색을 하시면 이런 파이썬을 쓰는 사람들끼리의 약속 실제로 프로그래밍을 돌리는 데는 문제는 없지만 서로 프로그래밍 코드를 잘 알아보기 위해서 이런 약속들을 찾아볼 수가 있을 거예요 그래서 여러분들이 연습을 해야되는게 뭐냐면은 다시 한번 키게되면은 제가 PPT에서 보여드린것처럼 이름을 할당을 하고 그 다음에 수학점수를 이렇게 할당을 하고 이런걸 언더스코어 붙이는 이런것들도 습관이니까 꼭 연습을 하시면 좋을것 같아요. 190점 뭐 165.6이라고 했네요. 그래서 이렇게 한번 하고 그 다음에 엔터를 한번 여기 구분짓기 위해서 엔터를 한번 쳐준 거예요 그래서 프린트 네임이 뭐였냐면 네임 이렇게 치게 되면 앞에서 배웠던 것처럼 스트링을 출력해주고 뒤에 있는 걸 출력을 해주는 건데 이 안에 들어있는 거는 스트링이 들어가 있는 거죠 그래서 이런 식으로 앞에서 그 제가 설명을 드렸던 것처럼 얘 출력해주고 이 안에 들어있는 스트링 같이 출력을 해주는 걸 볼 수가 있겠죠 그 다음에 math score는 얼마니? 라고 물어보면은 얘는 이렇게 해주는 거겠죠 그래서 스트링을 출력을 해주고 이 안에 변수에는 80이 들어있기 때문에 결과는 이렇게 나오게 되는 거죠 그래서 그 다음 마지막으로는 이렇게 height은 얼마니? 라고 하면은 height 이렇게 치게 되면은 이런 결과들이 나오는 걸 볼 수가 있겠죠 그래서 2번 문제 핵심은 뭐냐면 변수에다가 여러분들이 할당하라고 그 변수에 담겨있는 내용들을 프린트아웃 시켜보는 연습을 하는 겁니다 그래서 얘 같은 경우에는 연습을 하실 때 꼭 이렇게 연습을 하셨으면 좋겠어요 뭐냐면 프로그램이랑 컴퓨터랑 얘기를 하는 거예요 이름은 다시 한번 줘 볼게요 이름은 신경식이야 그리고 math score는 89점이야 그 다음에 height은 165.6이야 그러고 나한테 한번 알려줘 이 안에 들어있는 내용을 name은 뭔지 알려주고 그 다음에 math score는 얼마인지 알려주고 그 다음에 이렇게 해주는 거겠죠 그 다음에 키는 얼마인지 알려줘 이런 식으로 파이썬이랑 얘기하듯이 이렇게 쭉쭉 꼭 연습을 하셨으면 좋겠어요 여러분들이 이게 꼭 머릿속에서 생각을 하시는 거예요 스트링을 할당을 했다 인티저를 할당을 했다 플로팅 포인트를 할당을 했고 각각을 프린트아웃을 콤마를 기준으로 프린트아웃을 시켜주는 거야 라고 생각을 하시면서 꼭 머릿속에서 계속해서 반복적으로 생각을 하시면서 연습을 하시면 좋겠습니다 제가 여러분들한테 바라는 거는 이 내용들이 손에 완벽하게 익길 바라는 거예요 그래서 다른 데서 이제 더 어려운 내용을 다룰 때 마음 편히 사용할 수 있도록 여러분들한테 이렇게 손에 익도록 하는 거니까 충분히 5분 동안 반복 연습을 하시고 그래서 가장 좋은 게 뭐냐면 예를 들어서 파이썬 제가 실행을 시켜보도록 할게요 저처럼 뭐 제가 잘났다는 게 아니라 저는 그래도 프로그램을 조금 더 해 봤으니까 여러분들보다 이런 식으로 좀 타이핑이 빨라질 때까지 한번 연습을 해 보셨으면 좋겠어요 이름은 신경식 그 다음에 math score 같은 경우에는 80점을 맞았어 그 다음에 height은 165.6 이렇게 써주고 name은 이렇게 name 그 다음에 print math score는 얼마니 라고 물어보면 score print 그 다음에 키는 얼마야 이렇게 물어보면 height 이런 식으로 빨리빨리 칠 때까지 여러분들이 반복 숙달을 하셨으면 좋겠습니다. 그러면 제가 이 문제는 5분 드릴 테니까 한 번 5분 동안 연습을 하시고 돌아오시면 되는 겁니다. 자 여러분들이 이 내용까지 하게 되면은 변수를 할당을 하고 프린트아웃 시키는 거는 손에 완벽하게 익으셨을 거예요 그러면은 다음 내용에 대해서 한번 살펴보도록 할게요 어떻게 보면 좀 내용이 많아 보이지만 우리가 이런 식으로 여러분들이 이렇게 하고 이렇게 할당을 한 뒤에 이번에 사칙연산을 한번 해볼 거예요. 뭐냐면 제가 앞부분에서 제가 살짝 말씀드렸던 것처럼 우리가 얘를 변수로 할당하는 이유는 이제 얘를 가지고 놀 거거든요. 그래서 프린트를 시켰을 때 int1 플러스 int2 이렇게 출력을 해주게 되면 우리는 얘를 접근을 해서 얘는 이제 이 값이 될 거예요. 여기가 4로 바뀌게 될 거고 얘가 2로 바뀌게 될 거예요. 그럼 4 더하기 2니까 이 값은 6이 나올 수가 있겠죠. 그랬을 때 이런 사칙 연산들은 원래 사실은 스페셜 메서드를 이용한다는 그런 개념들이 있겠지만 그거는 조금 더 본격적으로 파이썬을 다뤄볼 때 제가 얘기를 해드리도록 할 거고요. 지금은 이런 내용들을 연습을 하시면 돼요. 그래서 int죠. 곱하기도 곱하기라는 연산자도 있겠죠. 그다음에 조금 특이한 게 있는데 뭐냐면 우리가 int 이렇게 하면 4를 2로 나눈 게 되니까 플로팅 포인트가 나오게 되는 거죠. 그래서 2.0이라는 거는 플로팅 포인트로 바뀌었다는 소리예요. 살짝 특이해 보일 수도 있는 게 뭐냐면 몫을 구하는 연산자도 있어요 그래서 이 몫을 구하는 연산자 즉 4를 2로 나눴을 때 몫이 2기 때문에 이런 식으로 나오게 되는 거고 나머지 연산자 이렇게 해주게 되면 4를 2로 나눴을 때 나머지는 0이기 때문에 이런 결과가 나오는 걸 볼 수가 있어요 뿐만이 아니라 우리가 이런 연산자도 있어요 그래서 인트2 얘는 이 소리예요 인트1 인트1의 인트2 제곱이라는 소리예요 다시 말해서 4의 2제곱을 말하는 거겠죠 그러면은 그 결과는 당연히 이제 16이 나오는 걸 볼 수가 있겠죠 주요한 내용들은 여러분들이 또 마찬가지로 처음이니까 좀 연습할 시간을 드리는 거예요 완벽하게 손에 익길 바라서요 그래서 플러스 마이너스 곱하기 나누기 몫 그 다음에 나머지 제곱 이것까지 충분히 여러분들 손에 익고 다음 단계로 넘어가셨으면 좋겠습니다 그러면 여러분들이 이 값들도 바꿔가면서 얘들을 계속해서 반복을 하셨으면 좋겠습니다 자 그럼 여러분들이 지금 연습을 한 거는 바로 이제 이 내용이 되겠죠 1-3번 이 연습 문제인데 충분히 이제 손에 완벽하게 익으셨을 거예요 그러면 그 다음 단계는 뭐냐면은 우리가 단순히 이렇게 프린트아웃을 시키는 게 아니라 이 사칙연산 결과를 우리가 다시 한번 변수에다가 할당하는 방법에 대해서 한번 살펴보도록 할 거예요 그 전에 파이썬에서 여러분들이 되게 자주 사용되는 것 중 하나가 이런 거 동시에 할당하는 방법이에요 다시 말해서 이 콤마를 기준으로 는 이라는 건 우리가 인트 1 4 인트 2 2 이런 식으로 할당을 했었죠 근데 동시에 할당을 할 때는 4 콤마 2 이렇게 되면은 우리가 여기 있는 4는 인티저 1으로 2는 인티저 2로 이런 식으로 들어가게 되는 거예요 그래서 이것도 같이 한번 연습을 하셨으면 좋겠고 이걸 통해서 우리는 이런 식으로도 할당을 할 수가 있겠죠 이렇게 print(add)라는 값을 넣게 되면 우리는 1, 4를 여기로 대입을 하고 그 다음에 2가 여기로 들어오게 되는 거고 그럼 그 결과가 6이 되는 거죠 그러면 얘가 6이 되니까 결론적으로는 이렇게 할당을 하는 거랑 동일해요 그랬을 때 다른 점이 뭐냐면 명시적으로 숫자를 쓰지 않고 우리가 할당한 변수들을 이용해서 연산을 해서 그거를 변수에 다시 담는다 이거를 조금 기억을 하시고 넘어가셨으면 좋겠습니다 프로그래밍을 조금 해보신 분들은 이런 것까지 연습을 하나 시키는데 실제로 프로그래밍을 아예 처음 하시는 분들은 이런 것들도 좀 헷갈릴 수 있기 때문에 충분히 연습을 하고 넘어가는 겁니다. 그랬을 때 이 위에서 배웠었던 동시에 할당하는 방법이랑 그 다음에 연산의 결과를 이렇게 할당하는 방법을 합쳐 볼게요. 그러면 이런 식으로 add, sub를 동시에 할당할 건데 그랬을 때 integer1과 integer2를 첫 번째 변수에다가 넣을 거고 얘가 여기 들어가게 되는 거죠. 그리고 이렇게 하게 되면은 결과는 얘가 이제 더하기 된게 add로 들어갔고 빼기 된게 이 sub라는 변수 이름으로 들어가게 되는 거니까 우리가 add, sub 이런식으로 출력하게 되면 각각 더하고 뺀 결과를 나오는 걸 볼 수가 있겠죠 그래서 여러분들이 연습을 해야 되는 게 뭐냐면은 여기서 제가 다시 한번 연습 그 지우고 깔끔하게 다시 한번 써보도록 할게요 인티저 1 인티저 2를 각각 4랑 2 여러분들은 연습을 할 때 이걸 계속 바꿔가면서 연습을 하시는 걸 추천을 드려요 그 다음에 각각 인티저 1 인티저 2 변수들을 이용해서 연산을 한 걸 여기다 할당을 해주고 그 다음에 인티저 2 이렇게 그러면은 얘 두 개를 할당을 한 거죠 그러면은 곱한 거랑 나누기도 각각 이런 식으로 할당을 할 수가 있겠죠 그 다음에 Quotient 몫이랑 Remainder 나머지 얘들을 각각 앞에서 배웠던 이 연산 기호들을 이용해서 이렇게 할당을 할 수가 있을 거예요. 그리고 파워 제곱을 한 거죠. 그러면 Integer 1에다가 Integer 2 이런 식으로 하게 되는 거겠죠. 그래서 얘 같은 경우에는 이렇게 add, sub, mul, div 이 위에는 실수한 거예요 그 다음에 quo, 그 다음에 remainder, power 이렇게 여기까지 이거는 제가 실수하니까 생략을 하고 이런 식으로 계속 반복 연습을 하시면 되는 겁니다 핵심은 다시 한번 말씀드리지만 변수를 동시에 할당하는 방법에 대해서 손에 익히시면 되는 거고 이렇게 변수들을 가져와서 연산한 결과를 이렇게 대입하는 거를 연습을 하시는 겁니다 마찬가지로 이 위에 있는 동시에 할당하는 걸 이용을 해서 이 값과 이 값을 동시에 여기다가 할당하는 것을 연습을 하시는 겁니다 그래서 최종적으로 이 결과들을 모두 프린트아웃 시키는 겁니다 그래서 얘 같은 경우에는 3분을 연습 시간을 드리도록 할게요 그래서 3분 동안 얘를 계속해서 반복하시면서 연습을 하시면 되는 겁니다 자 그 다음 연습을 할 거는 우리가 다음 거 우리가 지금 여기서 얘를 연습을 했었죠 다음에는 우리가 홀수 짝수를 구할 때 이 나머지 연산자에 대해서 조금 여러분들이 나중에 많이 사용을 하게 되거든요 그러다 보니까 이 나머지 연산자를 사용을 할 때 조금 더 볼 여러분들이 봐야 될 것들을 한번 살펴보도록 할게요 인티저 이번엔 4개를 동시에 한번 해보도록 할까요 그 다음에 나눠주는 수를 2로 한번 설정을 한번 해보도록 할 거예요 그 다음에 이런 식으로 얘를 이제 4번을 이렇게 차례대로 나눠줄건데 얘들은 각각 어떻게 할거냐면 얘를 몫으로 이렇게 한번 디비전으로 이렇게 나눠줄거에요 디바이더로 그래서 얘를 얘로 나눈 나머지를 여기다가 대입을 해줄거고 그 다음에 얘는 div 그 다음에 인티저3는 이런식으로 div 인티저4는 이렇게 div 이렇게 해주게 될거에요 그래서 아 div가 아니라 위에서 div라는걸로 이렇게 할당을 해주고 다시 한번 얘를 쳐주게 되면은 이렇게 나올 수가 있겠죠 뭐 참고 삼아서 여러분들이 위에서 작성했었던 코드는 화살표 위아래를 통해서 이렇게 작성을 할 수가 있습니다 그래서 Remainder 1, Remainder 2, Remainder 3, Remainder 4 얘를 연습을 하게 되면은 얘가 바로 여러분들한테 말씀드리고 싶은 거예요 1을 2로 나눈 나머지가 각각 홀수 짝수에 대해서 얘네 홀수는 1 짝수는 0 이거를 우리가 수학적으로 배웠겠지만 다시 한번 복습을 한번 해 보셨으면 좋겠어요 그래서 제가 얘 같은 경우에는 여러분들이 나중에 프로그램을 처음 하시는 분들은 좀 헷갈려 하시는 경우가 많기 때문에 이 간단한 내용도 제가 3분 동안 드릴 테니까 연습을 충분히 하고 돌아오시면 되는 겁니다 자 그 다음에 우리가 배워볼 건 바로 자기 자신에다가 연산을 할 때 우리가 조금 어려운 말로 하면 복합 대입 연산자라는 말이 있는데 그걸 한번 다뤄보도록 할 거예요 이름은 중요한 게 아니에요 그냥 어떻게 사용할지 그것만 살펴보시면 되는 겁니다 우리가 스코어에다가 10을 할당을 하고 프린트아웃을 시켜주면 10을 내보내는 건 이제 완벽하게 이해를 하셨을 거예요. 그렇게 그랬을 때 얘를 이런 식으로도 쓸 수가 있어요. 사실 이렇게 라고 하는 게 뭐냐면은 봐봐요. 얘를 여기다가 할당을 할 거야 이런 의미인 건데 이 안에는 10이 들어 있었잖아요. 그래서 이 값이 10으로 치환이 되는 거고 여기다 10을 더한 다음에 다시 한 번 할당을 하는 거예요. 다시 말해서 이런 느낌이라고 생각을 하시면 될 것 같아요. 스코어라는 박스 안에 10이 들어있는데 얘를 꺼낸 다음에 10을 더해주는 거예요. 그 다음에 10을 더하면 이 결과는 20이 나오겠죠. 얘를 다시 이 상자에다가 담아주는 역할이라고 생각을 해주시면 좋을 것 같아요. 사실 얘를 조금 더 프로그래밍적으로, 컴퓨터 사이언스적으로 접근을 하면 레퍼런스를 하고 디레퍼런스를 한 다음에 다시 레퍼런스를 한다. 이런 복잡한 개념이 있는데 여기서는 여러분들이 이해하실 필요 없는 거고 그 결과만 이해를 하시면 돼요. 스코어를 10점을 가져와서 더해준 다음에 다시 한번 넣어준다 이런 개념들이 실제로 나중에 리스트나 딕셔너리에 갔을 때 생각보다 헷갈려 하시는 분들이 많거든요 그래서 여러분들이 그 뒤에서 당연하다고 느끼게끔 하고 싶어서 이런 연습을 하는 거예요 그래서 이렇게 얘를 10을 가져와서 더하고 다시 한번 넣어주면 우리가 스코어가 이렇게 20점이 증가된 걸 볼 수가 있어요. 그런데 이런 식으로 자기 자신에 대해서 연산을 할 때는 사람들이 이렇게 쓰는 게 너무 귀찮은 거예요. 프로그래머들은 항상 귀찮아하거든요. 그래서 얘를 한꺼번에 연산을 하는 게 바로 이 코드인 거예요. 다시 말해서 얘 플러스는 얘는 얘를 이제 같은 코드에요 그래서 이렇게 써주게 되면 야 나는 어차피 내꺼에서 가져와서 연산을 할 거니까 이런 표시 쓰지 않고 내꺼에서 가져와서 내 자신에다가 10을 더한 다음에 다시 한번 할당해줘 이렇게 받아주시면 되는 겁니다 그러니까 다시 한번 30으로 증가된 걸 볼 수가 있죠 그래서 제가 다시 한번 여러분들이 연습을 해야 될 거를 한번 알려드리도록 할게요. 스코어에다가 먼저 10점을 한번 넣어보세요. 그 다음에 얘를 그대로 뽑아오면 10점이 되겠죠. 그 다음에 스코어에다가 자기 자신에다가 10을 더한 다음에 스코어를 해주게 되면 당연히 이제 20점이 되겠죠. 그랬을 때 얘는 플러스 뿐만이 아니라 우리가 앞에서 배웠던 모든 연산자들이 가능해요 그래서 빼기는 이러면은 자기 자신에다가 10을 빼서 그 다음에 다시 한번 자기 자신에다가 담겠다 이런 의미를 담고 있겠죠 그럼 다시 한번 자기 자신 원래 있었던 10으로 돌아오는 걸 확인할 수가 있습니다 그것뿐만 아니라 스코어에다가 곱하기 이것도 자기 자신에다가 곱하기를 하는 소리겠죠 그래서 5를 곱하고 프린트 스코어를 해주면 52로 50으로 바뀌는 걸 볼 수가 있을 거예요 그래서 스코어 자기 자신 원래 10점 여기까지 10점이 들어 있었죠 거기다가 5를 곱한 다음에 다시 한번 입력을 해줘 자기 자신에다가 넣어줘 이런 거니까 50이 나오는 걸 볼 수가 있겠죠 그 다음에 마찬가지로 이렇게 5를 해주게 되면 스코어도 이렇게 바뀌는 모습을 볼 수가 있게 되는 거예요 그래서 10점을 자기 자신에다가 더했다 뺐다가 곱했다 나눴다가 그 다음에 또 이런 것도 가능해요 그래서 5를 이렇게 하게 되면 프린트 스코어는 10의 5제곱이니까 이런 식으로 이런 결과가 나오는 걸 볼 수가 있겠죠 그래서 이런 내용들을 충분히 연습을 하시면 되는 겁니다 이 복합 대입 연산자도 제가 3분 동안 연습할 시간을 드려보도록 할 테니까 충분히 몸에 익히시고 그 다음 강의를 들으시면 되는 겁니다 자 여러분들이 이 문제를 연습을 하셨다면 이 내용들 이제 충분히 이해를 하셨을 거라고 생각이 듭니다 그랬을 때 우리가 다음은 조금 수학적인 예시를 한번 들어보도록 할게요 제가 이 내용을 다루는 이유가 뭐냐면 여러분들이 이런 시그마나 이런 내용들에 대해서 조금 낯선 분들도 있겠지만 대부분은 이 시그마를 사용하는 방법에 대해서 익숙하실 거예요 예를 들어서 얘는 i는 1부터 n까지 도는 거기 때문에 이 i에다가 1부터 n까지 대입을 한 걸 다 더해줘 이런 뜻이죠 x2, x3 쭉쭉 가서 n이 만약 100이었다고 하면 이런 식으로 되는 게 바로 이 시그마의 표현법이잖아요. 그랬을 때 간단하게 이런 수식들을 프로그램으로 어떻게 구현을 할지 그거에 대해서 연습을 해보는 건데 정말 간단하죠. 그러니까 실제로 여러분들이 그렇게 겁먹을 필요가 없는 거고 예를 들어서 제가 스코어들을 가지고 한번 해보도록 할게요. 그래서 score 1, 2, 3를 각각 10, 20, 30 이렇게 대입을 했단 말이에요. 그렇게 되면 이 점수들의 합을 구하고 싶은 거예요. 다시 말해서 sum을 구하는데 얘는 i는 1부터 3까지 score_i라고 한번 해볼까요? 얘가 바로 이 하나의 각각의 값이 되는 거죠. 그래서 단순하게 이 값을 더해주면 되는 거예요. 스코어 썸 이런 식으로 그래서 얘들을 스코어 1, 스코어 2, 스코어 3 그 다음에 이제 뭐 예를 들어서 안내를 해주는 거죠. sum of score 뭐 이런 식으로 score 이렇게 알려주면 score sum은 얼마야? 60점이야 이렇게 알려주는 거죠. 이게 바로 우리가 앞에서 배웠던 이 시그마를 이제 프로그램으로 표현하는 방법이 될 거예요. 뭐 여기는 x도 상관이 없고요. 그랬을 때 뭐 지금은 우리가 변수 할당이랑 이런 것들을 처음 배웠으니까 이렇게 일일이 조금 귀찮더라도 변수를 일일이 할당을 하고 한번 이 수식을 구현하는 방법에 대해서 간단하게 한번 연습을 해 보셨으면 좋겠습니다 물론 다음에는 이거보다 훨씬 더 편하게 할 건데 지금은 이렇게 수식을 이제 프로그램으로 구현하는 방법에 대해서 아주 기본적인 레벨에서부터 연습을 시켜 주기 위해서 하는 거니까 얘도 마찬가지로 3분 동안 연습을 하시고 시작을 하시면 되는 겁니다 자 그 다음에 우리가 합을 구해 봤으면 이제 평균을 구할 수가 있겠죠 우리가 평균을 구하는 방법은 이렇게 보통 뮤라고 많이 표현을 하는 건데 뮤는 다 더한 다음에 n개로 나눠주면 되는 거잖아요 어렵지 않죠 그래서 얘는 어떻게 프로그램으로 구현이 되는지 한번 살펴보도록 할게요 스코어 1, 스코어 2, 스코어 3 그 다음에 제가 참고 삼아서 말씀드리면 이렇게 콤마를 써준 다음에 띄어쓰기 해주는 것도 좋은 습관이에요 그래서 여러분들이 어떤 변수 콤마 해주면 이 뒤에는 띄어주는 게 일반적이다 그래서 마찬가지로 10, 띄고 20, 띄고 30 이렇게 할당해주는 연습을 하셨으면 좋겠습니다. 그 다음 마찬가지로 Number of Students 저 같은 경우는 이렇게 약자를 쓰는 건데 얘 앞에다가 N이라고 붙이면 Number of라는 약자예요. 그래서 얘를 3명으로 지금은 이렇게 일부러 지금 3이라는 입력을 좀 해보도록 할게요. 그랬을 때 Score_Mean 다시 한 번 Score가 하나의 단어고 Mean이라는 게 하나의 단어니까 얘는 Underscore로 그리고 얘들은 전부 다 소문자로 이루어졌다는 것도 다시 한 번 보셔야 되는 겁니다. 아 그랬을 때 이 위에 보니까 조금 오타가 있네요 뭐냐면 Score 3라고 이름을 붙여 줘야 되죠 그랬을 때 뭐 얘는 다시 줄 필요는 없겠지만 코드를 조금 나중에 설명을 드리기 위해서 다시 한번 쳐 보도록 할게요 그러면은 Score_Mean 같은 경우 우리가 어떻게 구하게 되는 거냐면 다 더한 다음에 전체 몇 명이 있었는지 개로 나눠주는 거잖아요 그랬을 때 n_student에서 그저 제가 자주 쓰는 자주 나는 오타가 이렇게 났네요 그래서 score_mean 이렇게 치게 되면은 이 점수들의 평균을 구해주는 거죠 여기 있는 이 코드가 바로 우리가 뮤를 이제 이렇게 평균을 구하는 식을 이렇게 코드로 옮겼다 라고 생각을 하시면 좋을 것 같습니다 별로 어렵지 않죠 우리가 수학으로 배웠던 그런 수학적인 표현들을 프로그램으로 코드로 어떻게 표현하는지에 대해서 집중적으로 다뤄보고 있는 거니까 여러분들이 수식을 한번 보고 그 PPT에 있는 수식을 보고 제가 추천을 드리는 건 뭐냐면 얘를 보고 코드를 작성하고 얘를 보고 코드를 작성하고 이렇게 반복 연습을 하셨으면 좋겠습니다 그래서 5분 동안 여러분들이 뭐 스코어는 여기 있는 스코어는 마음대로 주셔도 되는 거니까 얘를 보면서 어떻게 프로그램을 구현할지 얘를 완벽하게 몸에 익히시고 다음으로 넘어가시면 되는 겁니다 자 다음으로 연습을 한번 해볼 거는 바로 추가점수를 받은 학생들의 평균 구하기 제가 이렇게 이름을 붙여놨는데 복합 대입 연산자 얘도 같이 복습을 한번 해보고 평균 구하는 것도 다시 한번 연습을 한번 해보도록 할게요 여기서 보면은 조금 어려워 보이는 이런 게 어려우면 안 되는 거에요 수학적으로 기본기가 조금 부족한 거에요 그랬을 때 제가 한번 간단하게 표현을 한번 해볼게요. 우리가 i는 1부터 예를 들어서 3까지 했을 때 x_i, y_i 이런 식으로 표현을 한번 해보도록 할게요. 그러면 얘는 뭐냐면 첫 번째 i에다가 1을 넣으면 x1, y1이고 그다음에 다음으로 넣는 거는 y2 i에다가 그냥 1, 2, 3 쭉쭉 넣어주는 거죠. 3 이렇게 했는데 시그마니까 얘들을 다 더해주는 게 바로 이 식이 되는 거죠. 그랬을 때 얘는 x끼리 묶으면 x2, x3 이렇게 되는 거고 그 다음에 y1, y2, y3 이렇게 묶을 수 있는 건데 얘는 다시 한 번 시그마로 표현을 하게 되면 3xi 이렇게 되는 거고 뒤에 있는 거를 표현을 다시 한 번 묶어보면 yi로 이렇게 묶일 수 있는 거죠. 그랬을 때 얘의 특징이 뭐냐면 얘들은 합에 대해서는 따로따로 더해줘도 된다는 거예요 그걸 바로 우리는 제가 나중에는 좀 알려드리겠지만 Linearity라고 부르는 성질을 만족을 하는 연산자 중 하나가 바로 Sigma인데 이거에 대해서 한번 연습을 한번 해보도록 할 거예요 그래서 우리가 첫 번째 앞부분에서 다뤘던 것처럼 스코어 1, 스코어 2, 스코어 3를 각각 10점, 20점, 30으로 한번 해보도록 할게요 그 다음에 지금은 이렇게 3명으로 한번 해보도록 할게요 그럼 처음에 우리가 평균을 한번 구해보면 앞에서 우리가 연습을 했었던 것처럼 Score 3를 다 더한 다음에 N Student로 나눠주고 평균을 한번 확인해 보도록 할게요 10이죠? 20이죠? 그랬을 때 제가 지금부터 뭐를 할 거냐면 Score 1에다가 10점 추가를 해 줄 거고 추가를 해 줄 거고 Score 3에도 마찬가지로 추가를 한번 해 줄 거예요 다시 말하면 전부 다 10씩 추가를 해 준 거예요 그랬을 때 다시 한번 이제 평균을 한번 구해 보도록 할게요 그러면 3 이렇게 해서 나눠서 프린트 제가 오타가 있죠 또 똑같은 오타가 또 났죠 그랬을 때 평균 이번에는 평균이 10점 똑같이 오른 걸 볼 수가 있어요 얘 같은 경우에는 여러분들이 이 프로그램 자체적으로도 그러니까 점수를 할당하고 평균을 구하는데 각각의 복합 대입 연산자 얘들을 이용해서 자기 자신에다가 더해주는 거 10씩 전부 다 더해준 다음에 다시 한번 얘를 평균을 구해보는 거예요 그랬을 때 제가 앞에서 Linearity를 만족을 한다고 했었는데 X_i에다가 전부 다 10을 더해준 거를 우리가 구했었죠 그랬을 때 얘는 제가 앞에서 따로따로 더해줘도 상관이 없다고 이렇게 표현을 드렸었는데 제가 평균을 한번 구해보도록 할게요 n개에 대해서 xi 얘가 원래 평균이었는데 각각의 10점씩이 올랐어요 그러면 얘는 시그마는 따로따로 연산을 해줘도 되기 때문에 이렇게 i는 1부터 n까지 얘가 이렇게 되는 걸 볼 수가 있겠죠 그랬을 때 얘는 우리가 알고 있었던 앞에서 구했었던 평균이었잖아요 그 다음에 얘는 10이 n개가 있으니까 10 곱하기 n 이렇게 되는 거죠 그래서 우리가 아 얘까지 합쳐졌을 때가 뮤인 거죠 그래서 지금은 뮤 곱하기 n 이렇게 표현을 해볼까요 그러면 n을 각각 나눠주면 뮤 플러스 10이 되는 거죠 그래서 평균 같은 경우의 특징이 뭐냐면은 우리가 각각에 있는 점수들 전부 다 같은 값을 더해줬을 때 평균도 똑같이 이동한다 라는 특성을 여기서 그대로 알아볼 수가 있게 되는 거겠죠 얘 같은 경우 제가 알려드린 이유가 뭐냐면은 우리 딥러닝에서 Mean Subtraction이라는 기술들이 많이 사용이 되거든요 그러다 보니까 이런 간단한 내용들로부터 여러분들이 Mean Subtraction의 기본적인 연산에 대해서 연습할 수 있기 때문에 한번 문제를 뽑아봤습니다 그러면은 이 내용에 대해서 여러분들이 5분 동안 이 내용들을 반복해서 연습을 하시면 되는 겁니다 그래서 여기 있는 코드들 뭐 얘들은 이렇게 따로따로 써줘도 되는 거겠죠 얘 같은 경우에는 이렇게 하나하나씩 연산을 해주는 게 좋고요 그래서 얘를 5분 동안 연습을 하시면 되는 겁니다 자 이 내용을 연습을 하신 분들은 이제 Mean Subtraction 이라는 거를 한번 연습을 해 볼 수가 있을 거예요 중요한 건 뭐냐면 딥러닝에서는 단어에 대해서 무서워하면 안 돼요 그냥 아 이런 게 있구나 라고 생각하시면 되는 겁니다 그랬을 때 Mean Subtraction 이라는 게 뭐냐면은 우리가 앞에서 평균을 구했죠 근데 우리 앞에서는 뭐 Score 1에다가 Score 1에다가 이런 식으로 10을 더 해줬잖아요 그게 아니라 평균을 빼주는 거예요 다시 말해서 각 점수들의 평균을 구하고 그 점수들에다 대고 전부다 평균을 빼주는 게 Mean Subtraction이에요. 여기서 제가 딥러닝에서 뭐 Mean Subtraction을 하게 되면 어떤 효과가 있다 이런 건 전혀 다루고 싶은 게 아니라 이 수식을 보고 여러분들이 구현하는 연습을 한번 해보기를 바라는 거예요. 그래서 우리가 예를 하기 위해서는 먼저 평균을 구하고 각 점수들에서 평균을 빼줘야 되는 거겠죠. 스코어 1, 스코어 2, 스코어 3 같은 경우에는 각각 10, 20, 30점을 한번 줘 보도록 할게요 그리고 nstudent 같은 경우는 3점 이렇게 제가 오타를 했네요 3점 주고 그 다음에 이제 score_mean 이렇게 한번 이름을 붙여 볼게요 그래서 score2, score3 이 식을 적용하기 위해서 각 원소들을 접근해서 평균을 빼줄 거잖아요. 그러면 이런 식으로 쓸 수 있는 거죠. 복합된 연산자를 이용하게 되면 그죠? 이해되죠? 그래서 스코어 2에도 마찬가지로 스코어 민을 빼주게 되는 거고 스코어 3에도 마찬가지로 스코어 민을 빼주게 되는 거예요 그러면은 이 점수들은 각각 우리가 앞에서 구했었던 이 평균에 대해서 빼주게 되는 거겠죠 별게 아니라 이게 바로 Mean Subtraction이에요 그래서 이 내용들을 가지고 뭐 얘기할 건 많지만 아 이런 식들을 이렇게 구현을 할 수 있는 거구나 프로그래밍으로 어떻게 구현을 할 수 있는 거구나 이것만 집중적으로 보시면 되는 겁니다 그랬을 때 여기서 뭐 그냥 결과만 보여 드리도록 할게요 스코어 2 그 다음에 스코어 3 다시 한번 이 스코어들의 평균을 한번 구해 보면은 스코어 민 즉 평균 값이 0으로 바뀌게 되는 걸 알 수가 있어요 그래서 이거 딱 하나만 알고 넘어갔으면 좋겠어요 뭐냐면 평균 구했죠? 그리고 평균을 각각 점수에 대해서 빼줬죠? 그 다음에 다시 한번 평균을 구해보면 아 그냥 Mean Subtraction 해주면 평균이 어떤 점수든 간에 0으로 바뀌는 거구나 이것만 알고 넘어가시면 되는 거예요 그냥 추가적으로 이것만 한번 알고 넘어가시면 좋은 거고 우리가 지금 다루는 이 문제의 핵심은 바로 이 식, Mean Subtraction을 가지고 구현을 하는 거예요 그래서 점수를 할당하고 학생이 몇 명인지도 할당을 하고 평균 구해보니까 20점이었는데 Mean Subtraction을 쭉쭉 이렇게 해주고 나니까 평균이 0이 되더라 이것만 연습을 하시면 되는 겁니다 이 문제도 5분 동안 계속해서 앞에서 배웠던 것들을 점점 쌓아가면서 연습을 하는 거기 때문에 얘도 마지막 우리가 이번 강의에서 마지막 연습이 될 텐데 얘를 5분 동안 충분히 몸에 익히시고 넘어가시면 될 것 같습니다 그러면 얘도 5분 동안 연습을 하고 한번 와 보세요 자 여러분들이 이 Mean Subtraction 까지도 연습을 했다면 조금 그래도 프로그램을 하는 코드가 처음 시간인데도 몸에 익으실 거예요 그래서 프로그램이랑 컴퓨터랑 얘기를 하는 방법이 이런 식으로 변수를 할당해주는 방법 컴퓨터한테 연산을 시키는 방법 그 다음에 연산된 결과를 저장을 하고 그 다음에 또 이런 연산들을 시킬 수도 있는 거구나 그리고 우리가 수학에서 다루는 Mean Subtraction 그리고 딥러닝에서 다루는 Mean Subtraction을 이런 식으로 구현을 할 수 있는 거구나 이것만 알고 넘어가시면 되는 겁니다 그래서 이번 첫 번째 시간에는 여러분들이 아주 제일 기본적인 변수 할당과 그 다음에 Operation 즉 연산자에 대해서 한번 배워봤어요 그래서 앞으로도 우리는 이렇게 점점 딥러닝에서 사용되는 개념들을 의미를 파악한다기보다도 수식을 구현하는 방법에서 그리고 딥러닝에서 사용되는 개념들에 대해서 조금 조금씩 맛을 보면서 중요한 건 수식들 이런 것들을 프로그램으로 구현하는 방법 그리고 프로그램으로 어떻게 구현하는지 그런 기본적인 문법들을 배우게 될 거예요 그럼 다음 시간 시작하기 전에 제가 아주 짧게 연습할 시간을 드릴 테니까 그 강의를 보면서 연습 강의죠 그래서 연습 강의를 보고 넘어가게 되면은 또 새로운 내용을 가지고 한번 연습을 한번 시켜보도록 하겠습니다 강의 듣느라 수고 많으셨고 연습 강의 시간 때 뵙도록 하겠습니다 수고하셨습니다
