MyAlbum   Pet
DirectX   openGL   Java   C/C++   STL   C#   Python   Window   ActiveX   SE & Refactoring   Game   Unicode   googleDesktop   Network   Database   Web   php   asp   asp.net   Library   QT   wxWidget   Something to read  
ToDo
zelon's WebAlbum
Google Tools
Google Naver map
ToRearrange
OpenOffice.org
Eclipse
Check W3 validator
python
e i R f
Anonymous

Contents

1 eclipse plugin
2 link
3 정규식, regular expression
4 파일 다루기
4.1 디렉토리 탐색
4.2 파일인지 디렉토리인지
5 gui sample
6 random
7 문자열
7.1 인코딩
8 배열, 컨테이너
8.1 리스트
8.1.1 리스트 함수
8.2 튜플
8.3 사전
8.3.1 사전 함수
9 조건문 및 반복문
9.1 if
9.2 while
9.3 for
9.4 특이한 else
10 파일 입출력
10.1 파일 열기
11 오류와 예외 - try except
12 클래스
13 database
14 배포
15 기타
15.1 읽을 거리
15.2 문자열에 포함된 태그 제거
15.3 zip 파일 압축
15.4 print, println
15.5 printf like C
15.6 comment
15.7 equal
15.8 command input
15.9 웹 페이지
15.9.1 초간단 받기
15.9.2 쿠키도 보내기
15.10 실행 인자 받기
15.11 문자 변수 내용에 한글을 쓸 때 오류 제거
15.12 etc

1 eclipse plugin #


2 link #


3 정규식, regular expression #

import re
print re.findall(r'expression', 'original string')

4 파일 다루기 #


4.1 디렉토리 탐색 #

import glob
files = glob.glob("/tmp/*")

4.2 파일인지 디렉토리인지 #

import os
if os.path.isdir(aFile):
   print 'dir'

5 gui sample #

# -*- coding: mbcs -*-

from Tkinter import *

class Application(Frame):
	def say_i(self):
		print "hi there, every oe!"

	def createWidgets(self):
		self.QUIT = Button(self)
		self.QUIT["text"] = "QUIT"
		self.QUIT["fg"] = "red"
		self.QUIT["command"] = self.quit

		self.QUIT.pack({"side": "left"})

		self.hi_there = Button(self)
		self.hi_there["text"] = "안녕~~",
		print self.hi_there["text"]
		self.hi_there["command"] = self.say_i

		self.hi_there.pack({"side": "left"})

	def __init__(self, master=None):
		Frame.__init__(self, master)
		self.pack()
		self.createWidgets()

app = Application()
app.master.title("Zelon's Dialog")
app.mainloop()



6 random #

import random
random.random()

위와 같이 하면 0~1 사이의 값을 얻을 수 있다.

7 문자열 #

  • 큰따옴표나 작은 따옴표를 모두 쓸 수 있다.

  • + 연산자를 이용해 연결할 수 있다.

  • * 연산을 하면 반복시킬 수 있다.

  • 문자열의 처음 문자를 0, 끝을 -1 로 인식하는 방법으로 슬라이스 연산자([ ], [:]) 를 사용해 추출 할 수 있다.

  • python 2.3 부터는 [start:stop:step] 의 step 이 제공되었다. a[::-1] 을 하면 뒤집힌 문자열을 얻을 수 있다. 2 로 하면 홀수번째만 모은 문자열을 얻을 수 있다.

pystr = "Python"

print pystr[2:5]
'tho'

print pystr[:2]
'Py'

print pystr[3:]
'hon'

print pystr[-1]
'n'

7.1 인코딩 #


일단 유니코드로 변환한다음 적절한 형식으로 변환하는 방법을 취한다.

enc = unicode(s, "utf-8", "ignore").encode("cp949")

위의 방법은 utf-8 로 인코딩 문자열을 cp949 로 변환하는 코드이다.


8 배열, 컨테이너 #


둘다 슬라이스 연산([])을 이용할 수 있다.

8.1 리스트 #


리스트와 튜플이 다른점은 튜플이 읽기전용이라는 것이다.
aList = [1,2,3,4]
print aList[0]

8.1.1 리스트 함수 #

append리스트 끝에 추가
count개수 알아내기
index요소 검색
sort정렬

8.2 튜플 #

aTuple = ('robots', 77)
print aTuple[0]

8.3 사전 #

c++ 의 해시맵과 비슷하다.
aDict = {}
aDict['host'] = 'earth'

8.3.1 사전 함수 #

keys()키들을 리턴
values()값들을 리턴
items()(키,값) 리스트 리턴
key in DD 가 key 를 가지면 True 리턴
clear()모든 아이템 제거

9 조건문 및 반복문 #


