대학시절에 MFC나 Java Swing 을 했던 추억을 떠올리면서, 맛보기 하는 정도로 흝어볼 예정이다. 

Python 설치시에 기본적으로 GUI Toolkit 인 Tkinter가 같이 설치된다. 좀더 열정이 있었다면 Wxpy, PyQt4, Kivy 등등의

파이선 GUI 툴에 대해서 소개를 하겠지만.. 그건 힘들거 같다. 

일단 간단한 예제로 워밍업

아래 코드는 간단하게 버튼이 하나 있는 창이 열리고 그 버튼을 누르면 창이 닫히는 매우 간단한 프로그램이다.

1 : Tkinter 를 위해서 import

2 : 버튼에 Binding될 이벤트 함수

5:  메인 윈도우를 생성

7: 메인 윈도우 위에 text에 들어가있는 캡션을 가지고 버튼을 생성

9: 첨에 이놈은 뭐하는것인고(?) 라고 생각했는데 버튼이 차지할 레이아웃을 지정한거다. 

11 : 버튼 클릭 이벤트 바인딩 

13 : root.mainloop() 는 이벤트 루프를 실행시키는 부분인데 클릭되면 이벤트 핸들러가 동작한다


실행화면


와우 !!!대한민국만세가 와도 만들정도의 예제를 만들어 봤다.  민망할정도다.


이제 사랑이가 와서 만들만한 예제 하나 더 만들어보자.

이번에는 버튼을 2개 만들고 하나를 누르면 라벨에 MILO WORLD ! 라고 출력이 되고 다른 버튼을 누르면 창

이 닫히는 프로그램을 만들어보자. 위에서 만든 예제를 좀 바꿔서 만들어보자.



위 예제에서 버튼과 라벨을 하나 더 추가하고, 버튼에 따른 이벤트를 추가하고, 버튼이 눌렀을때 라벨값을 변경했다.

주의할점은 line:10 과 line:13 에 있는 bind 함수인데... 난 첨에 이 이벤트 핸들링을 위한 특정 ID를 파라미터로

넘기는줄 알았는데... 저게 이벤트 키다. Button-1 이라는 이벤트는 좌클릭 이벤트를 나타내는 파라미터다..멈칫..


Tkinter 결론 : 컴포넌트 사용법과 레이아웃 배치하는 정도만 공부하면 이것저것 만드는데 큰 어려움은 없을거 같다 .

                    Python 프로그램들의  플랫폼에 따른 동작에 대해서 좀 봐야겠다






Posted by 마일로
:

[5]Django Tutorial

Python 2014. 6. 27. 21:45 |

이름부터 멋지다. Django 튜토리얼 



1. 장고를 설치하기 위해서 Python 라이브러리 관리를 하는 pip 라는 녀석을 다운로드. 


2. 그리고 그놈을 실행 "python get-pip" 그러나.. Proxy 서버 설정 문제로 설치가 제대로 안됐다. 


3. 결국 장고를 설치한 방법은 mac 에서 사용하는 easy_install ! 아래와 같은 명령어로 쉽게 설치 했다. 

  미널 >> sudo easy_install Django 


아래 명령어를 치면, 현재 경로에 Django 프로젝트가 하나 생성된다.

django-admin.py startproject MiloDjangoProject


아래와 같은 폴더 구조로 생성

MiloDjangoProject/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py
  • manage.py: A command-line utility that lets you interact with this Django project in various ways. You can read all the details about manage.py in django-admin.py and manage.py.
  • The inner mysite/ directory is the actual Python package for your project. Its name is the Python package name you’ll need to use to import anything inside it (e.g. mysite.urls).
  • mysite/__init__.py: An empty file that tells Python that this directory should be considered a Python package. (Read more about packages in the official Python docs if you’re a Python beginner.)
  • mysite/settings.py: Settings/configuration for this Django project. Django settings will tell you all about how settings work.
  • mysite/urls.py: The URL declarations for this Django project; a “table of contents” of your Django-powered site. You can read more about URLs in URL dispatcher.
  • mysite/wsgi.py: An entry-point for WSGI-compatible web servers to serve your project. See How to deploy with WSGI for more details





