PYTHON
7 posts
Python Generator

파이썬 Generator의 우아함 함수 안에 local 변수들은 그 해당 함수가 호출이 되고 종료가 되면 그 값들이 다 사라지게 된다. 그러나 우리는 가끔 함수 내용을 거치고도 그 값을 계속 유지하고 싶을 때가 있다. 그래서 함수 밖에 변수를 선언하여 그 값을 유지하기도 한다. 이 방법은 그 함수를 호출하는 쪽에서 변수를 관리해야 한다. 아래 행운권 추첨 예제가 있는데, 0을 뽑으면 꽝이다. 그런데 2번 연속 꽝이면 그 이후에는 무조건 0이 아닌 값을 뽑게 만드는 행운권 추첨이다. 가장 최근에 뽑은 숫자를 관리하기 위해서 변수로 함수 호출 밖에서 관리를 해주고 있다. 조금 더 우아한 방법으로 Generator를 사용해보도록 하자. 이 방법을 쓰게 되면 함수 실행을 잠시 멈추었다가(함수 안 변수들의 값이 그대로 유지) 다시 실행 할 수 있게 된다. 아래 코드를 보자. 가 한 번이라도 함수 안에서 사용되면 generator 함수라고 할 수 있다. generator의 함수를 실행하면 …

February 17, 2022
TIL
PYTHON
Job리스트 스크래핑 - 3

Job리스트 스크래핑 - 3 1. 로딩화면이 필요하다 검색어가 입력이 되면 최대로 검색되는 만큼 스크래핑을 한 다음 화면에 보여주게 되어 있다. 검색결과가 많은 경우 사용자의 입장에서는 멍하니 진행되고 있는 것 조차 모르는 채 기다려야만 했다. 이를 해결하기 위해 여러가지 방법이 떠올랐지만, 나는 우선 로딩화면을 보여주기로 결정했다. (한 번 구현 해보고 싶었다.) 우선 Loading.io에 가서 마음에 드는 무료 로딩 gif를 받았다. 2. 로딩화면 구현 kkamikoon님의 글을 보고 구현했습니다. 1️⃣ 브라우저 화면의 높이와 너비를 구한다. 2️⃣ 전체 화면을 음영처리 할 div 생성한다. 3️⃣ 로딩이미지를 담을 div, img 태그 생성한다. 4️⃣ body에 전체 음영처리 div, 로딩이미지 div를 추가한다. 5️⃣ 위치와 크기 등을 css로 꾸며주고 보여준다. 3. 검색결과 페이지에서 뒤로가면..? 위와 같이 구현하여 로딩이 끝난 후 검색페이지로 넘어가는 것 처럼 보인다. 그런데 사…

January 11, 2022
TIL
PYTHON
WEBSCRAPING
Job리스트 스크래핑 - 2

