Programming/python(68)
-
[Python] ipython 사용하기
1. 탭 자동 완성 인터프리터에서 알파벳을 입력한 후 키를 누르면 알파벳과 일치하는 객체나 함수의 리스트들이 나열된다.당연히 어떤 객체의 매서드나 속성 뒤의 마침표를 입력 한 후 키도 동작한다. 키는 파일 경로를 보여줄 수 도 있는데, 파일 경로를 입력한 후 키를 누르면 입력한 문자열에 해당하는파일 경로를 보여준다. 2. 객체 정보 보기변수 이름 뒤에 "?"를 붙이면 그 객체에 대한 일반 정보를 볼 수 있다. 만약에 객체가 함수라면 정의되어 있는 문서를 출력해 주며, "??"를 사용하면 함수의 소스까지 보여줄 수 있다. 3. %run외부 스크립트 파일을 실행할 수 있다. In[4]: %run ipython_test_script.py 스크립트 파일에 정의된 모든 변수(import, 함수, 전역변수) 들은 ..
2015.03.09 -
[Python] 함수형 프로그래밍
MAP map(함수, 리스트) MAP은 함수와 리스트를 인자로 받은 후, 리스트로부터 원소를 하나씩 꺼내서 함수에 적용한 후 그 결과를 새로운 리스트로리턴한다. def f(x): return x*x x = [1, 2, 3, 4, 5]y = map(f, x) 두 개 이상의 값을 map 함수에 집어넣을 때에는 아래와 같이 구현하면 된다. x = [1, 2, 3, 4, 5, 6]y = [6, 7, 8, 9, 10, 11] z = map(lambda a, b:a+b, x, y) FILTER filter(함수, 리스트) 리스트에 들어있는 원소들을 함수에 적용시켜서 그 결과가 참인 값들을 새로운 리스트로 리턴한다. filter(lambda x : x%2, [1,2,3,4,5,6]) REDUCE reduce(함수, ..
2015.03.04 -
[Python] 내장 순차 자료형 함수
enumerate 파이썬에서 foreach를 사용할 경우 각 리스트의 값이 순차적으로 루프된다.만약에 foreach 문에 index를 추가로 확인하고 싶다면 count 변수를 추가로 선언하여 1씩 증가해야 하는 불편함이 있다. collection = [10, 9, 8, 7, 6, 5]index = 0for i in collection: index += 1 enumerate는 해당 collection의 값 뿐만 아니라 index도 함께 리턴한다. for index, value in enumerate(collection): # 처리 enumerate를 이용한 아래의 사용도 가능해진다. collection = ['apple', 'banana', 'pineapple']fruit_dict = dict((value..
2015.03.03 -
[Python] 튜플은 값이 바뀌지 않는다?
python에서 가장 많이 안쓰는 자료형이 튜플인 것 같다.튜플을 쓰는 용도는 거의 immutable한 데이터를 만들기 위할 때나 리턴 값을 여러개 받고 싶을 때 정도?(하지만 리턴도 왠만하면 dictionary "key:value" 형태로 좀더 명확하게 리턴을 표현해줄 때가 더 많음) 튜플의 가장 큰 특징이 한번 설정한 값은 바꿀수 없다 정도인데.. 튜플로 설정한 값도 때로는 바꿀 수가 있다..(읭??? 이게 먼말???) 바로 튜플안에 list가 존재하고 list 내의 아이템 값을 바꾸고자 하면 값이 바뀐다.왜냐하면 튜플이 가지고 있는 값은 list의 참조 값이지 list의 모든 값을 저장하고 있지는 않기 때문이다. 예를 들어 아래와 같은 예제가 가능하다. test_tuple = ('test', [1,..
2015.03.02 -
[Python] 덕타이핑?
파이썬은 duck typing을 지원하는 언어이다. Duck Typing이 무엇이냐 하면..만약에 어떤 새가 오리처럼 걷고 꽥꽥거리는 소리를 낸다면, 그 새를 오리라고 간주한다는 것이다. A라는 클래스와 B라는 클래스가 있고, 이것을 파라미터로 받는 함수가 존재한다고 가정하자.아래와 같은 형태가 될 것이다. public void TestFunction(Class param) 위 형태를 만족하려면 A클래스와 B클래스는 같은 부모로부터 상속을 받은 클래스이어야 한다.아무리 A클래스의 함수와 B클래스의 함수가 동일하고 해당하는 값이 동일하다고 하더라도, C++이나 JAVA에서는위 두 개의 클래스를 동일한 Type으로 간주하지 않는다.(그렇기 때문에 추상클래스라는게 있는거고.. 인터페이스를 고려해서 설계해야 하..
2015.03.01 -
[Python] 배포를 쉽게 도와주는 freeze
기존에 환경에서 다른 환경으로 서버를 이전할때, 기존에 깔려 있는 패키지나 모듈등을 일일이 찾아서 다시 설치하기에는 너무나 번거롭다.python에서는 freeze란 기능이 있어서 해당 기능을 사용하면 현재 서버에 깔려 있는 python 모듈들에 대한 목록을 뽑아내 준다.이전할 서버에서는 뽑혀진 목록들을 가지고 install만 실행하면 되니 무척이나 편리한 기능이라 할 수 있다. 실제 사용방법을 보자면, $> pip freeze > pip-requirements.txt 라고 치면 freeze를 통해 현재 서버에 설치되어 있는 python 모듈의 목록이 pip-requirements.txt에 저장이 된다. pip-requirements.txt BeautifulSoup==3.2.1Flask=0.10.1Jinj..
2015.02.28