9.1 if #

 if expression1:
      if_suite
 elif exporession2:
      elif+suite
 else:
      else_suite

9.2 while #

 while expression:
      while_suite

9.3 for #

파이썬의 for 는 일반적인 언어들의 카운팅과는 다른 script 언어들의 foreach 문과 비슷하다.
 for item in items:
      print item

 for eachnum in range(6)
      print eachnum

0
1
2
3
4
5

range 에는 1~3개의 인자를 줄 수 있다. 1개(X)면 0부터 X미만까지 1씩 증가하며 반복, 2개(X,Y)면 X 부터 Y 미만까지 1씩 증가하며 반복, 3개(X,Y,Z)면 X 부터 Y 미만까지 Z 씩 증가하며 반복

9.4 특이한 else #



파이썬에서는 for, while 의 끝에 else 를 달 수 있다. 반복문 안에서 break 로 끝나지 않고 반복문을 벗어났을 때 들어오게 된다.

10 파일 입출력 #


10.1 파일 열기 #



 handle = open(filename, access_mode = 'r')

11 오류와 예외 - try except #


 try:
      try_suite
 except somError:
      except_suite

== 함수 ==
{{{
 def functionname(arg ... ):
      return somevalue

디폴트 인자를 쓸 수 있으며 형식은 C++ 과 같다.

12 클래스 #

class FooClass:
      version = 0.1

 def __init(self):
#      'constructor'
      self.name = "Kimjinwook"

 def showname(self)
      print self.name


13 database #


14 배포 #


py2exe 를 통해서 exe 파일로 배포가 가능한듯하다.

  • http://kldp.net/projects/galleryviewer/


  • 15 기타 #


    15.1 읽을 거리 #



  • 구글에서의 파이썬 : http://panela.blog-city.com/python_at_google_greg_stein__sdforum.htm
  • 구글에서의 파이썬(한글) : http://openlook.org/blog/1035

  • 15.2 문자열에 포함된 태그 제거 #


    15.3 zip 파일 압축 #



    import zipfile
    
    aZip = zipfile.ZipFile("newzrchive.zip", "w")
    aZip.write("test1.txt")
    aZip.write("sub/test2.txt")
    aZip.close()
    

    15.4 print, println #

    * print 문에서 자동으로 endline 을 넣지 않으려면 print 문 끝에 , 를 넣는다.
    print "Kim " ,
    print "Jinwook"
    

    15.5 printf like C #

  • print 문에서 C 의 printf 와 같이 하려면 % 를 이용한다.
  • print "%s is number %d" % ("Zelon", 3)
    

    15.6 comment #



  • 주석은 # 표시이다.
  • 여러줄 주석은 """ 로 둘러싼다. 즉, multiline string 으로 인식시켜버리는 것이다.


  • 15.7 equal #

  • 같다는 == 이고 같지않다는 !=, <> 둘다 쓸 수 있다.

  • 15.8 command input #

  • 사용자의 입력 받기
  •  k = raw_input()
     a = raw_input("Enter your name : ")
    

    15.9 웹 페이지 #



    15.9.1 초간단 받기 #

    import urllib
    f = urllib.urlopen("http://wimy.com")
    print f.headers
    print f.read()
    

    15.9.2 쿠키도 보내기 #

    from httplib import HTTP
    
    cookie = "PHPSESSID=2fffeefefef22fefefe"
    request = HTTP("wimy.com")
    request.putrequest("GET", "/")
    request.putheader("Accept", "text/html")
    request.putheader("UserAgent", "PythonAgent")
    request.putheader("Host", "wimy.com")
    request.putheader("Cookie", cookie)
    request.endheaders()
    

    위에서 cookie 는 이전 요청의 headers 에서 찾을 수 있다.

    15.10 실행 인자 받기 #

    import sys
    print sys.argv
    print sys.argv[0]     # a.py
    print sys.argv[1]     # 첫번째 인자
    

    15.11 문자 변수 내용에 한글을 쓸 때 오류 제거 #


    파이썬 스크립트의 제일 처음에 다음과 같은 구문을 추가한다.

    # -*- coding: mbcs -*-
    

    # -*- coding: euc-kr -*-
    

    # -*- coding: utf-8 -*-
    

    15.12 etc #


    • 일반적인 언어에서의 block(혹은 scope)는 탭을 이용한 띄어쓰기를 이용한다.

    • 파이썬은 --n, {{{n++}} 등은 지원하지 않는다.

    • 파이썬의 long 은 시스템의 메모리에 의해서만 한계를 갖는다. C 의 long 과는 다르다.

    • no operation 을 나타내기 위해 'pass' 라는 키워드가 존재한다. 빈 함수를 만들 수 없기 때문에 앞으로 만들 함수의 내용대신에 'pass' 를 넣는다
    def foo_func():
        pass