55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
list 질문입니다.
tuple은 불변형이기 때문에 변화가 있을 때마다 아예 새로운 id값을 생성해서 변수를 할당하고 list는 가변형이기 때문에 그냥 그 id값에 값을 추가하는 식이 된다고 이해했습니다. 그런데 m = m * 2와 m *= 2의 경우 전자는 id값에 변화가 생기고, 후자는 id값에 변화가 생기지 않는데 이는 두 연산자가 하는 일이 본질적으로 동일하지만 내부적으로 처리하는 과정이 다르기 때문인가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
vscode는 cmd 창에서 따로 activate 안해줘도 되는건가요?
그냥 컴퓨터 키자마자 활성화 없이 바로 vscode 들어가서 가상 환경에 있는 코드 실행해보면 이렇게 가상환경 폴더 이름이 붙여져서 컴파일이 되는데 vscode 는 vscode 에서 자동으로 activate 까지 해주는건가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
str, repr 질문입니다.
https://itholic.github.io/python-str-repr/ str은 변수가 뭐가 들어오던 간에 그걸 문자열화해서 '인간이 이해할 수 있도록' 해 주는 거고 repr은 들어온 객체를 다시 가져다 쓸 수 있도록 기존 객체와 같은 값을 가지는 문자열을 반환한다 정도로 이해하면 될까요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
atom 에서 자동완성 플러그인이 작동하지 않습니다...
증상 : 자동완성 패키지 작동 안함. python 3.9.1 venv 명령어로 가상환경 폴더 생성 가상환경 폴더 -> Scripts -> activate pip install pendulum , pytest 가상폴더 커맨드창에서 atom 실행 Atom Scripts, autocomplete, pytest 순으로 플러그인 설치 Atom 에서 가상환경 폴더를 프로젝트로 open 새파일 생성 후, 코딩 할 때 , 에러메세지 발생 autocomplete 플러그인 코드의 (line8:) import jedi 라는 구문에서 에러 발생 가상환경 커맨드창으로 돌아와 pip install jedi 실행 해당 에러 메세지는 사라졌지만, 여전히 자동완성 기능 작동하지 않음. 이 문제로 하루종일 들쑤시고 다녔는데 해결을 못 했습니다.. 해결방법 있나요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
Generator 예제 2번
def generator_ex1(): print('Start') yield 'A Point' print('Continue') yield ('B Point') print('End') temp2 = [x * 3 for x in generator_ex1()] print(temp2) Start Continue End ['A PointA PointA Point', 'B PointB PointB Point'] 결과 값은 이렇게 나옵니다. "temp 변수안에 list Comprehension을 통해 [A PointA PointA Point, B PointB PointB Point]가 저장되고, 저장 과정에 있어서 Generator_ex1의 실행으로 Start, Continue, End가 출력됬다"고 이해를 했는데 여기서 temp 변수안에 Start, Continue, End도 출력된 상태로 함께 저장되어 있는 건가요? 그래서 print(temp)를 할 때도 위에 결과가 출력되는 건가요? 항상 좋은 답변과 강의 감사드립니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
Decorator 코드들 중 Unpacking 질문입니다.
@perf_clock def sum_func(*numbers): return sum(numbers) e1 = [1,2,3,4,5] sum_func(e1) 의 결과가 TypeError: unsupported operand type(s) for +: 'int' and 'list' sum 함수와 unpacking을 찾아보았는데 *args 는 arg에 튜플형태로 저장, sum함수는 iterable을 인자로 받는것을 확인했습니다. 그러면 return sum(([1,2,3,4,5])) 이렇게 반환되는건데 이중으로 쌓여있어서 sum함수가 내부적으로 튜플을 벗겨내고 list자체를 더하게 되어서 오류가 생기는 건가요? 이유가 궁금합니다. 항상 좋은 답변과 강의 감사합니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
인스턴스 변수 질문
def __init__(self, company, details): self._company = company self._details = details __init__ 함수 밑에 입력된 self._company와 self.details는 앞에 self가 들어가서 인스턴스 변수라는 것을 알겠는데, __init__ 함수 밑에 선언된 함수들(__str__, __repr__, detail_info)은 왜 인스턴스 메소드에 포함되는지 궁금합니다. 그리고 변수와 메소드의 차이점은 무엇인가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
activate.ps1 오류 질문드립니다.
아래와 같은 오류가 발생합니다. 모듈 import와 함수 실행은 정상적으로 진행이 되는데아래 해당 오류를 지우려면 어떻게해야하나요??이 강의 15:00까지는 똑같이 하였습니다!
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
mutable object의 id 관련 질문입니다.
안녕하세요 chapter04_02 강의 중 mutable/immutable 관련 부분에서 궁금한 것이 있어서 질문을 드립니다. 1. 아래 코드를 실행시키니 (1)=(2), (5)=(6)인데, (3)!=(4)가 됩니다. list는 mutable하기 때문에 (1)=(2)가 되는 것은 이해가 되고, (5)=(6)인것도 이해가 되는데 왜 (3)과 (4)는 결과가 서로 다른지 잘 이해가 되지 않습니다. 2. 4달전 lbm108 님의 질문에 대한 답변에서 "리스트안에 요소들이 연산에 의해서 값이 변경되서 재 할당 했으므로, ID값이 다르게 나타납니다."라고 되어 있는데, 설명이 잘 이해가 안되어서 다시 문의를 드립니다.(3)/(4)와 (5)/(6)은 결과가 동일해도 내부에서 연산하는 방법이 서로 다르다는 의미인가요? #-- a = [1,2,3] print(a, id(a)) # (1) a.append(4) print(a, id(a)) #(2) #-- b = [1,2,3] print(b, id(b)) # (3) b = b*2 print(b, id(b)) # (4) #-- c = [1,2,3] print(c, id(c)) # (5) c *= 2 print(c, id(c)) #(6)
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
데코레이터 예제에 대한 질문입니다.
def perf_clock(func): def perf_clocked(*args): #함수 시작 시간 st = time.perf_counter() # 함수 실행 result = func(*args) # 함수 종료시간 et = time.perf_counter() -st # 실행 함수명 name = func.__name__ # 함수 매개변수(출력) (,로 구분해서 나옴) arg_str = ', '.join(repr(arg) for arg in args) #결과 출력 print('[%0.5fs] %s(%s) -> %r' % (et, name, arg_str, result)) (return result) return perf_clocked 이 예제의 구조를 파악하며 실행 과정을 공부해봤습니다. 그래서 내부함수 perf_clocked에서 return result를 지워보고 실행을 해봤는데 데코레이터 실행에 문제가 없었습니다. 수업시간에 언급하신 것처럼 closure 구조인건 이해를 했는데 return result의 역할이 무엇인지 잘 모르겠습니다. 항상 친절한 답변에 감사드립니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
클로저 예제 중 'NoneType' 에 대한 질문입니다.
def closure_ex1(): series = [] def averager(v): series.append(v) print('inner >> {} / {}'.format(series, len(series))) return sum(series) / len(series) (return averager) avg_closure1 = closure_ex1() avg_closure2 = closure_ex1 위의 클로저 예제에서 closure_ex1 함수의 return averager를 제거하고 두가지 방식으로 변수 할당을 해보았습니다. 그리고 아래와 같이 타입을 출력해보았는데 NoneType과 function이라는 결과값이 나왔습니다. print(type(avg_closure1)) -> NoneType print(type(avg_closure2)) -> function avg_closure1 = closure_ex1() 이렇게 변수를 할당하는 것은 avg_closure1에 closure_ex1 함수가 실행된 상태로 할당되어 있는 것을 의미하는 건가요? 그래서 함수의 실행 결과인 리턴값이 없기 때문에 NonType이라고 출력되는 건가요? 계속 (return 부분)을 return averager, return series, 생략 이렇게 넣어서 결과를 출력해보니 값이 다 다르게 나오고, 느낌은 오는데 명확히 정리가 잘 안됩니다 ㅠㅠ 항상 친절한 답변 감사드립니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
UnboundLocalError에러에 대한 질문입니다.
이미 올라온 질문에 대한 선생님의 링크를 보았습니다. 그리고 이해를 해보았는데 제가 이해한게 맞는지 확인하고 싶어서 질문 드립니다. def func_v3(a): print(a) print(c) c = 40 수업시간의 예제입니다. 제가 이해한 바로는 함수가 실행되기 전에 파이썬은 func_v3 함수를 해석하여 c 를 로컬변수(로컬 네임스페이스)로 생각을 한다. 그리고 함수를 실행하는데 print(c) 차례에서 c가 아직 정의되지 않은 상태이기 때문에 UnboundLocalError가 생긴다 그래서 global 키워드를 사용해서 print(c) 이전에 전역변수임을 명시적으로 알려줘야 한다! 이렇게 결론을 내렸는데 맞는건가요? 항상 좋은 강의 감사드립니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
가상 환경에서 atom 실행
가상환경에서 아톰이나 파이참을 실행하는 방법을 다시 알려 주실 수 있나요? 가상 환경을 만들고 아톰이나 파이참을 해당 가상 환경 폴더에 설치하면 되는 건가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
_asdict() 메소드
강의에서 나온 결과랑 저랑 다르게 나오는데 무슨 문제가 있는지 모르겠습니다. 결과 값이 OrderedDict형식으로 반환 되어야 되는데 아래와 같이 결과 값이 나오네요 ㅠ
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
python test : ctrl + alt + t 에 대한 오류
앞선 질문들을 읽어보았는데 vscode에서 실행된다는 말씀을 이해하지 못했습니다. 저런 메시지가 뜰 경우 저는 어떻게 해야되는지 알려주세요
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
파이썬 중급 내용 적용 분야
안녕하세요 우선 완강을 했고 질 좋은 강의에 감사인사 드립니다. 다름이 아니라 가르쳐주신 파이썬 중급 내용을 제가 관심있는 분야의 어떤 부분에 적용해볼지 고민인데요! 2가지만 질문드리겠습니다! 1. 우선 저는 데이터 분석쪽을 지망하고 있는 사람인데, 지금 생각나는 부분은 큰 데이터셋을 여러가지 모델로 모델링 할 때 이 비동기를 활용할 수 있지 않을까? 라는 생각이 들었습니다. 이에 대해 어떻게 생각하시는지와 '데이터 분석, 머신러닝' 분야에서 파이썬 중급 내용을 적용할 만한 또 다른 분야가 강사님께서 생각하시기에 또 어떤 것이 있을까요!?(전처리라던지..가르쳐주신 크롤링 등) 주관적인 의견이라도 좋으니 조언 부탁드리겠습니다! 2. 이 강의 소개에서 강의에 도움이 될 만한 분들 목록 중 '오픈소스 프록젝트 참여'가 있었습니다! 데이터 분석에서 주로 사용되는 Numpy, Pandas와 같은 오픈소스가 어떻게 동작하는지 분석하고 뜯어보려고 하는데 잠깐 살펴보았는데 오픈소스가 너무 거대하기도 하고 파이썬 중급에서도 다루지 않는 더 어려운 내용이 있더라구요 ㅜㅜ 그래서 강사님의 파이선 Level 3강의를 바로 들어야 하는지.. 고민입니다.. 아니면 넘파이나 판다스같은 거대한 것 말고 조그마한 오픈소스부터 뜯어봐야 하는지.. 그렇다면 추천해주실만한 조그마한 오픈소스가 있는지 여쭙고 싶네요! 긴 질문에 답변해주시면 정말 감사하겠습니다 :) 수강평도 남길께요!
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
wait의 done(), not_done() 그리고 as_completed의 cancelled 질문입니다!
안녕하세요! 우선 새해 복 많이 받으세요! 다름이 아니라 as_completed의 cancelled 메소드에 대해서 몇 가지 궁금한게 있습니다! 1. wait 같은 경우에는 설정한 timeout을 초과하는 작업에 대해서는 not_done()으로 출력해줄 수 있고 취소된 작업이 뭔지 확인할 수 있습니다! 그렇다면 as_completed는 애초에 구현되는 과정이 WORK_LST의 work들을 submit해서 append해준 futures_lst 리스트안에 담긴 작업들을 다시 for문으로 돌려서 작업들 중 시간이 적게 걸리는 작업들을 자동적으로 파악해서 알아서 시간이 적게 걸리는 작업들 순으로 동시성을 수행해주는 건가요? 2. 1번에서 설명드렸던과 같이 어쨋든 as_completed는 작업이 적게 걸리는 순으로 작업을 해준다고 한 것이고 결과적으로 작업이 엄청나게 많은 시간이 걸려도 어쨋든 '모든 작업을 완료' 한다는 점에서 wait와는 다르다고 판단됩니다(wait는 timeout 설정을 해주니깐요!) 그렇다면 as_completed에서 cancelled 메소드는 어떤 이유로 존재하는 건가요? cancelled 메소드가 취소된 작업이 무엇인지 알려주기 위한 것인데, 시간이 아무리 오래 걸리는 작업도 '수행 완료' 상태는 되기 마련인데, 그렇다면 모든 작업들에 대해 cancelled는 False일 거고... cancelled 메소드의 존재 이유가 궁금합니다! 3. 마지막으로 wait의 done(), not_done()에 대한 질문인데요! 다음과 같이 done()된 작업들, not_done()된 작업들 결과물로 이렇게 표시가 되는데, <Future at ~~~ > 이런식으로 나오는 표기를 보고 수행된 또는 중지된 작업들이 구체적으로 '내가 만든 어떤 작업'인지 어떻게 알 수 있나요..? 메모리 id(0x7fa~~같은 값들)를 보고 알아차려야 하나요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
worker 변수의 이용부분..?
강의 설명에서 선생님께서 자주 worker 변수와 같이 해주신다고 하셨는데.. 해당 코드에서는 worker 변수를 이용한 곳은 없어서요..! 혹시 이 변수를 이용하는 예시에 대해서 간단히 설명해주실 수 있을까요..? 사소한 거지만 궁금하네욤... 이미 WORK_LST가 주어졌는데 굳이 min 함수를 이용하는 이유가 뭘까여?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
closure_ex2() 예제 질문입니다.
closure_ex1 에서 중첩함수 내부에서 외부 변수인 series를 사용할때는 왜 에러가 안나고, closure_ex2 에서 중첩함수 내부에서 외부변수 cnt, total을 사용할때는 에러가 나는지 정확히 이해하기가 어렵습니다. 정확히 어떤 이유때문에 그런건지 알려주실 수 있나요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
출력 화면 질문입니다!
안녕하세요! 질 좋은 강의에 우선 감사인사드립니다. 다름이 아니라 itertools의 메서드를 사용할 때 사소한 출력 화면 질문인데요! 위와 같이 코드 라인 97번을 print로 출력하면 98~99라인의 코드가 왜 출력되지 않는 걸까요..? 그래서 밑의 사진과 같이 97번을 주석 처리하니 98~99번 라인의 print가 잘 출력됩니다.. 혹시 이유가 무엇인지 알 수 있을까요..?