안녕하세요! '이미지 처리'라는 주제의 새로운 파이썬 활용편 강의를 만들어서 글을 쓰게 되었습니다. ^^ 최근에 식당이나 카페 등 어떤 장소에 방문하실 때 QR 코드 인식을 한 번이라도 해보셨다면 여러분은 벌써 이미지 처리를 경험하신건데요. 스마트폰 화면에 떠 있는 QR 코드를 매장 입구에 비치된 기기에 적당한 거리로 갖다 대면 자동으로 영역을 찾아서 QR 을 인식하게 됩니다. 그리고 어떤 곳에서는 사람 키 높이에 태블릿을 설치하여 거기에 사람 얼굴을 갖다 대면 자동으로 얼굴 영역을 검출하고 체온을 측정하여 정상 여부를 알려주기도 하지요. (출처 : https://www.emkat.com/products/emkat-temperature-screening-kiosk/) 이미지 처리(+컴퓨터 비전)란 이미지..
이번 편의 주제는 '데이터 분석 및 시각화' 입니다. 2시간이면 될 줄 알았는데 어쩌다보니(...) 6시간을 훌쩍 넘는 긴 영상이 되었네요. 데이터 분석이 뭐지? 하며 살짝 맛보기 정도로 짧게 훑고 지나가려는 분들께는 조금 부담스러울 수 있는 시간이겠지만, 영상 내내 잡소리는 없이 최대한 필요하다 싶은 내용은 꾹꾹 눌러담았으니 데이터 분석 공부하시려는 분들은 속도감 있게 공부하실 수 있도록 하였습니다. 도움이 되면 좋겠네요. 데이터 분석이란 말 그대로 데이터를 분석하는 것입니다. 우리 주변에 데이터는 아주 아주 많은데요. 거의 모든 것이 데이터라고 해도 과언이 아닐 만큼 데이터는 넘쳐납니다. 예를 들자면.. 제가 지금 글을 쓰면서 창 밖을 보니 많은 자동차들이 지나다니는데 아마 대부분 내비게이션을 사용할..
이번에 함께 만들어볼 게임은 퍼즐 보블입니다. 어린 시절 제가 다녔던 모든 오락실에 다른 게임은 몰라도 퍼즐 보블 게임은 꼭 있었는데, 그만큼 재미도 있고 게임 방법도 단순해서 많은 분들의 사랑을 받았습니다. 특히나 저는 오락실 게임을 잘하는 편이 아니라서 직접 플레이하기보다는 다른 사람들이 하는 걸 구경만 하곤 했었는데, 퍼즐 보블 만큼은 왠지 모를 자신감이 생겨서 한 번씩 도전했었습니다. 막상 해보니 그렇게 쉽지만은 않더라구요 ^^;; 혹시라도 이 게임을 잘 모르시는 분들을 위해 소개를 드리자면, 화면 아래에 보이는 화살표를 좌우로 움직여서 원하는 방향으로 버블을 쏩니다. 그리고 동일한 색깔의 버블이 3개 이상 연속으로 모이게 되면 그 버블들은 터지게 되며, 화면 내의 모든 버블들이 터뜨리는 것이 목..
코딩에 입문하시는 분들이 처음에는 으쌰으쌰 공부를 시작하지만 반복되는 지루한 문법 설명에, 한 번씩 나오는 어려운 개념(클래스라던지?)을 만나게 되면 곧 흥미를 잃게 되는 경우가 많습니다. 막상 공부를 꾸준히 하시는 분들도 "그래서 뭐? 이걸 배우면 내가 뭘 만들 수 있지?" 의문을 가지게 되기도 하구요. 기초 문법을 공부하신 분들께 저는 항상 프로젝트를 해보시라고 추천합니다. 주제는 뭐가 되었든 상관 없어요. 그냥 만들고 싶은 프로그램을 처음부터 끝까지 완성해보면 그게 프로젝트입니다. 그 과정에서 오류도 만나고 시행 착오도 겪고 책에서 배우지 않은 내용은 구글링도 해보고 누군가에게 질문도 해보면서 실력이 쌓이는 것이죠. 물론 험한 말도 한 번씩 나오곤 합니다. 하지만 어떤 분들은 프로젝트를 무엇으로 할..
어느 날 우연히 다음 영상을 보게 되었습니다. (30초 정도 짧은 영상입니다 ㅎㅎ) 이 친구랑 내기하면 10 초 안에 질 자신 있습니다 ㅠㅠ 침팬지 한 마리가 모니터 앞에 앉아 까만 화면에 짧은 시간 동안 나오는 모든 숫자의 위치를 기억하고는 하나씩 선택하는 기억력 테스트 게임인데요. 정말 놀라울 만큼 빠르게 숫자를 외우고 하나씩 터치합니다. 원숭이도 나무에서 떨어질 때가 있듯이, 이 친구도 다행히(?) 한 번 실수를 하기는 하지만 솔직히 함께 게임 내기를 하라고 하면 이길 자신이 없네요.. ㅋㅋ 막상 영상을 보고 나니 저도 이 게임을 해보고 싶다는 생각이 들어서 찾아보니 비슷한 게임은 있는데 동일한 방식으로 진행되는 게임은 없었습니다. 레이아웃이 다르거나, 불필요한 디자인이 붙거나 또는 제가 원하는 게..
지금까지 배운 내용을 복습하기 위한 퀴즈를 드리겠습니다. 직접 한 번 풀어보시고 나서 정답을 확인해주세요. Quiz) 프로젝트 내에 나만의 시그니처를 남기는 모듈을 만드시오 조건: 모듈 파일명은 byme.py 로 작성 (모듈 사용 예제) import byme byme.sign() (출력 예제) 이 프로그램은 나도코딩에 의해 만들어졌습니다. 유튜브: http://youtube.com 이메일: nadocoding@gmail.com ▼ 해설 보기 더보기 퀴즈 해결을 위해 먼저 Visual Studio Code 에서 byme.py 라는 이름으로 새로운 파일을 생성합니다. byme 모듈에는 사용 예제에 주어진대로 sign() 이라는 함수를 하나 정의하면 되는데, 함수의 역할은 아주 단순합니다. 출력 예제에 적힌 ..
마지막으로 배울 내용은 외장 함수입니다. 내장 함수와는 다르게 외장 함수를 사용하기 위해서는 반드시 해당 모듈을 import 해야 합니다. 먼저 파이썬에서 제공되는 모듈을 살펴보기 위해 구글에서 "list of python modules" 로 검색합니다. 검색 결과 첫 페이지에 나오는 공식 홈페이지의 Python Module Index 페이지를 방문하면 파이썬에서 사용할 수 있는 모듈 목록이 알파벳 순으로 정렬되어 나오며 모듈을 선택하면 사용 가능한 함수들에 대해 설명 및 예제 코드를 확인할 수 있습니다. 예를 들어서 random 모듈에서 사용가능한 함수 정보를 확인하기 위해 상단의 r 을 클릭하고 이어서 페이지에 나타나는 random 을 클릭합니다. 모듈 페이지는 다음과 같이 상단에 요약 정보와 파이썬..
파이썬에는 내장 함수 (built-in function) 가 있습니다. 내장 함수란 별도로 import 를 하지 않고도 사용할 수 있도록 내장되어 있는 함수를 의미하는데요. 사용자의 입력을 받기 위한 input() 함수도 내장 함수 중 하나입니다. 사용자로부터 좋아하는 언어를 입력 받고 문장을 출력하는 간단한 코드를 작성하겠습니다. language = input("무슨 언어를 좋아하세요? ") print("{0}은 아주 좋은 언어입니다!".format(language)) 프로그램을 실행시키고 "파이썬" 이라는 값을 입력하면 language 라는 변수에 저장을 했다가 print() 문을 통해서 출력을 합니다. 이 때 내장함수인 input() 을 쓰기 위해 별도로 해줘야 하는 것은 아무것도 없었습니다. 무슨..
파이썬의 강점 중 하나는 유용한 패키지가 아주 많이 존재한다는 것입니다. 지금도 전 세계 각지에서 누군가는 새로운 패키지를 개발하고 있어서 그 수는 점점 늘어가고 있지요. 그렇기 때문에 파이썬으로 개발을 할 때 어떤 기능이 필요하다고 하면 무작정 처음부터 개발하기보다는 이미 잘 만들어진 패키지가 있지는 확인을 해보고 잘 가져다가 쓰는 것도 무척 중요합니다. 가령 랜덤으로 어떤 수를 뽑아주는 기능이 필요하다고 하면 직접 처음부터 구현을 할 수도 있겠지만 개발하는 과정에서 실수가 있을 수도 있고 고려해야 할 부분도 생각보다 많을 수도 있을 겁니다. 다행히 우리는 이미 많은 사람들이 사용하고 충분히 검증받은 잘 만들어진 random 모듈이 있다는 것을 알기 때문에 아주 빠르고 쉽게 가져다 쓸 수가 있습니다. ..
패키지나 모듈은 호출을 하려는 파일과 동일한 경로에 있거나 또는 파이썬 라이브러리들이 모여 있는 폴더에 있어야 사용이 가능합니다. 앞에서 만든 theater 모듈이나 travel 패키지는 그들을 사용하는 practice.py 파일과 같은 위치에 있어서 문제 없이 사용할 수 있었던 것이죠. 파이썬에서는 사용하려는 모듈이 어느 경로에 있는지 확인할 수 있는 방법이 있습니다. 우리가 자주 쓰던 random 모듈에 대한 경로를 먼저 확인하기 위해 inspect 라는 모듈을 import 하고 getfile() 이라는 함수에 전달값으로 random 을 적습니다. import inspect import random print(inspect.getfile(random)) # random 모듈의 위치 실행해보면 다음과 ..
travel 패키지의 thailand 와 vietnam 모듈은 내용이 간단하게 작성되어 있어서 크게 문제 되는 부분이 없었는데 실제로 모듈을 만들게 되면 규모나 복잡도에 따라 모듈 내 기능이 올바르게 동작하는지를 확인하는 작업이 반드시 필요합니다. 물론 지금까지 배웠던 것처럼 별도의 파일에서 해당 모듈을 import 해와서 테스트를 해볼 수도 있겠지만 모듈을 직접 실행하면서 확인하는 방법이 아무래도 수월하겠지요. 모듈이 직접 실행되는지, 아니면 별도의 파일에서 호출되어 실행되는지는 이렇게 구분할 수 있습니다. 이 때 __name__ 과 "__main__" 은 앞 뒤로 밑줄을 2번씩 적어주셔야 한다는 점 주의해주세요. if __name__ == "__main__": # 직접 실행되는 경우 pass else..
책의 앞부분에서 우리는 random 모듈을 import 할 때 * 를 사용함으로써 random 모듈 내의 모든 것을 가져다 쓸 수 있다고 공부한 적이 있습니다. from random import * travel 패키지도 같은 방식으로 한 번 사용해볼까요? from travel import * 을 함으로써 travel 패키지의 모든 것을 가져다 쓰겠다고 하고 나서 VietnamPackage 객체를 만들어보겠습니다. from travel import * trip_to = vietnam.VietnamPackage() # 베트남 trip_to.detail() 실행시켜보니 다음과 같이 vietnam 이 정의되지 않았다며 에러가 발생하네요. NameError: name 'vietnam' is not defined ..
- Total
- Today
- Yesterday
- Xcode
- pygame
- 비주얼 스튜디오 코드
- Tkinter
- c언어
- 나도코딩
- 파이썬
- Visual Studio Code
- GUI
- Coding
- 아나콘다
- 환경설정
- Unity
- Mac
- game
- 코랩
- vscode
- Colab
- coloso
- 주피터노트북
- 파이게임
- 행맨
- pycharm
- repl.it
- onlineclass
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |