handleChangeInput 함수에서 handleReset 함수를 실행하는 것은 이해가 되는데요. 왜 return 구문을 쓰신건지 잘 모르겠습니다 ^^;; handleChangeInput 함수 자체도 별도의 return을 해주는 것이 없는것 같아서요. handleChangeInput(e) { const searchKeyword = e.target.value; if (searchKeyword.length <= 0) { return this.handleReset(); // 이 부분 입니다! } this.setState({ searchKeyword }); }
안녕하세요 선생님, 질문이 있습니다. !pip install mmcv-full 이후에 런타임 다시 시작을 해야 import mmcv가 정상 작동하는데, 코랩 런타임 다시 시작하는 것이 어떤 원리인가요? 런타임 다시 시작을 안하면 import mmcv가 정상 작동하지 않는 이유가 궁금합니다.
선생님, 강의 잘 듣고 있습니다. 강의를 듣다가 궁금증이 생기는데 9/20 부터 15/20 즈음까지의 강의는 모두 결국 seaborn 라이브러리 안에는 여러 개의 xxplot이 있다는걸 소개하는거고 곧 활용할 수 있는 api에는 이러이러한 것이 있다 고 설명하는 셈이잖아요? 헌데 이런걸 전부 외우는 현업 개발자는 없고 그분들도 필요나 설계에 따라 맞게 쓰는 정도로 활용하는 걸루 알고 있는데 그래도 강의를 들으면서 최소한 숙지해야 하는 정도 라는게 있다면 어느 정도가 적절할는지 궁금합니다. 참고로 저는 원래 자바랑 c++ 위주로 쓰는 주니어이고 파이썬으로는 알고리즘까지는 낯설어서 잘 쓰진 않지만 자료구조 구현은 할 줄 아는 정도입니다. 그리고 최근에 머신러닝 배우면서 이 강의는 캐주얼한 용도로 듣고 있습니다. 감사합니다!
< div > < a href = "www.naver.com" > < Icon as = { IoLogoSnapchat } /> Chatbot </ a > </ div > 위 코드는 chatbot 글 혹은 icon을 클릭하면 기존 페이지에서 네이버 화면을 여는 코드 입니다. 제가 구현 하고 싶은 것은 기존 페이지 위에 작게 네이버 화면을 여는 것인데 어떻게 해야 할까요?
안녕하세요. 선생님 강의 잘 듣고 있습니다. 강의를 들으면서 책을 보고 웹 크롤링으로 데이터를 다운 받아 dataframe으로 전환 최종 엑셀로 저장하는 코드를 공부 하고 있습니다. 그런데 크롤링은 되는데 최종 엑셀 저장 파일을 보면 맨 처음 페이지만 저장 되는데요 아래 코드에서 잘못된게 있을까요? 그리고 break문을 적으면 SyntaxError : 'break' outside loop 에러가 나와 주석처리 했습니다. 제가 워낙 초보라 답변을 주실 수 있는지요? 감사합니다. # from selenium import webdriver # browser = webdriver.Chrome("/Users/maru/Downloads/chromedriver") # browser.get("https://seibro.or.kr/websquare/control.jsp?w2xPath=/IPORTAL/user/company/BIP_CNTS01042V.xml&menuNo=286#") search_btn = browser.find_element_by_id("image1") search_btn.click() html = browser.page_source from bs4 import BeautifulSoup from html_table_parser import parser_functions as parser import pandas as pd soup = BeautifulSoup(html, "html.parser") table = soup.find("table", attrs ={"id" : "grid1_body_table"}) p = parser.make2d(table) df = pd.DataFrame(p[2:], columns=p[1]) df.head() import time import random from tqdm import tqdm prev_no = 0 prev_table = None for i in tqdm(range(0,200)): try: next_btn = browser.find_element_by_id("cntsPaging01_next_btn") next_btn.click() except: time.sleep(2) try: next_btn = browser.find_element_by_id("cntsPaging01_next_btn") next_btn.click() except: time.sleep(2) next_btn = browser.find_element_by_id("cntsPaging01_next_btn") next_btn.click() def get_html(browser, cnt): if cnt >= 4: return -1, -1 html = browser.page_source soup = BeautifulSoup(html, "html.parser") cur_no = soup.find("a", sttrs = {"class" : "w2pageList_control_label w2pageList_label_selected"}) cur_no = cur_no.text table = soup.find("table", attrs={"id" : "grid1_body_table"}) if cur_no != prev_no and prev_table != table: return cur_no, table else: time.sleep(1) get_html(browser, cnt+1) cur_no, table = get_html(browser, 1) if cur_no == -1: print("\n종료. 테이블 정보가 바꾸지 않았습니다.") break p = parser.make2d(table) temp = pd.DataFrame(p[2:], columns=p[1]) df = pd.concat([df, temp], 0) prev_no = cur_no prev_table = html if cur_no == "95": print("\n 최종 페이지 도달") # break time.sleep(random.randrange(3, 5)) df.to_excel("stock_div.xlsx")
https://developer.mozilla.org/ko/docs/Web/API/Event/preventDefault - 위의 링크에서 e.preventDefault() 함수가, 이벤트가 취소 가능한 경우 이벤트의 전파를 막지 않고 이벤트를 취소한다고 되어 있는데, 설명중에서 SPA에서 e.preventDefault() 사용해야한다고 하셨는데 이유가 궁금합니다.
현재 시점으로 npm i @types/socket.io-client하면 3.0.0 버전으로 설치가되어 2버전과 맞지 않아 에러가 나옵니다. 저 같은 경우는 제로초님의 깃헙에 올라와있는 json을 보고 1.4.35 버전으로 명시하여 설치하여 문제를 해결하였습니다. 혹시 문제 있으신 분 확인해보세요. npm i -D @types/socket.io-client@1.4.35
저의 프로젝트 화면 입니다. 여기서 김이라고 검색을 하고나서 김만두를 클릭을 하면 김만두에 대한 정보가 나오는게 아니라 관리자에 대한 정보가 나옵니다. 필터가 되면 데이터를 초기화 시키고 필터된 것만 데이터를 배열에 넣어서 다시 출력 하는 건가요? 일단 제가 테스트 했을 땐 키 값이 4에서 검색을 했을 때 0이 나온걸 보면 맞는거 같긴한데... 아!! 여기서 i가만 초기화가 되는구나... 이 값을 제가 바꾼다 따로 key라는 값을 만들어서 하면!! 되겠다!!! 감사합니다 이해 했습니다.
고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
파이썬 공식 문서 --버전 3.8부터 폐지: aws 에 있는 어웨이터블이 코루틴이면, 자동으로 태스크로 예약됩니다. 코루틴 객체를 wait() 로 직접 전달하는 것은 혼란스러운 동작 으로 연결되므로 폐지되었습니다. -- async def process_async(): start = time.time() task1 = asyncio.create_task( exe_calculate_async('One', 3)) task2 = asyncio.create_task( exe_calculate_async('Two', 2)) task3 = asyncio.create_task( exe_calculate_async('Three', 1)) await task1 await task2 await task3 end = time.time() print(f'>>> Total seconds: {end - start}') 문제 없이 실행 되었습니다.
안녕하세요 강사님. 제가 윈도우 유저라서, 강사님께서 알려주신대로 Malgun Gothic 을 사용해서 원하는 결과값을 얻었습니다. 여기서 추가되는 질문이, 해당 폰트 말고 다른 폰트로 입력하려 하는데 이 입력값은 어떻게 알 수 있을까요? 예컨대 맑은 고딕이 한글로 "맑은 고딕"이 아닌, "Malgun Gothic" 이라는 것을 어떻게 알 수 있는 것일까요? C:/Windows/Fonts 에서 폰트 파일들을 확인해도 파일명은 한글로 나와있어서, 구체적으로 어떻게 입력하면 좋을지 알고 싶습니다!
안녕하세요 강사님. nbextensions 설치 후 화면을 보았는데, 강의 화면과는 달리 선택할 수 있는 항목이 별로 없더라고요. 1강에서 강사님께서 보여주신 목차 기능 또한 보이지 않는 상황입니다. 다른 분이 질문한 글을 보면서 체크 표시 해제도 해보고, refresh도 해보았는데 그 상황 그대로입니다. pip과 conda를 이용해서 둘 다 재설치를 해봤는데도 마찬기지인 상황입니다. 혹시 해결책을 알 수 있을까요..?