Python
-
날씨예보 API 접근법 및 파이썬 활용 코드Python 2022. 8. 16. 01:51
기상청에서는 공공 데이터 포털(https://www.data.go.kr/)을 통해서 많은 유용한 정보들을 제공하고 있습니다. 여기서 많은 데이터들을 openAPI로써 받아올 수 있는데요. 이번 포스팅에서 이 날씨예보 API를 1. 파이썬으로 얻어오고, 2. 간단한 응용 코드도 한 번 만들어보겠습니다. (파이썬 코드로 바로 보고싶으신 분은 인증키 부분만 확인하신 후 바로 4를 보시면 됩니다.) 1. 공공데이터포탈에서 초단기예보 접속 주의) 파일데이터와 openAPI는 다릅니다. CSV로 제공되는 파일 데이터가 아닌 XML / JSON으로 제공되는 openAPI를 선택해주세요. 필요한 것은 3가지입니다. 1. data.go.kr 포탈에 로그인합니다. 2. 기상청 단기예보 조회 서비스 API에 들어가서 활용신..
-
[python] zip, enumerate: 영상으로 설명Python 2022. 8. 3. 22:49
0. 들어가며 zip(), enumerate() 파이썬에서 종종 등장하는 문법입니다. 프로그래밍이 익숙하지 않은 분들도 그렇고, 다른 언어를 써보신 분들도 파이썬을 처음 쓰는 사람들한테는 조금 어렵게 다가올 수 있습니다. C같은 low level문법을 쓰던 분들은 sizeof나 i를 이용한 indexing이 익숙한데 파이썬에서는 이런 것들을 쉽게 해준답시고 새로운 문법을 외우게 하고는 쉬운 문법이라고 포장하는게 아주 한대 쥐어박고 싶습니다 :) 1. zip() zip 함수는 여러 리스트(반복가능 객체)를 받아서 그 안의 아이템을 하나씩 꺼내줍니다. 사용 예) A = [1, 2, 3 ] B = ["q", "w", "e"] C = [10, 11, 12] for a, b, c in zip(A, B, C): p..
-
코딩 테스트 - 재귀함수의 함정(+영상 설명)Python 2022. 8. 3. 22:23
0. 들어가며 재귀함수의 개념이 익숙한 분들은 코딩테스트에서 잘 사용하시는 분들이 많을 겁니다. 1. 코드가 직관적이어보이는 장점도 있고 2. 내가 생각한 수식/알고리즘을 곧잘 표현하기 아주 좋은 방식이기 때문입니다. 하지만 코테 연습 사이트(programmers에서나 leetcode같은 곳)에서는 재귀함수를 썼을 때 모든 test case를 만족하지 못하는 경우가 있습니다. 왜 재귀함수는 코테에 적합하지 않을까요? 1. 문제는 stack memory 재귀함수의 문제를 아시려면 먼저 프로그램이 실행될 때의 메모리 공간이 heap 메모리 stack 메모리 둘로 나뉘어져 있다는 것을 아셔야 합니다. heap tree의 heap이나, queue/stack의 stack과는 전혀 관련없는 내용입니다. heap 메..
-
[python] 파일 목록 얻는 방법 - 영상 설명 (glob / os.walk)Python 2022. 4. 9. 17:44
들어가며: 데이터 사이언티스트나, 로그 관리할 때 등등 관리하고 있는 폴더 안의 파일 목록을 얻어야할 경우가 많습니다. 파일 이름의 규칙을 알고 있다면 그 규칙에 따라서 문자열 리스트를 만들면 됩니다만.. 파일 이름 규칙은 모르는 상태에서 그냥 폴더 안의 모든 파일 목록을 가져오고 싶을 수도 있습니다. 폴더 안의 파일 목록을 얻어오려면 어떻게 해야 할까요? 영상 설명은 포스트 맨 아래를 확인해주세요. 코드 설명: 코드는 Codes 폴더에 있고, files_ 폴더 안에 있는 파일 목록을 얻고 싶은 상황입니다. 아래 code는 files_ 폴더 안의 모든 파일명을 가져오는 코드입니다. from glob import glob file_list = glob("files_/*") print(file_list) [..
-
[python] **kwargs가 뭐지? 영상으로 설명Python 2022. 3. 27. 11:57
(한숨이 절로 나는 **) 들어가며: 다른 사람들의 github를 보다가 **kwargs가 함수에 붙어있으면 (더블 포인터처럼 생겨서는) 이게 무슨 뜻인가 싶습니다. C 프로그래밍을 하시면서 * 달려있으면 현기증 났었고 ** 달려있으면 코딩하는 걸 포기해버린 분들도 있으실 겁니다. 파이썬에서는 다행히 주소값을 직접 건드릴 만큼 low-level로 프로그래밍을 하는 경우는 거의 없고, C보다는 **의 사용이 더 직관적입니다. 다른 사람들의 github 코드들 보면 함수에 간간히 등장을 하는데, 이것을 어떻게 사용할까요? 그리고, 왜 헷갈렸던 걸까요? (영상 설명은 본 포스트 마지막을 참고해주세요) **kwargs? : 일단 kwargs는 keyword arguments의 줄임말입니다. 프로그래밍에서 arg..
-
엑셀 파일들 내맘대로 병합하는 법(영상)[엑셀에 엑셀달기]Python 2022. 3. 27. 10:47
들어가며: 업무 수행을 하시다 보면 raw 데이터들이 엑셀 확장자(.xlsx)로 주어지는 경우가 많습니다. 여러 엑셀 파일을 취합하는 방법들이 있지만(시트 병합, 인터넷에서 다운받은 프로그램, ...) 시트 병합은 한 번에 3개 이상의 병합이 불가능하며 시트로 합쳐지는 단점이 있고 인터넷에서 다운받은 프로그램은 내 데이터의 상황에 맞춤이 아닌 것이 불편합니다. 내 데이터에 맞춤으로 직접 병합하는 코드를 짤 수 있다면 작업 속도가 크게 상승할 것입니다. 파이썬으로는 쉽게, 직접 하실 수 있습니다. import openpyxl data = [] for i in range(1, 6+1): filename = "2021/20210{}.xlsx".format(i) b = openpyxl.load_workbook(..
-
[이 문법 뭐임;] @staticmethod 엄밀하지 않고 쉬운 설명Python 2021. 11. 17. 18:15
github로 다른 사람들 코드 보다보면 class에 @staticmethod로 감싼 것을 종종 확인할 수 있죠? ' 어차피 그래봤자 class 안에 있는 메소드니까, 비슷한 역할의 적당한 함수같긴 한데... ' 라는 생각이 들긴 하지만 혹시 내가 놓치는게 있진 않을까 해서 꽤나 찝찝합니다. python official page(https://docs.python.org/3/library/functions.html#staticmethod)에서 확인해보면, @staticmethod는 class의 method를 static하게 만들어준다고 합니다. 아주 당연한 소리 하면서 열받게 하네요. 쉽게 말씀드리면, @staticmethod로 감싼 method는 그냥 함수입니다. 함수 중에서도 "그냥" 함수입니다. 그..