프로그래밍 언어/Python 10

Python 코딩테스트 준비하기

파이썬 코딩테스트도 준비해야 해서 vscode로 코딩테스트에 최적화된 환경을 만들어 볼려고 한다. 앞에서 작성한 JS 코딩테스트 준비 과정이랑 많이 유사하다. https://tre2man.tistory.com/314 JS 코딩테스트 준비하기 최근에 코딩테스트를 보면서 알고리즘이 말도 안되게 부족하다는 것을 많이 느꼈다. 그래서 외부 에디터를 사용할 수 있는 환경이라는 상황에서 코딩 결과물을 빠르게 확인할 수 있는 환경을 tre2man.tistory.com Python 코딩테스트 환경 꾸미기 코딩테스트는 역시 빠르게 결과물을 내는 것이다. 여기서도 nodemon을 사용할 것이다. 아니 잠깐, nodemon은 nodejs에서 사용하는 프로그램 아닌가요? 할 수가 있는데, npm으로 관리되는 프로그램이라 파이..

urllib SSL: CERTIFICATE_VERIFY_FAILED 에러 해결하기

오랜만에 urllib를 이용해서 웹 크롤러를 돌려볼 일이 생겼는데, 갑자기 제목과 같은 에러메시지가 뜨면서 크롤링이 불가능해졌다. 원인을 찾아보니, SSL 인증서 관련한 오류였다. SSL 인증서를 적용하지 않은 사이트 (http:// 로 시작되는 사이트) 에 대해서 오류가 나는 듯 했다. 조금만 찾아보니 간단하게 해결할 수 있었다. 1 2 3 4 5 6 import urllib.request import ssl context = ssl._create_unverified_context() urllib.request.urlopen("크롤링 주소", context=context) Colored by Color Scripter cs SSL 인증서의 역할이 갈수록 중요해지는 것 같다. 참고링크 : https://..

파이썬 문자열 관련 함수 정리하기

문자열 처리에 대한 알고리즘은 양이 너무 방대하다. 문자열을 파싱하는 것은 각 상황마다 알맞은 알고리즘을 생각해야 하기 때문이다. 나도 문자열 알고리즘에 매우 취약한 편이라서 아예 이번에 문자열 처리 메소드 및 관련 내용에 관한 내용을 정리하는 것이 좋겠다고 생각했다. C는 속도는 빠르지만 문자열 처리가 복잡하므로 되도록 파이썬으로 문자열 처리를 해보기로 했다. C로 처리할 일이 곧 많이 생기겠지만 ㅠㅜ (C는 문자열을 포인터 연산으로 처리하는것이 가장 좋다.) 1. 문자열 계산하기 len(str) : 문자열 길이를 반환 max(str), min(str) : 문자열 내 문자의 최소/최대 값 반환 (숫자 오름차순 > 알파벳 오름차순) str.count(finds) : str 문자열 내 finds랑 일치하는..

파이썬에서 시리얼 통신 (UART) 하기

https://tre2man.tistory.com/203 아두이노를 위한 Serial(UART) 통신 알아보기 UART 통신이란? 시리얼 통신은 기기간 통신을 위해 정해놓은 규칙 중의 하나이다. 시리얼 통신은 오랜 기간 사용되어 왔으며, 마이크로프로세서를 다룬다면 알아야 할 지식 중의 하나이다. 시리�� tre2man.tistory.com 위 포스팅에서 시리얼 통신에 대해서 설명을 했었다. 그렇다면, 파이썬에서 시리얼 통신(UART)을 할 수 있는 법은 없을까? 당연히 있다. 파이썬에서 시리얼 통신을 통해 다양한 곳에 사용할 수 있다. 나의 경우에는 Qt와 결합하여 시리얼 통신의 결과를 라즈베리파이로 볼 수 있게 하는 프로젝트를 진행한 적이 있다. 파이썬 시리얼 통신의 예로 간단히 아두이노 우노와 통신해..

파이썬과 Firebase 연동하기

Firebase는 구글에서 출시한 데이터베이스 프로그램이다. 이것의 특징은 간단한 사용법, 구글의 생태계 안에서(일부 외부 프로그램 포함) 상당히 자유로운 사용범위, 데이터 분석 및 머신러닝 등 다양한 부가 기능 제공이 있다. 구글에서는 파이썬에서도 Firebase를 이용하여 통신 및 데이터 수정을 할 수 있도록 해 두었다. 파이썬을 이용하여 Firebase랑 연동하는 법을 알아보자. 파이썬과 Firebase 연동을 위한 사전 작업 파이썬에서는 fireabse_admin 이라는 패키지를 먼저 설치해야 한다. 각자 개발 환경에 따라서 설치를 진행해 주자. - 아나콘다 conda activate 가상환경 pip install firebase_admin pip3 install firebase_admin - 리..

파이썬으로 일정한 시간마다 동작 수행하기

파이썬을 사용하다 보면 특정 시간마다 수행하게 해야하는 동작들이 있다. 이러한 동작을 실행하기 위해서 파이썬에서는 이것을 위해 라이브러리를 제공한다. 여기서는 2가지 방법을 말할 것이다. 하나는 쓰레딩을 쓰는 것이고, 나머지 하나는 스케줄을 사용하는 것이다. 쓰레드 패키지 이름은 threading 이다. pip 또는 아나콘다를 이용하여 threading 을 설치해 두어야 한다. 예제를 살펴보자. 1 2 3 4 5 6 7 8 9 10 11 12 import time import threading #함수 정의, 함수 내부에 threading 정의 def printhello(): print("Hello!") #threading을 정의한다. 5초마다 반복 수행함. threading.Timer(5, printhe..

파이썬 개발환경 설정하기

파이썬을 개발할 경우에는 자신이 무엇을 하느냐에 따라 적합한 개발환경이 달라진다. 나의 경우에는 Jetbrain 사의 파이참+아나콘다 조합을 이용 중이다. 파이참은 떠오르는 파이썬 개발 환경이고 아나콘다는 데이터 사이언스에 필요한 패키지를 모아둔 프로그램이다. 정말로 특별한 분야에 대한 코딩이 아닐 경우에는 대부분의 패키지는 아나콘다에서 받을 수 있다. 기본적인 원리를 알아보자면, 아나콘다에는 패키지가 담긴 환경을 여러 개 만들 수 있다. 이 환경을 파이참에서 끌어와서 사용할 수 있게 한다. 간단한 원리를 알아보았으니, 개발 환경을 꾸며 보자. 아나콘다 설정 아나콘다 설치부터 하자. 개인용 무료 최신 아나콘다는 아래 사이트에서 설치할 수 있다. https://www.anaconda.com/products..

파이썬 간단한 문자열 처리 및 f-string 포맷팅

파이썬은 여러가지 자료형을 지원한다. 숫자, 리스트, 튜플 딕셔너리, 집합 등등 다양한 자료형을 기본적으로 지원한다. 다른 언어에 비해서 다루는 법도 간단하다고 생각이 든다. 이번 포스팅에서는 문자열 자료형을 다루는 법에 대해서 포스팅 해 볼 것이다. 문자열 선언 문자열은 한 개의 변수 안에 여러개의 글자를 넣는 것이다. 위에서는 apple 이라는 문자열을 a라는 변수에 대입한 것이다. 문자열은 4가지 방식으로 선언이 가능하다. 위에서 선언한 형태는 모두 똑같다. 문자열을 선언하는 것은 모두 같은데, 방법은 모두 다르다. 그 이유는 무엇일까? 문자열의 표현 차이다. 예를 들어 문자열 안에 큰따옴표나 작은따옴표를 넣고 싶을 경우가 있을 것이다. 그러할 때 이러한 기능을 사용한다. 위의 형태로 선언하면, a..

파이썬 버전 변경하는 방법

요즘 영상처리를 간간히 공부하는 중이다. 영상처리 관련 소스를 찾던 중 YOLO v4 라는 영상처리 프로그램을 발견했다. https://github.com/AlexeyAB/darknet AlexeyAB/darknet YOLOv4 (v3/v2) - Windows and Linux version of Darknet Neural Networks for object detection (Tensor Cores are used) - AlexeyAB/darknet github.com 이 프로그램은 사진 또는 영상에서 특정 물체를 인식하고, 그것이 정답일 확률을 알려주는 프로그램이다. 기본적으로 신경망 학습과 영상처리에 관한 라이브러리가 필요하다. 특정 물체를 판별하기 위해서는 데이터 학습을 시킨 후에, 그것을 기반으..

파이썬 ModuleNotFoundError 해결하기

파이썬을 쓰다 보니 외부 모듈을 불러올 때가 많이 필요하다. 데스크톱으로 할 때는 아나콘다에서 바로 설치만 하면 되는데, 실제 리눅스 PC에서 사용할 때는 실행이 되지 않는다. 나의 경우에는 이러한 식으로 경고 메시지가 떴다. pi@raspberrypi:~ $ python3 Python 3.7.3 (default, Apr 3 2019, 05:39:12) [GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import arrow Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module name..