55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
Iterator를 클래스로 만드는 것에 관한 질문입니다
Iterator를 클래스로 만드는 과정에서 궁금한 점인데요(블로그를 참고했습니다.. ) class IterClass: def __init__(self, start, last): self.current = start self.max = last def __iter__(self): return self def __next__(self): if self.current > self.max: raise StopIteration else: self.current += 1 return self.current - 1 다음과 같이 __iter__, __next__ 메소드를 구현한 후 n_list1 = IterClass(1, 10) 인스턴스를 생성하고 print(next(n_list1)) print(next(n_list1)) next 함수를 호출하면 값이 차례대로 출력되는것을 확인할 수 있었습니다. 그런데 def __iter__(self): return self 이 부분을 주석 처리를 하고 next 함수를 실행하였는데도 값이 여전히 차례대로 출력되는 것을 확인할 수 있었습니다. __iter__과 __next__ 메소드 모두가 구현되어야 Iterator로써 기능한다 라고 알고 있는데, 위의 경우처럼 __iter__ 메소드가 없는 경우에도 next 함수가 실행될 때, 이 클래스도 Iterator 라고 할 수 있나요?? 아님 단지 next 메소드만 호출되어 함수가 실행되는 것인가요?? 답변 부탁드립니다 + 그리고 하나 더 궁금한 점인데요.. Iterator를 클래스로 구현하는 예제들은 대부분 __iter__ 메소드에서 'self'를 리턴하게 한 것을 볼 수 있었습니다. stackoverflow의 답변 내용에 의하면 iterable 객체에서 __iter__ 메소드는 'iterator'를 반환하고 iterator에서 __iter__ 메소드는 iterator인 'self'를 반환한다고 하는데요 위의 내용이 맞는 것인지 확인 부탁드립니다. 항상 감사합니다
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
yield from 관련 질문입니다
제너레이터와 yield from 관련된 질문입니다 def number_generator(stop): n = 0 while n < stop: yield n n += 1 def three_generator(): yield from number_generator(3) for i in three_generator(): print(i) 위와 같이 작성된 코드와 def number_generator(stop): n = 0 while n < stop: yield n n += 1 for i in number_generator(3): print(i) 다음과 같이 작성된 코드를 실행해 보았을 때, 결과는 같게 출력되었습니다. 두 코드의 차이점은 그냥 yield from을 사용하느냐의 유무밖에 없는 것인가요?? 내부적으로 실행되는 과정에서 차이가 있는지 궁금합니다
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
첫번째 예제 질문있습니다
안녕하세요 첫번째 예제에서 print(next(temp)) 3개를 하면 저는실행결과가 아래와 같이 나옵니다 왜 StopIteration이 뜨는건지 잘 모르겠습니다 ㅠ
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
github에 올려도 되나요?
제가 이 강의 시리즈를 들으면서 강의에서 배운 내용 & 코드를 깃 허브에 올리고 있는데 문득 올려서 문제가 되지 않을까 생각하게 되어 질문을 남기게 됩니다. 계속 올려도 될까요? 문제가 되면 지금까지 올린 것 다 내리겠습니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
선생님 출력 문제때문에 ㅠㅠ
이거 출력 할려면 어떻게 해야할까요?? ㅠㅠ .. 딕셔너리 타입의 형태의 값을 바꾸기 위해 for문으로 돌리는 과정을 나타낸 코드입니다 ㅠㅠ ㅌ
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
복합 할당 연산자와 관련된 질문입니다
nonlocal, global 등을 혼자 공부하다가 생긴 궁금증인데요, 복합 할당 연산자와 관련해서 헷갈리는 부분이 있습니다. m = [15, 20, 25] # 리스트는 가변 print(m, id(m)) # 1661575536576 m = m * 2 print(m, id(m)) # 1661575275264 m *= 2 print(m, id(m)) # 1661575275264 리스트의 연산에서 a = a * 1 같은 경우는 a를 재할당 하여 id 값이 변화하고, a *= 1 같은 경우는 a객체를 수정하여 id 값에 변화가 없다고 공부하였습니다. 그런데 정수형의 연산에서는 b = 1 print(b, id(b)) # 1 2699763476784 b = b + 1 print(b, id(b)) # 2 2699763476816 b += 1 print(b, id(b)) # 3 2699763476848 b = 3 print(b, id(b)) # 3 2699763476848 그냥 각 객체마다 고유한 id를 부여하고, 같은 값을 가리키면 같은 id값을 갖게 되는 것을 볼 수 있었습니다. immutable과 mutable 자료형에서 왜 이런 차이가 발생하는 것인가요??
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
closure_ex2()에서 왜 list는 nonlocal 키워드를 붙이지 않아도, 내부함수에서 찾을 수 있는 건가요?
안녕하세요! 리스트 객체를 담는 temp 변수는 nonlocal을 붙이지 않아도 내부함수에서 찾을 수 있는데, 정수 객체를 담는 cnt 변수는 왜 못 찾는지 궁금합니다.다른 질문답변들도 읽어봤는데 call by reference는 함수 인자로 넘어갈 때 발생하는 문제(?)로 알고 있어서... temp 변수가 함수 인자로 들어가지 않은 예제 소스와는 다른 것 같습니다(제가 파이썬이 첫 프로그래밍 언어여서 잘못 알고 있다면 말씀해주시면 감사하겠습니다!)아니면 객체의 타입, 즉 말씀하셨던 mutable 객체와 immutable 객체별로 변수의 스코프가 다른 것인가? 서로 다른 메모리 공간에 저장되는건지 아니면 id 공유 방식도 다른건가? 하는 생각도 들고,,,제가 알던 지식들에 예외가 하나씩 생겨서,,, 혼란스러운 상태라 다른 답변들도 제대로 이해 못 하고 질문이 이상할 수도 있지만,,, 설명 부탁드리겠습니다 :)
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
리스트 자료형에 *2를 했을 때는 id가 다르고 *=2를 했을 떄는 왜 id가 같은 건지 궁금합니다
안녕하세요 :) 강의 덕분에 다양한 문법을 알아가면서 파이썬의 이해도를 높이는 중입니다. 수업을 듣다가 질문이 생겼는데요. 리스트 자료형에 *2를 했을 때는 id가 다르고 *=2를 했을 떄는 왜 id가 같은 건지 궁금합니다 결국 같은 연산인데, 내부적으로 둘은 어떻게 동작하는건가요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
F드라이브에는 가상환경 설치 못하나요??
-m venv p_study 이 부분 하고있는데 저는 C드라이브 말고 F드라이브에 하고싶거든요.. 방법이 없을까요??ㅠㅠ 맨 처음에 강사님께서 cd\ 명령어 친게 왠지 cdrive의 줄임말 같아서 fd\ 라고 해봤는데 안되더군요 ,,
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
Closure 질문입니다
변수에 함수를 할당할 때와 클로저 함수를 할당할 때 메모리 관점에서 어떻게 동작하는지 궁금합니다. 변수에 함수를 할당 할 때는 해당 함수의 위치(주소값)를 변수가 포인팅 하는 걸로 알고 있는데 클로저 함수를 할당 받는 경우 outer 함수를 stack영역에 열어두고 inner함수의 위치(주소값)를 변수가 포인팅 하는 건가요? 만약 맞다면 outer 함수는 할당 받은 변수가 del 될 때가 함수의 종료 시기인건가요? __________________________________________________________ 이것 저것 검색을 해보다보니 질문을 수정해야 될 것 같아 수정합니다. [검색을 해보며 명확히 알게 된 점] 클로저의 외부함수도 return 되면 함수가 종료되고 함수가 소멸한다. 하지만 Free variable 영역에 선언된 변수(객체)들과 내부함수는 '어딘가에' 저장이 되어 외부함수가 소멸되어도 사용할 수 가 있다. 아직 '어딘가에'의 명확한 답은 찾지 못한 상황입니다. 제 추측으로는 클로저 함수를 할당 받은 객체(변수) 내에 저장이 되는 것 같습니다. 제 추측이 맞는지 답변 부탁드리겠습니다. 추가로 클로저와 데코레이터에 대한 좋은 문서를 추천해주시면 감사합니다
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
% 연산자 관련 질문입니다
안녕하세요 강의에서 % 연산자의 사용에 관해 궁금한 점이 있습니다 print(list(map(var_func, filter(lambda x : x % 2, range(1, 6))))) print([var_func(i) for i in range(1, 6) if i % 2]) 다음과 같이 작성한 코드에서요 % 연산자는 나머지를 반환하는데, 숫자가 2로 나누어 떨어지는 경우 그러니까 나머지가 0인 경우는 자동으로 False로 인식되어 연산 과정에 포함되지 않는 것으로 이해하면 되나요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
Class Method 질문입니다
C++을 먼저 배우고 Python을 공부하니 혼동이 오는게 조금 있습니다. C++ 이나 Java에서 static 키워드를 붙여서 선언한 메서드가 Python에서는 @classmethod로 보는게 맞는건가요? 추가로 Python의 class variable도 C++, Java에서는 static 키워드를 붙인 변수처럼 생각해주면 되는거겠죠?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
가격정보를 직접 접근하지 못하게 하는 방법은 어떻게 하나요??
안녕하세요 강사님. 좋은 강의 잘 듣고 있습니다. 클래스 메소드를 사용하여 가격을 인상하는 방법이 효율적이라는 것을 알게 되었습니다. 그렇다면 print(car1._details.get('price')) print(car2._details['price']) 해당 코드와 같이 가격정보를 직접 접근하지 못하게 하기 위해선 어떤 방법을 사용해야 할까요??
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
python -m venv 오류
작업 폴더는 C:\Users\User\python_mid 여기서 하고 있고 몇 번 계속해봤는데 저런 오류 메시지만 뜨더라구요,, 어떻게 해야하나요
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
array 관련 재질문 드립니다
강의에서 tuple_g = (ord(s) for s in chars) 와 같이 제너레이터를 생성하고, array_g = array.array('I', (ord(s) for s in chars)) array 안에 제너레이터를 넣은 것을 확인할 수 있었는데요, print(array_g) 를 실행하니 array('I', [43, 95, 41, 40, 42, 38, 94, 37, 36, 35, 64, 33, 41]) 라는 결과가 나왔는데 제너레이터가 어떤 과정을 거쳐 리스트 형식으로 안에서 출력이 되었는지 궁금합니다 라는 질문에 "전체 과정은 array 클래스 내부의 next 메소드를 통해서 괄호안의 튜플이 한 개씩 생성되어 최종적으로 리스트로 만들어지는 과정입니다." 라고 답변을 해 주셨습니다. 답변을 확인한 후 print(dir(array))로 array 내부의 메소드를 확인해 봤는데요, next 메소드는 찾을 수가 없었습니다... 그리고 위의 질문에서 array안에 들어간 것은 튜플이 아니라 제너레이터로 알고 있는데요... 혹시 제가 잘못 알고 있는 것인지 송구스럽지만 다시 한번 확인 부탁드립니다. 그리고 array 안에 어떤 형태의 자료형을 넣어도 결과는 왜 항상 리스트로 출력이 되는 것인지 궁금합니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
결과 출력문에서 질문입니다.
코드 후반부, with futures.ProcessPoolExecutor() as executor: 에서 with문이니까...futures.ProcessPoolExecutor()의 의미는 작업을 실행할 때 open()함수를 호출할 때와 비슷하다고 생각하면 되나요?
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
환경변수
안녕하세요 강사님. 현재 level 2-3 수강중인 학생입니다. 회사에서 환경변수를 이용하여 코드작성을 많이하고 있는 상태입니다. 강사님 커리큘럼중 환경변수에 관한 내용을 다루는 chapter가 있을까요? level3은 결제만 하고 아직 수강하지 않은 상황이라 만약 환경변수에 관한 내용이 있다면 골라 듣기 위해 여쭙니다.
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
array와 제너레이터 관련 질문입니다
강의에서 tuple_g = (ord(s) for s in chars) 와 같이 제너레이터를 생성하고, array_g = array.array('I', (ord(s) for s in chars)) array 안에 제너레이터를 넣은 것을 확인할 수 있었는데요, print(array_g) 를 실행하니 array('I', [43, 95, 41, 40, 42, 38, 94, 37, 36, 35, 64, 33, 41]) 라는 결과가 나왔는데 제너레이터가 어떤 과정을 거쳐 리스트 형식으로 안에서 출력이 되었는지 궁금합니다
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
iterator 관련 질문입니다
제네레이터를 생성하고 활용하는 연습을 하다가 인터넷을 통해서 검색을 해 봤는데요 제네레이터는 iterator를 생성한다는 설명을 봤습니다. 그래서 제네레이터를 하나 생성한 후 dir을 통해서 확인을 해 봤는데요, __iter__와 __next__ 메소드를 모두 확인할 수 있었습니다. 그럼 제네레이터는 iterable한 객체임과 동시에 iterator라고 이해해도 되는건가요??
- 미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
None 의미에 대해서 궁금합니다.
콘솔 화면에서 None의 정확한 의미가 무엇인가요? 제가 이해한 바로는 time_func과 perf_clocked의 경우 리턴값이 없으니까 None으로 뜨는 거 같은데.. 이게 맞는진 모르겠네요ㅠㅠ