Posted by 마일로
:

[4] Ptyhon 관련 정보

Python 2014. 6. 14. 10:48 |

# 파이썬 관련 패키지 색인 

http://pypi.python.org/pypi


# 파이썬 패키지 쉽게 설치하기   (setuptools)

https://pypi.python.org/pypi/setuptools

//WINDOW

c:\ >> cd \python33

c:\ >> python ez_setup.py

//UBUNTU

sudo apt-get install python3-setuptools

sudo easy_install3 --version


** pip도 있다. setuptools 보다 더 편리하다는데 사용안해봐서 모르겠다. 

#파이썬 이미지 라이브러리 

easy_install Pillow 

//병아리 모양 변경하기

>>import Image

>>chick = Image.open("chick.jpg")

>>chick

>>chick.mode     // 'RGB'

>>chick.size       //(315,429)

>>chick.save('병아리.bmp')

>>s = chick.resize((105,200))


Posted by 마일로
:

[3] Python module

Python 2014. 6. 14. 10:34 |

파이썬에서는 라이브러리를 모듈 형태로 제공한다. 

>>import math

>>math.pi


>>import calendar

>>calendar.prmonth(2014,5)



#이번달 달력을 보여주는 예제 

from datetime import date

from tkinter import *

import calendar

t=date.today()

m = calendar.month(t.year, t.month)[:-1]

f= 'Courier New' , 10

w = Label(None, text=m, font=f, justify=LEFT)

w.pack()  //위젯을 화면에 출력

mainloop()


#import의 두가지 형태

>> import 모듈명                                // 모듈 전체를 import

>> from 모듈명    변수나 함수 이름       //특정한 대상만 import


#모듈 지우기

>> del 모듈



#자주 사용하는 모듈 정리

.sys  :  파이썬 인터프리터를 제어 하는데 사용

>>import sys

>> sys.ps1  //프롬포트 확인

>>sys.ps1 ="@@@"  // 프롬트를 @@@로 변경해라 

>>sys.version    // sys.version_info       // 파이썬의 버전을 확인하고 싶은 경우 사용

>>sys.exit()   //프롬포트를 빠져나온다.


.os : 운영체제를 제어 할수 있다. 

>> import os

>> os.getcwd()    //현재 경로를 확인

>> os.listdir('.')   // 현재 경로의 디렉토리를 확인 window 의 dir과 같은 역활인듯

>> os.rename( 'a.txt', 'b.txt')    // 파일 이름을 a.txt 에서 b.txt 로 변경


.random : 난수를 발생해서 처리하는 일들을 하는 모듈

>>import random

>>random.random()  //skstnrk qkftod

>>random.randrange(1,7)   // 1 ~ 7 사이의 랜덤 숫자 발생

>>random.shuffle(list)    // list의 요소들을 랜덤하게 섞어준다.

>>random.choice(list)    // 배열내의 요소들중에 하나를 임의로 뽑아준다. (복불복 내기에 사용하기 좋을듯)



Posted by 마일로
:

[2] Python Basic Syntax

Python 2014. 6. 14. 10:21 |

파이썬의 기초 문법에 대해서 포스팅을 하고자 한다. 기존에 다른 랭기지를 익힌 사람이라면 한두시간만 투자해도 쉽게 익힐수 있다. 그러나... 라이브러리들을 import로 제공하고 사용하기 때문에 얼마나 많이 사용해보느냐가 중요한 요소일듯.


# 콘솔에 출력은  print 메소드를 활용한다.

.문자열 출력  -> print 'abdwef' 

.숫자 출력 -> print 3


#변수선언

변수 선언은 따로 필요없다. 따라서 아래와 같이 가능하다.

>> a=4

>> b=5

>> c = a+b

>> print c  //9가 출력된다.


#달력보기 


>> import calendar                  // 캘린더 사용을 위한 import


