10월, 2017의 게시물 표시

Getting Started >> A first app (Kivy tutorial) 2 - Widget

이미지
https://kivy.org/docs/tutorials/firstwidget.html 위 튜토리얼에선 Widget을 집중적으로 설명하고 있다. Kivy에서 어플리케이션의 사용자 인터페이스는 모두 위젯으로 이루어져 있다. 위젯을 설계할 때 다음 세가지를 꼭 기억해야 한다. 1. What data does my application process? 2. How do I visually represent that data? 3. How does the user interact with that data? 위젯은 data를 가지고 있고, 그 데이터에 대한 사용자와의 상호 작용 방법을 정의한다. 그리고 그것을 시각적으로 표현한다. 제공되는 위젯으로 간단한 것 부터 복잡한 것 까지 다양한 위젯을 만들 수 있다. 위젯은 그 쓰임에 맞게 최소한의 기능으로 그리고 재사용성이 높게 만드는 것이 좋다. ( Single Responsibility Principle ) 어떤 기능이 더 필요할 때 위젯을 더 만들거나 작은 위젯들을 합쳐서 사용할 수 있다. Paint Widget ¶ [코드 1] 그냥 까만 화면만 나온다. [코드 2] 6,7 라인의 코드가 추가되었다. Pycharm으로 실행시키고 화면을 마우스로 클릭하면 pycharm의 하단 콘솔창에 그 지점의 좌표가 출력된다. [코드 3] 3번째 코드에서부터는 화면을 클릭하는 MotionEvent에 의한 반응이 화면에 나타나기 시작한다. 다음은 라인별 설명이다. Line 9: 위젯의 Canvas object를 사용할 때 with 을 사용한다. Canvas는 그릴 수 있는 영역이 되는 것이다. 들여쓰기가 올바르게 된 그리기 명령들은 canvas에 영향을 준다. 또 with 문을 사용했기 때문에 그리기 이후에 internal state가 적절히 깨끗해질 수 있다. (internal state가 뭐지?) Line 10: 다들 눈치 챘겠지만 RGB 값이다....

Python 조건문/함수/입출력

조건문 If 문 if 조건문:       수행할 문장1       수행할 문장2       수행할 문장3 else :       수행할 문장1 위와 같이 조건문 뒤에 :을 붙이며 수행할 문장에는 반드시 들여쓰기를 해야한다.(들여쓰기는 스페이스바 4개가 권장된다) 비교 연산자는 다른 언어와 같으며, 단 and, or, not 은 기호가 아닌 영어로 그대로 사용한다. 조건문에서 아무 일도 일어나지 않게 하려면 pass 를 쓰면 된다. 다른 언어에서 사용하는 else if를 파이썬에서는 elif 로 사용한다. while 문 while 조건문:     수행할 문장1     수행할 문장2     ... 위와 같이 사용된다. 다른 언어와 같이 continue, break 사용이 가능하다. for 문 for 변수 in 리스트 (또는 튜플, 문자열):     수행할 문장1     수행할 문장2 위와 같이 사용되며 자동으로 변수가 처음부터 끝까지 검사한다. for문은 숫자 리스트를 자동으로 만들어주는 range()라는 함수와 함께 사용되는 경우가 많다. range는 range(시작 숫자, 끝 숫자) 형태로 사용되고 끝 숫자는 포함되지 않는다. 시작 숫자를 생략하고 range(x) 를 통해서 0부터 x미만의 숫자 객체를 만들 수도 있다. 기본적인 사용 예로는 marks = [ 90 , 25 , 67 , 45 , 80 ] for number in range(len(marks)): if marks[number] < 60 : continue print( "%d번 학생 축하합니다. 합격입니다." % (number+ 1 )) 위와 같이 사용가능하며 우리가 주로 사용하던 for문과 유사한 것을 볼 수 있다. 리...

Python 자료형

