Development/Language 32

Array 정렬하기 (sort)

기본적인 문법이겠지만, 프로젝트 진행중에 사용의 필요가 없어 사용하지 않았었다.그러다보니 막상 사용할때, 직접 구현을 하여야 하나 고민하였었는데, 찾아보니 너무나도 간단하였다. a = [[5,2,2], [4,2,1], [1,2,3], [1,2,1]]의 배열이 있을때, 첫번째 항목들이 같으면 두번재 항목들로 비교하는 식으로 정렬하고자 하였다. 어떻게 sorting하여야 하나 고민하였으나...역시 python a.sort() 로 간단히 정렬이 되어버렸다.a = [[1,2,1], [1,2,3], [4,2,1], [5,2,2]] sorted(a)로 하면 a의 항목들은 정렬되지 않은 채로 남아있는 채로 sorting된 결과를 보여준다.이것도 의외로 쓸만할듯 싶다.

[Python] TypeError: 'module' object is not callable 조치

기존에 개발한 python 파일을 다른 python 파일에서 불러다 쓸 일이 생겼다. 그랬더니 다음과 같은 에러가 발생하며 동작하지 않았다. TypeError: 'module' object is not callable import 한 모듈을 class처럼 사용하려 해서 발생한 에러였다. import 한 modlue는 class가 아니기에 class처럼 사용하면 안된다. 주로 File name과 class name을 같게 한 경우, 많이 발생하지 싶다. import 할 파일 AAA.py class AAA(object): 어쩌구저쩌구... b.py import AAA class b(object): aaa = AAA()

배열 한번에 초기화하기

배열을 사용전에 초기화할 필요가 간혹 있다.Loop 문을 사용하는 방법도 있을 것이고좀 무식하지만 배열을 하나하나 초기화하는 방법도 있을 것이다.그런데 이 무식한 방법은 배열의 길이가 실행할때마다 달라지게 된다면 사용이 좀 애매할 수 있다. 그래서 찾아보니 Loop보다 훨씬 간단한 방법이 있었다.A = ['0'] * len(A) 찾아본 방법은 A = ['0'] * 10 이었지만, 배열의 크기가 동적으로 바뀌는 경우에는 대응이 안되기에 위와같이 하니 잘 되는 것을 확인할 수 있었다.

python 에서 다른 경로의 module import하기

보통 현재 경로나 python library만 import 하여 사용하는데, 간혹 프로젝트 공통 module을 import 하여야 할 경우가 있다.대부분 현재경로에서 위로올라가야하는데, 이 경우 다음처럼 하면 import할 수 있었다. import syssys.path.insert(0, new_path) 이렇게 하면 new_path가 sys.path의 첫번째로 추가가 된다.추가하는 순서를 잘 설정하면 동일한 이름이더라도 문제없이 사용할 수 있을 것 같다. (이전에 이름을 다르게 해서 헷갈리지 않는게 더 좋겠지만...)

참조사이트

영어사이트Python Standard Library : http://docs.python.org/2/library/index.htmlPython unittest: http://docs.python.org/2/library/unittest.html 한글사이트파이썬마을 : http://python.or.kr 다이빙 파이썬(최종) : http://coreapython.hosting.paran.com/dive/chap00.html 컴퓨터 과학자처럼 생각하는 법(최종) : http://coreapython.hosting.paran.com/thinkCSpy(2nd)/index.htm 귀도의 파이썬 자습서(2.5) : http://coreapython.hosting.paran.com/howto/tut/index.ht..

python에서 암호화하기(복호화가능)

비밀번호를 주로 다룰때 저장해놓고 쓸때가 있는데, 비밀번호다보니 보안이 걱정되는 경우가 있어 다음 함수를 사용하였다.import bz2 enc_file = bz2.compress("test") >>> BZh91AY&SY3....dec_file = bz2.decompress('BZh91AY&SY3....') >>> test 해당 함수를 사용하면, 암호화해놓아도 쉽게 복호화해서 확인이 가능하지만...쓰임이 필요할때가 종종 있어서 작성

단독실행 파일 만들기

파이썬으로 파일을 만들고 "python 파일명"으로 실행하곤 하는데, 가끔 이것도 귀찮을때가 있다파일명만으로 단독으로 실행할때, 다음과 같은 template을 기반으로 작성하곤 하는데, pc를 포맷하거나 할때마다 사라져서 작성해놓는다.#!/usr/bin/pythonimport sysimport time def main(args): print args if __name__=="__main__": main(sys.argv[1:]) 실행할때 parameter 값도 받을 수 있어, 쓰임이 많다. 너무도 간단하지만, 한번 작성하고나면 계속해서 복사해서 쓰다보니 기억을 못해서...