개발지식 아카이브/Python
-
Python segmentation fault 해결방법개발지식 아카이브/Python 2022. 9. 24. 13:51
Python sementation fault는 다양한 상황에서 발생할 수 있다. 1. 코드 상의 문제 (도달할 수 없는 메모리에 액세스 하는 코드를 작성했을 때) 2. 호환되지 않는 패키지 간의 충돌 나의 경우는 2였다. 원래 문제가 없던 코드였는데 특정 라이브러리 (time-decorator)를 install 한 이후부터 갑자기 Segmentation fault 에러가 발생했기 때문에, 코드에서 발생하는 문제는 아니라고 생각되었다. time-decorator에서 참조하는 라이브러리와, 내 프로젝트 안에서 사용하는 특정 라이브러리가 충돌하는 것일 것 같았다. 그 특정 라이브러리가 무엇인지는, 에러메시지를 보고 알 수 있었다. Segmenataion fault 를 던지는 참조 코드를 따라가다 보니, goo..
-
python CONDA 설치해 사용하기개발지식 아카이브/Python 2022. 6. 4. 15:46
Python에서 ANACONDA 사용하기 CONDA 란? 콘다는 언어의 패키지, 의존관계와 환경을 관리하는 툴이다. Python 뿐만 아니라 R, Java 등의 언어도 지원한다. 우리는 왜 콘다가 필요할까? 다음과 같은 상황을 생각해보자. 하나의 로컬 PC에서 개발을 하는데, 어떤 프로젝트는 Python2로 개발하되 어떤 프로젝트는 Python3.8로 개발하고 싶은 니즈가 있을 수 있다. 이럴 때에 CONDA를 사용하면 쉽게 Python 버전을 전환할 수 있다. CONDA의 분류 miniconda Python을 실행하는데 필요한 최소한의 패키지만 포함하는 CONDA이다. 비교적 가볍다는 장점이 있다. anaconda 720 개 이상의 주요 패키지를 한꺼번에 설치해주는 CONDA 이다. miniconda ..
-
[파이썬 Collections API] 파이썬3의 자료구조 컨테이너 모듈개발지식 아카이브/Python 2019. 12. 2. 00:43
개요 파이썬의 collections 모듈은, 파이썬에 내장된 일반 자료형의(dict, list, set, tuple) 컨테이너 타입을 조금 더 발전시킨 형태의 구현체이다. 파이썬 2.7 까지는 네임드튜플, 덱, 카운터, 순서형 딕셔너리, 기본 딕셔너리의 다섯 개의 컨테이너를 구현하고 있었으나 파이썬 3부터는 체인맵, 유저 딕셔너리, 유저 리스트, 유저 스트링 등의 자료구조가 추가되었다. 바로가기 1. namedtuple() 네임드 튜플 2. deque 큐 3. Counter 카운터 4. OrderedDict 순서형 딕셔너리 5. defaultDict 기본형 딕셔너리 6. ChainMap 체인맵 자료형 요약 namedtuple() 다수의 필드 정보를 가지는 데이터를 저장할 때, 클래스의 객체를 생성하여 저..
-
[파이썬] *args, **kwargs를 이용해 메소드 축약 작성하는 법개발지식 아카이브/Python 2019. 9. 24. 14:27
개요 *args와 **kwargs를 사용하면, 비슷한 특성을 가진 많은 인수(Argument)들을 함수로 넘겨줄때 유용하다. 먼저, 넘어오는 인수의 개수를 특정하지 않음으로써 상황에 따라 인수의 개수를 줄일수도, 늘릴수도 있다는 점이 장점이다. 또한, 인수가 너무 많으면 메소드의 가시성이 떨어지기 마련인데 이를 묶어서 배열처리 함으로 코드의 가시성이 좋아진다. 문법 (Syntax) 1.1 *args 파싱 # 메소드 정의 def method(*args): for i in args: //처리 # 메소드 콜 method(arg1, arg2) method(arg1, arg2, arg3, ..., argN) 메소드 정의 단계에서, 같은 특성을 가지는 argument들을 배열으로 받을 수 있도록 '*'을 붙여서 정..
-
[파이썬] 자료구조 Comprehension : 람다형 자료구조 코딩개발지식 아카이브/Python 2019. 9. 22. 19:01
comprehension 란 파이썬에서 iterator 로 매우 간단하게 배열을 만드는 방법이다. 3줄 이상 작성되는 코드를 한 줄로 줄일 수 있다. 리스트를 만드는 법을 소개한 후, 말미에 딕셔너리 작성법도 후술한다. Syntax # list 작성법 새 리스트 = [ expression(item) for item in list if 조건절 ] [예시] 리스트 만들기 1) 조건문 만족하는 element 로 리스트 만들기 new_list = [] list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 기존의 list 리스트에서 짝수만 골라내서 새 리스트에 담고 싶다고 가정해보자. 리스트 컴프리핸션을 사용하지 않으면 아래와 같이 3 줄의 코드로 작성된다. for item in list: if ..
-
[파이썬 주식 분석] 매수 적정 PER 구하기 (당기순이익 증감 예상이용)개발지식 아카이브/Python 2019. 8. 4. 10:36
주식 매수 의사결정 모형 요즘 주식시장에 푹 빠져있다. 자기 전에 침대에 누워서 결산 보고서를 읽으면서 종목 평가하는 게 큰 즐거움인데, (마침 중간 결산 시즌이다.) 고평가 되어있는지, 저평가 되어있는지 판단하기 위해 간단한 코드를 짜 봤다. 어젯밤에 짜서 오늘 아침에 처음 써 봤는데, 한눈에 결과가 정리되니까 투자 판단이 정확하게 된다. 역시 이런 간단 계산은 컴퓨터를 시켜야 한다..ㅎ 물론 코딩 로직과 미래 예측은 전혀 별개의 이야기다. 당기순이익 증가율(여기서는 p)이 예측이 된다면 누구나 벼락부자가 되겠지만... 그걸 모르니까 문제다! 하지만 개중에는 경기의 영향을 덜 받고, 매년 일정 비율만큼 이익이 상승하는 (혹은 유지하는) 업종들이 있다. 그런 종목들은 미래에도 비슷한 추세를 따를 거라고 ..
-
[파이썬/Python] mysql connector 라이브러리로 MySql 연동하기개발지식 아카이브/Python 2019. 7. 24. 14:27
전제 조건 외장 라이브러리의 사전 설치를 요한다. 맥/리눅스 사용자는 콘솔에서 아래의 명령어로 바로 설치하는 것을 권장한다. # MySql 8.0 이상 유저 pip install mysql-connector-python # 하위 버전 pip install mysql.connector Pycharm의 경우 프로그램 안에서 라이브러리 설치도 지원한다. Pycharm - Preference - Project: 프로젝트명 - Project Interpreter 으로 이동, 하단의 + 를 클릭하여 검색, 설치가 가능하다. 코드 전개 import mysql.connector #------------------------------------------------------# mysql_con = None #----..
-
[파이썬/Python] 티켓팅 자동화 매크로 개발해보기개발지식 아카이브/Python 2019. 7. 1. 14:27
처음에 블로그를 개설할 때는, 유익한 IT블로그를 만들겠다는 야심찬 포부가 있었는데, IT 포스트로 유입이 거의 전혀 없다시피 하다보니, 아무래도 잘 하지 않게 됩니다. 물론 유입이 없는 건 제 포스팅 역량 부족 + 개발 역량 부족 때문이지만서도요...ㅎㅎㅎ 무튼 개인적 호기심으로 만들어 보았던 티켓팅 자동화 매크로 코드입니다. 저는 업무외에 혼자서 코딩할때에는 거의 파이썬으로 합니다. 구현 알고리즘 티켓팅 자동화를 구현하기 위해서 3가지 방법을 고려할 수 있습니다. 1. 좌표를 설정하여 자동화 구현 2. 각 엘리멘트를 바로 실행시키는 웹 자동화 형식 3. 서버단에 예매정보 패킷 전송 좌표 설정법은, UI적으로 위치적 변화가 있을 경우 작동하지 않는다는 단점이 있습니다. 웹 자동화 형식은 좌표 변화에는 ..