Job리스트 스크래핑 - 2 1. csv 파일로 저장 csv 모듈을 import 한다 file 열기(파일명, 쓰기모드) 후 csv.writer에 매개변수로 넣어준다. writer로 첫번째 줄에 Title, Company, Location, Link 를 쓴다. (Table header) 헤더의 순서대로 값을 리스트화 하여 한줄 한줄 쓴다. 아래와 같이 csv 파일이 생성 된다. 2. csv 파일 다운로드 이러한 url로 요청이 오면 아래 export함수가 실행된다. (버튼 or a태그를 통해) Query string에서 얻은 값으로 저장되어 있는 job리스트를 불어 온다. (실제 디비는 아니고 스크래핑된 데이터가 검색어가 키값인 딕셔너리로 저장되어 있음) Query string값이 약속된 키값으로 받지 못하거나 디비에 해당 키값이 없을 경우 / (루트) url로 보낸다. 디비에 Query string 값이 있다면 해당 job리스트를 csv파일로 저장한다. 그 후 (Flask me…

January 10, 2022
TIL
PYTHON
WEBSCRAPING
Job리스트 스크래핑 - 1

1. 컨테스트 도전 과일예측 딥러닝 모델(기존 Perceptron 모델을 Transfer Learning(전이학습))을 학습시키는 데 굉장히 시간(약 8시간)이 오래 걸려 수업진도를 못나가던 찰나 팀원 중 한분이 관심있으면 요런 컨테스트 한 번 해 보라고 링크를 주셨다. 해당 사이트에서 로 제공되는 웹스크래핑 강의를 듣고 채용리스트 사이트를 만드는 것이다. 스파르타에서 배운 웹스크래핑을 리마인드 할 겸 틈나는대로 컨테스트에 제출 할 사이트를 만들어 봐야겠다. 2. 작업환경 Replit.com 라는 곳이 있다. IDE가 웹브라우저에서 구동 된다고 생각하면 된다. 파이썬을 사용하려면 파이썬 설치 및 환경변수 설정 등을 해야하는데, 저 곳에선 이미 세팅이 다 되어 있다. 그냥 프로그래밍 언어만 선택하고 프로젝트를 생성하면 된다. 물론 나는 이미 파이썬 개발환경이 다 갖춰져 있지만 강의 실습에서 알려준 사용해보기로 했다. 3. indeed 스크래핑 일부러 그런건지는 모르겠지만 해당 강…

January 09, 2022
TIL
PYTHON
WEBSCRAPING
새로운 연산자(Feat. 바다코끼리🦭) - 파이썬(Python), 알고리즘

Part 1. 새로운 연산자(Feat. 바다코끼리🦭) 문제 보고 입력의 끝을 어떻게 알 수 있지? 하고 멘붕. 문제 클릭 전 라는 힌트를 봄 stands for . This is the point in the program where the user cannot read the data anymore. 참조: https://www.delftstack.com/howto/python/python-end-of-file/ 는 더 이상 데이터를 읽은 수 없는 파일의 끝이라는 의미이다. 사용자 입력을 문제에 맞게 출력 해주다가 만나면 종료시켜주면 되는 문제다. 풀이1 풀이2 처음에 풀 때 아무 생각 없이 위와 같이 풀어 제출했는데, EOFError라는 결과를 받게 되었다. 거기서 try ~ except 구문으로 해결해보면 어떨까 에서 착안함. 풀이3 - Walrus Operator 사용 (Python 3.8 이상) 위에 관련 글 보다가 알게 된 연산자를 이용해보았다. Python 3.8…

December 15, 2021
TIL
ALGORITHM
PYTHON
Python 한 줄 코딩 하기 외 - 파이썬(Python), 알고리즘

Part 1. Python 한 줄 코딩 하기 한줄 if 문 한 줄 for문 filter - list의 모든 원소 중 특별한 것만 뽑기 *args 매개변수 매개변수명 변경가능, 여러 매개 변수 list에 담기 **kwargs 매개변수 매개변수명 변경가능, 여러 매개 변수 dict에 담기 Part 2. 이렇게 접근 하는 거였어? 🙄 (Feat. 알고리즘 문제) 알고리즘 강의를 듣다 아래와 같은 문제를 만났다. 문제를 처음 보았는 때 내 머릿속 사고 모든 수를 곱셈으로 연산하면 가장 큰 수 나오는 거 아닌가? 0을 보며 ‘그렇게는 쉽게 안 되겠네’ 라고 깨달음 그렇다면 모든 경우의 수를 비교 하여 구해야 되나? ($2^6$번..?) 저렇게 많은 연산을 하려면 어떻게..? (for문 덕지덕지? 재귀함수?) 모르겠다. 정답을 보고 난 후 모든 수를 곱할 때가 가장 큰 수가 나오는 것은 맞다. 그런데, 0과 1을 곱할 때 문제가 생긴다. 위와 같은 경우는 더 해주고 나머지 수에 대해서 곱해주…

December 14, 2021
TIL
ALGORITHM
PYTHON
map - 파이썬(Python)

다짐 스파르타 코딩클럽 AI 웹개발 교육 시작과 함께 오늘부터 TIL을 실천 하겠습니다. [Python] map 띄어쓰기로 구분하여 2개의 입력 값을 받는 알고리즘 문제를 보았다. 아래와 같은 방법으로 입력값을 받을 수 있음을 알았다. 그런데 저기서 은 무엇이더냐? map(함수, 반복적인) 리스트, 튜플과 같은 반복자의 모든 값들을 map의 첫번째 인자 함수에 적용 후 반복자를 리턴 해준다. map(function, iterable, …) Return an iterator that applies function to every item of iterable, yielding the results. [참조] https://docs.python.org/3/library/functions.html#map 예를 들어 이 경우, 리스트의 담긴 각 문자열 값이 안에서 int 내장함수를 거치면서 정수형을 담은 리스트가 되었다. iterable한 자료형의 각 값을 특정 함수에 거쳐 새로운 ite…

December 13, 2021
TIL
PYTHON