묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 무료 강의 (활용편2) - GUI 프로그래밍 (4시간)
기본기 11_messagebox 질문입니다
def yesno(): msgbox.askyesno("예 / 아니요","해당 좌석은 역방향입니다. 예매하시겠습니까?") def yesnocancel(): response = msgbox.askyesnocancel(title = None, message = "예매 내역이 저장되지 않았습니다. \n저장하시겠습니까?") yesnocancel 함수 부분에서는 askyesnocancel 메소드를 사용할 때 title이 없고 message를 따로 넣고 yesno 함수 부분에서는 askyesno 메소드를 사용할 때 다르게 짜셨잖아요 이게 askyesno와 askyesnocancel 을 사용할 때의 차이인가요 아니면 둘이 똑같이 사용할 수 있는 방법인가요? 그리고 왜 타이틀을 지정해주는지 궁금합니다!
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
해커랭크 Top Earners 관련 질문 드립니다
안녕하세요:) 해커랭크 Top Earners 관련 질문 드립니다! -문제: 해커랭크 Top Earners -질문: 아래쿼리에서 왜 에러가 나는지, MAX와 관련이 있는건지 궁금합니다. -오답: SELECT employee_id, name, MAX(months * salary) AS total_earningsFROM employee 정답은 강의를 통해 알고 있는데, 위 쿼리에서 어떤 부분이 문제인지 궁금합니다ㅎㅎ 감사합니다!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
질문 두가지 있습니다!
안녕하세요 강의 잘 듣고 있습니다! 1. 입력받을때, n=int(input()) meeting=[] for _ in range(n): s,e=map(int,input().split()) meeting.append((s,e)) 의 방식을 사용하신 이유가 있을까요...? 밑에 내용처럼 하면, 변수도 줄어들어 더 빠르게 처리할 수 있을것 같은데, 혹시 윗 내용처럼 변수를 입력하고 그 변수를 다시 배열에 집어넣으신 이유가 있는지 궁금합니다. n=int(input()) room=[] for _ in range(n): room.append(tuple(map(int,input().split()))) 2. 리스트가 아닌 튜플 구조를 사용하신 이유가 있을까요? 계속 리스트만 사용하다가 튜플을 사용하려니 뭔가 좀 어색해서 여쭤봅니다!
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
chardet 이 import가 안되는데..
chardet 을 import 할 수 없다고 나옵니다.. pip 으로 설치도 하였고 설치경로도 확인해봤으며 uninstall 후 install로 새로 깔아도 import가 안되는데 어떤 문제일까요..ㅠ
-
미해결WEB2 - PHP
form과 post에서 질문이 생겼습니다.
get방식까지 따라 했는데, 계속 submit 을 누르고나면 php주소로 바뀌는게 아니라 파일이 다운로드 됩니다....form.php 파일이 자동으로 다운로드 되요... 제가 이것 정답찾으려고 인터넷 많이 검색해 봤는데... 답을 찾지 못해서... 혹시 왜 그런지 아시는지요ㅠㅠ
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
lt설정에 관한 질문
안녕하세요? 강의 잘 보고 있습니다. 다름이아니라, lt와 rt를 설정할때, 각각 디스크 용량의 최대/최소로 알고있는데, 선생님께서는 lt를 1로 설정하였는데 그게 아니라 음악들의 최소값인 min(music)이 들어가야 맞지 않나요..? 아니라면 무엇을 제가 놓쳤는지 설명해주시면 감사하겠습니다..
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
dev c++ 작동오류
dev c++로 코딩하는데 while(1) 이나 sizeof(..) 같은 문법이나 함수가 제대로 작동하지 않습니다. 같은 코드를 visual studio에서 돌리면 작동을 합니다. 컴파일러는 tmd-gcc 최신버전 사용하고 있습니다.이유가 무엇인지 궁금합니다. 또한 dev c++ 대신 visual studio를 사용해도 되는지요? (visual을 사용하면 체점받는 것은 어렵다는 것은 알고있습니다)
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
강의 잘 듣고 있습니다. 프로젝트 진행중 답답한 상황이 생겨 질문드립니다.
강의와 관련없는 질문이라 조심스럽게 남겨 봅니다. Main.vue - Home.vue - PrpSearch.vue 구조인데 Main.vue에 <top-menu /> <router-view /> 두가지가 구성되어 있는데 Home.vue로 라우팅할시 top-menu는 노출하지 않고 PrpSearch.vue로 라우팅시 top-menu가 노출되는 형태가 되어야 하는데 간단한듯한데 쉽지 않네요. routes 구성은 { path: "/", component: () => import("@views/Main.vue"), children : [ { path: '/', name:'Home' , component: () => import("@views/home/Home.vue") }, { path: '/rnd/prp-search', name:'PrpSearch' , component: () => import("@views/rnd/PrpSearch.vue") }, ] }, 입니다. 감사합니다.
-
미해결자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌
13:00에서 서버로 실행시 404 오류가 나옵니다
요청된 리소스는 가용하지 않는다는 메시지가 나옵니다 톰캣 servers폴더의 server.xml에 <context> 부분이 사라져있던데 이부분 때문에 오류가 나오는걸까요??
-
미해결애플 웹사이트 인터랙션 클론!
안녕하세요. 실행 오류가 뜨는데 질문드립니다
(() => { let yOffset = 0; //window.pageOffset 대신 쓸 수 있는 변수 let prevScrollHeight = 0 // 현재 스크롤 (yOffset)보다 이전에 위치한 스크롤 높이값의 함 let currentScene = 0; // 현재 활성화된 (눈앞에 보고 있는) 씬(scroll-section) let enterNewScene = false; const sceneInfo = [ { // 0 type: 'sticky', heightNum: 5, //브라우저 높이의 5배로 scrollheight 세팅 scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-0'), messageA: document.querySelector('#scroll-section-0 .main-message.a'), messageB: document.querySelector('#scroll-section-0 .main-message.b'), messageC: document.querySelector('#scroll-section-0 .main-message.c'), messageD: document.querySelector('#scroll-section-0 .main-message.d') }, values: { // 글자 구간과 선명도를 지정 하는 역할 messageA_opacity_in: [0, 1, { start: 0.1, end: 0.2 }], messageB_opacity_in: [0, 1, { start: 0.3, end: 0.4 }], messageC_opacity_in: [0, 1, { start: 0.5, end: 0.6 }], messageD_opacity_in: [0, 1, { start: 0.7, end: 0.8 }], messageA_translate_in: [20, 0, { start: 0.1, end: 0.2 }], messageB_translate_in: [20, 0, { start: 0.3, end: 0.4 }], messageC_translate_in: [20, 0, { start: 0.5, end: 0.6 }], messageD_translate_in: [20, 0, { start: 0.7, end: 0.8 }], messageA_opacity_out: [1, 0, { start: 0.25, end: 0.3 }], messageB_opacity_out: [1, 0, { start: 0.45, end: 0.5 }], messageC_opacity_out: [1, 0, { start: 0.65, end: 0.7 }], messageD_opacity_out: [1, 0, { start: 0.85, end: 0.9 }], messageA_translate_out: [0, -20, { start: 0.25, end: 0.3 }], messageA_translate_out: [0, -20, { start: 0.45, end: 0.5 }], messageA_translate_out: [0, -20, { start: 0.65, end: 0.7 }], messageA_translate_out: [0, -20, { start: 0.85, end: 0.9 }], } }, { // 1 type: 'normal', // heightNum: 5, //브라우저 높이의 5배로 scrollheight 세팅 scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-1') } }, { // 2 type: 'sticky', heightNum: 5, //브라우저 높이의 5배로 scrollheight 세팅 scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-2'), messageA: document.querySelector('#scroll-section-2 .a'), messageB: document.querySelector('#scroll-section-2 .b'), messageC: document.querySelector('#scroll-section-2 .c'), pinB: document.querySelector('#scroll-section-2 .b .pin'), pinC: document.querySelector('#scroll-section-2 .c .pin'), }, values: { messageA_translateY_in: [20, 0, { start: 0.15, end: 0.2 }], messageB_translateY_in: [30, 0, { start: 0.6, end: 0.65 }], messageC_translateY_in: [30, 0, { start: 0.87, end: 0.92 }], messageA_opacity_in: [0, 1, { start: 0.25, end: 0.3 }], messageB_opacity_in: [0, 1, { start: 0.6, end: 0.65 }], messageC_opacity_in: [0, 1, { start: 0.87, end: 0.92 }], messageA_translateY_out: [0, -20, { start: 0.4, end: 0.45 }], messageB_translateY_out: [0, -20, { start: 0.68, end: 0.73 }], messageC_translateY_out: [0, -20, { start: 0.95, end: 1 }], messageA_opacity_out: [1, 0, { start: 0.4, end: 0.45 }], messageB_opacity_out: [1, 0, { start: 0.68, end: 0.73 }], messageC_opacity_out: [1, 0, { start: 0.95, end: 1 }], pinB_scaleY: [0.5, 1, { start: 0.6, end: 0.65 }], pinC_scaleY: [0.5, 1, { start: 0.87, end: 0.92 }] } }, { // 3 type: 'sticky', heightNum: 5, //브라우저 높이의 5배로 scrollheight 세팅 scrollHeight: 0, objs: { container: document.querySelector('#scroll-section-3') } }, ]; function setLayout() { // 각 section 의 높이 세팅 for (let i = 0; i < sceneInfo.length; i++) { if (sceneInfo[i].type === 'sticky') { sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; } else if (sceneInfo[i].type === 'normal') { sceneInfo[i].scrollHeight = sceneInfo[i].objs.container.offsetHeight; } sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}px` } let totalScrollHeight = 0; yOffset = window.pageYOffset; // 새로고침 버튼 눌렀을때 그 씬 장면이 유지 될 수 있게 해주는 역할 for (let i = 0; i < sceneInfo.length; i++) { totalScrollHeight += sceneInfo[i].scrollHeight; if (totalScrollHeight >= yOffset) { currentScene = i; break } } document.body.setAttribute('id', `show-scene-${currentScene}`) } function calcValues(values, currentYOffset) { let rv; //현재 씬(스크롤 섹션)애서 스크롤된 범위를 비율로 구하기 const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; if (values.length === 3) { // start ~ end 사이에 애니메이션 진행 const partStart = values[2].start * scrollHeight const partEnd = values[2].end * scrollHeight const partScrollHeight = partEnd - partStart; if (currentYOffset <= partEnd && currentYOffset >= partStart) { rv = (currentYOffset - partStart) / partScrollHeight * (values[1] - values[0]) + values[0]; } else if (currentYOffset < partStart) { rv = values[0]; } else if (currentYOffset > partEnd) { rv = values[1]; } } else { rv = scrollRatio * (values[1] - values[0]) + values[0]; } return rv; } function playAinmation() { const objs = sceneInfo[currentScene].objs; const values = sceneInfo[currentScene].values; const currentYOffset = yOffset - prevScrollHeight; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; // console.log(currentScene) switch (currentScene) { case 0: // calcValues = (values의 선명도, 현재 스크롤의 위치 if (scrollRatio <= 0.22) { // in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); objs.messageA.style.transform = `translateY(${calcValues(values.messageA_translate_in, currentYOffset)}%)`; } else { // out objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); objs.messageA.style.transform = `translateY(${calcValues(values.messageA_translate_out, currentYOffset)}%)`; } if (scrollRatio <= 0.42) { objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); objs.messageB.style.transform = `translateY(${calcValues(values.messageB_translate_in, currentYOffset)}%)` } else { objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); objs.messageB.style.transform = `translateY(${calcValues(values.messageB_translate_out, currentYOffset)}%)`; } if (scrollRatio <= 0.62) { objs.messageC.style.opacity = calcValues(values.messageC_opacity_in, currentYOffset); objs.messageC.style.transform = `translateY(${calcValues(values.messageC_translate_in, currentYOffset)}%)` } else { objs.messageC.style.opacity = calcValues(values.messageC_opacity_out, currentYOffset); objs.messageC.style.transform = `translateY(${calcValues(values.messageC_translate_out, currentYOffset)}%)`; } if (scrollRatio <= 0.82) { objs.messageD.style.opacity = calcValues(values.messageD_opacity_in, currentYOffset); objs.messageD.style.transform = `translateY(${calcValues(values.messageD_translate_in, currentYOffset)}%)` } else { objs.messageD.style.opacity = calcValues(values.messageD_opacity_out, currentYOffset); objs.messageD.style.transform = `translateY(${calcValues(values.messageD_translate_out, currentYOffset)}%)`; } break; case 1: break; case 2: break; case 3: break; } } function scrollLoop() { enterNewScene = false prevScrollHeight = 0 for (let i = 0; i < currentScene; i++) { prevScrollHeight += sceneInfo[i].scrollHeight; } if (yOffset > prevScrollHeight + sceneInfo[currentScene].scrollHeight) { enterNewScene = true currentScene++; document.body.setAttribute('id', `show-scene-${currentScene}`) } if (yOffset < prevScrollHeight) { enterNewScene = true if (currentScene === 0) // 브라우저 바운스 효과로 인해 마이너스가 되는 것을 방지 return currentScene--; document.body.setAttribute('id', `show-scene-${currentScene}`) } // 마이너스 나오는 오류를 잡아주기 위한 역할 if (enterNewScene) return; playAinmation() } window.addEventListener('scroll', () => { yOffset = window.pageYOffset; scrollLoop() }); window.addEventListener('resize', setLayout); window.addEventListener('load', setLayout); })()
-
미해결초보자도 만들 수 있는 스크롤 인터렉션. 1편 자바스크립트
section 5 - set 3번에서 질문있습니다.
선생님 안녕하세요! 궁금한게 있어서 글을 올렸습니다. section5 의 set3 폴더의 index.html에서 parallaxMoveDistance = Math.max(parallaxStartValue - parallaxStartValue, Math.min(parallaxStartValue, parallaxStartValue - (parallaxStartValue * (parallaxPercent / 100)))); 로 수식을 입력하셨는데 어떠한 이유로 저렇게 식을 사용하셨는지 궁금합니다. 계속 보다가 헷갈려서 도움의 손길을 요청합니다..ㅜ
-
미해결파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기
개발환경설정문의드립니다!
atom연결은 anaconda prompt 창에서 section2 를 activate한 후 atom이라고 치면 바로 실행이 되던데 vscode를 사용하려면 어떻게 해야하나요? 계속 vscode를 사용해서 이게 편할거같아서요ㅠ
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
logistic regression 에서 convergence warning
안녕하세요. logistic regression의 디폴트값으로 학습/예측을 시행하면 항상 convergence warning이 뜨더라구요..! max_iter = 200으로 하면 없어진 적이 많았었는데, 이 케이스는 500으로 해도 안 없어지고,, solver='liblinear'로 하면 warning은 사라지는데 정확도 예측값이 달라지더라구요..! warning이 떠도 정확도예측에 큰 문제가 없는건가요?!그리고 solver가 달라지면 어떤 차이점이 있는지 궁금합니다...!vo_clf 분류기 정확도:0.9474 lr_clf 분류기 정확도:0.9386 knn_clf 분류기 정확도:0.9386 C:\Users\hyoeun\anaconda3.1\lib\site-packages\sklearn\linear_model\_logistic.py:940: ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED LIMIT. Increase the number of iterations (max_iter) or scale the data as shown in: https://scikit-learn.org/stable/modules/preprocessing.html Please also refer to the documentation for alternative solver options: https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG) C:\Users\hyoeun\anaconda3.1\lib\site-packages\sklearn\linear_model\_logistic.py:940: ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED LIMIT. Increase the number of iterations (max_iter) or scale the data as shown in: https://scikit-learn.org/stable/modules/preprocessing.html Please also refer to the documentation for alternative solver options: https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)
-
미해결쉽게 배우는 Webpack
쿠폰을 이제 봤는데 발급 가능할까요..?
쿠폰을 이제 봤는데 발급 가능할까요..?
-
해결됨인터랙티브 웹 개발 제대로 시작하기
선생님 3개의 문2 10:50 질문입니다(perspective)
perspective(800deg)값을 줄때.door:hover .door-body{ transform:perspective(800deg) rotateY(100deg); } 를 적용했는데perspective value를 .door-body 에다 적용해 보니까 view가 다르게 보이긴 하더라구요.제가 혼자 구현을 한다고 생각해보니 어디다 적용할 지 헤맬것이 분명합니다 왜 perspective value를 .door:hover .door-body에 적용을 하셨는지 조금만 더 설명해주셨으면 좋겠습니다 어느 정도 이해는 가는데 정확히 모르겠습니다
-
미해결예제로 배우는 스프링 입문 (개정판)
안녕하세요,기선님. age컬럼 추가시 problem이 발생합니다.
왜 이런 문제들이 발생할까요? 구글링 해보니, 문제없이 실행되기때문에 무시하고 인텔리J 설정을 변경하라고 나오기도하던데, 신경안써도 되는부분인가요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
안녕하세요. 마지막에 Render에서 질문이 있습니다.
마지막에 색상을 임시 저장하고 끝날 때 초기 색상으로 바꾸어 주는데요. 어차피 for문 돌면서 스위치문에 조건에 맞게 색상이 정해지는데 굳이 이전색상을 저장한 이유가 궁금합니다. 혹여나 실수해서 색상이 날라가서 복구할때 무슨색이었는지 확인하기 위한 것인가요?? 기본색을 저장해도 결국은 스위치문에 따라 맞는게 없어도 기본색상이 아닌 초록색이 될텐데 굳이 기본색상을 저장하는 이유가 궁금합니다.
-
해결됨따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
쿠버네티스 강의 질문
안녕하세요. 먼저 본 강의에 대한 질문이 아닌 점 사과 말씀드립니다. 죄송합니다. 현재 본 강의를 7강까지 수강했는데 오랜만에 너무 재밌게 공부하고 있기에 쿠버네티스까지 이어서 공부하고 싶은 마음에 실례를 무릅쓰고 질문드립니다. 다음 강의로 쿠버네티스 강의를 기획하고 계신 것으로 아는데 혹시 언제쯤 업로드될지 알 수 있을까요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
도커 볼륨 관련 질문있습니다.
도커 볼륨 관련 질문있습니다. 4강 "Docker Volume에 대하여" 강의에서 소스 수정후 빌드는 하지 않았지만 Docker run 를 다시해야 변경점이 확인 되었는데요. 6강 "도커 볼륨을 이용한 소스 코드 변경" 강의에선 소스 변경하면 Docker run 를 다시 하지않아도 브라우저를 통해 바로 확인할 수 있던데 추가적으로 설치나 설정같은 뭔가를 해준건가요? 전 Docker run을 다시 해줘야 변경점이 확인됩니다. 도커 컴포즈도 마찬가지구요. 참고로 Windows 10 Home 입니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
호옥시
useCallback과 인자 전달 고차함수는 동시에 못쓰나요 ? 계속 이런 [React Error] Rendered fewer hooks than expected 에러가 나네요 ㅜㅜ const onCancel=(followingid)=useCallback( () => { dispatch({type:UNFOLLOW_REQUEST,data:followingid}); }, [], )