자료형 문자열 인덱싱 a = "Life is too short, You need Python" 이라는 문자열을 지정하면 파이썬에서는 각 문자마다 번호를 매긴다. Life is too short, You need Python 0             1 2            3 0123456789012345678901234567890123 첫번 째의 L을 0으로 지정하여 순서대로 지정된다. a = "Life is too short, You need Python" a[3] 출력 : 'e' 이 외에도 -기호를 이용하면 뒤에서부터 읽기 시작한다. 0과 -0은 같기 때문에 -는 -1부터 시작된다. 문자열 슬라이싱 문자열 인덱싱을 이용하여 단어들을 뽑아 내는 것이다. 하나씩 뽑는 것도 가능하며, a[시작번호:끝번호] 처럼 여러 개를 뽑는 것도 가능하다. 시작번호나 끝번호를 생략하면 시작부터 끝번호까지 혹은 시작번호부터 끝까지 출력이 된다. 이를 이용하여 문자열을 바꾸려고 한 문자의 인덱싱을 활용하여 바꾸면 바뀌지 않는다. 왜냐하면 문자열은바뀌지않는 자료형이기 때문이다. 하지만 슬라이싱을 이용하여 바꾸면 바꿀 수 있다. 예를들어 >>> a = "Pithon" >>> a[: 1 ] 'P' >>> a[ 2 :] 'thon' >>> a[: 1 ] + 'y' + a[ 2 :] 'Python' 문자열 포매팅 printf 방식과 비슷하며 %다음에 원하는 문자를 입력하면 된다. 문자는 변수나 상수 모두 가능하다. 여러개일 경우 괄호()와 콤마(,)를 이용한다. 문자열 관련 함수 count 문자 개수 세기 find 위치 알려주기(없으면 -1 반환) index 위치 알려주기(없으...

Getting Started >> A first app (Kivy tutorial)

이미지
https://kivy.org/docs/tutorials/pong.html kivy 홈페이지에서 튜토리얼 을 제공한다. kivy에서 설명하고 있는 a first app은 Pong Game이다. 볼을 쳐서 상대편 벽에 닿게 하면 승! 하는 게임이다. 이 first app을 만들면서 kivy app 개발에서 두고두고 써먹을 수 있는 정교하고 유용한 개념들을 배울 수 있다고 소개하고 있다. 튜토리얼을 시작해보자! 튜토리얼 시작 전 체크리스트! 1. Kivy install 2. You know how to run a basic kivy application. See the Create an application . if you have read the programming guide, and understand both basic Widget concepts ( A Simple Paint App ) and basic concepts of the kv language ( Kv language ), you can probably skip the first 2 steps and go straight to step 3. 나는 체크리스트 1,2번 중 2번을 해야 했고, 아래 설명대로 programming guide를 읽지 않았기 때문에 모든 step을 거쳐야한다. https://kivy.org/docs/guide/basic.html#create-an-application import kivy kivy . require ( '1.0.6' ) # replace with your current kivy version ! from kivy.app import App from kivy.uix.label import Label class MyApp ( App ): def build ( self ): return Label ( text = 'Hello world' ...

Pycharm 설치 및 kivy 세팅

이미지
Jetbrains에서 만든 Pycharm을 컴퓨터에 설치했다. 임시 프로젝트를 하나 만들고 python 파일을 추가해서  print("Hello world") 를 실행해 보았다. 성공적이었다. 그리고 구글에 'pycharm kivy'를 검색. 가장 상위 결과에 들어가보니( https://github.com/kivy/kivy/wiki/Setting-Up-Kivy-with-various-popular-IDE's#setting-up-kivy-with-pycharm-on-windows )  kivy는 유명한 오픈소스 답게, 깃허브 위키에 많이 쓰이는 다양한 IDE별 세팅 방법이 설명되어 있었다!!! 나는 윈도우 OS에 pycharm을 쓰고 있으니 Setting up Kivy with PyCharm on Windows 를 클릭했다. Windows 인스톨과 관련한 kivy document 를 참고했다. User's Guide Installation on Windows >>  kivy 1.9.1 버전부터 binary wheels를 제공하고 모든 dependency는 파이선 installation을 사용하게 된다. ( wheels 는 python을 위한 built-package format이다.) cmd 창을 열고 문서에서 하란 대로 했다. 1. 우선 kivy dependency들을 설치했다. python - m pip install -- upgrade pip wheel setuptools python - m pip install docutils pygments pypiwin32 kivy . deps . sdl2 kivy . deps . glew python - m pip install kivy . deps . gstreamer kivy.deps.angle은 only python 3.5에만 제공한다고 해서 설치하지 않았다. (py...