>> calendar.prmonth(2018,2) //보고싶은 달을 출력


#문자열 


>> 'super' + 'marcket' // 'supermarcket'


>> 'show ' * 3 // 'show show show'


>>  len('abcd') // 4 len means length 



#배열에 숫자를 차례대로 입력하고 shuffle 하는 예재


>>numArray = list(range(1,50))  //1에서 50까지의 숫자를 가진 배열이 생성된다 [1,2,3,4,5,....]


>> import random                    //shuffle 함수를 사용하기 위한 random 라이브러리 import 


>> random.shuffle(numArray)  // 배열의 순서를 랜덤으로 섞음


>> numArray.pop()                // 하나의 element를 꺼낼수있다.


#반복문


>>for i in range(4,8):   //range 와 함께 사용


>>    print i 


>>arr = ['1','2','abc']


>>for element in arr :   // foreach 문 형태로 사용


>>    print element


>> num =1


>> while num <= 100:    // while 문 형태


>>    print num


>>     num = num+1



#조건문   : else, else if 둘다 가능하다.


>> if a > b:        // if 문 


>>    print a


>>else:


>>    print b



#Dictionary


dic = {'a': 'this' , 'b' : 'that' , 'c' : 'oh my god' }


dc.keys();  // a, b, c


dc.values()  //  this , that, oh my god


'python' in dc     // false    포함하고 있는지 여부를 알수 있다. 



#파일에서 목록을 가지고와서 집합(SET)으로 만들기


mdb_file = open('C:/list.txt', encoding='utf-8')


mdb = set(line.strip() for line in mdb_file)


os의 명령어 실행도 가능하아


>>import os


>>os.getcwd()


>>os.chdir('C:/abcd/dd/movie')


#합집합 구하기


>> all = mdb.union(c).union(gt)







Posted by 마일로
:

[1] Python 기본 소개

Python 2014. 6. 13. 21:44 |

#Python의 특징

1. 고수준 언어 : Syntax 보다는 더 큰 안목으로 바라볼수 있다. 

2. 문법이 매우 간단하다. 배우기 쉽고 빠르게 소스를 읽어 볼수가 있다. => 파이썬을 공부하기 전에 외국 개발자들의 이야기를 봐도 , 가장 많이 나오는 말이 가독성이 좋다 라는 말이 었다. 기대되네

3.수요가 많고, 많은 개발자들이 파이썬 프로그래밍을 즐겨서 사용한단다.


내가 파이썬에 관심을 가지게 된것은 Django 라는 프레임웍이 널리 사용되는것을 보고 한번 사용해 보고 싶다란 생각이 들어서였다. 그리고 Java , Script 언어가 아닌 다른 인터프리터 언어를 습득해보고 싶어서다. 

이글을 포스팅하는 2014년 6월 기준 프로그래밍 언어 순위 8위에 당당하게 랭크되어 있다. 

그만큼 널리 사용되고 있다는 뜻이다.

파이썬은 쉽기 때문에 프로그래밍 교육용으로도 사용하기 쉽다고 한다. 


파이썬 개발을 위해서  Python 공식사이트에서 (https://www.python.org/) 실행파일을 다운로드 받았고, 

이클립스에 'PyDev' 플러그인을 설치 하였다. 테스트를 위해서 아래와 같이 파이썬 코드를 작성하고 돌려봤다.

mylist = ['kim sung hee', 'lee sung jae', 'um jaekyung'];
if len(mylist) > 0 :
    print 'This is not Empty Array'
    print 'So, I\'m going on print this element'
    
    for element in mylist :
        print element;


파이썬을 실행하는 방법에는 일반 쉘에서 실행할수도 있고, 통합개발환경, 크롬에서도 파이썬 쉘을 실행시킬수 있다.

또는 http://ideone.com 에서 온라인에서 실행할수도 있다.

이상없이 돌아간다. 파이썬 첫번째 포스팅 끝


파이썬 관련 성공 사례 : http://python.org/about/success/





Posted by 마일로
: