묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결예제로 공부하는 Python 100 문제풀이 Part.1
'변수선언, 값, 할당' 강의 2분 24초
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수강 중 질문이 있어 남깁니다. "파이썬은 변수를 선언시 메모리 공간을 예약하기 위해서 명시적으로 선언을 할 필요가 없다."라고 하셨는데요, c언어에서 처음에 변수명을 선언하고 (int a=10) 값을 초기화해주는 것처럼 변수명과 변수 타입을 기입하는 과정이 필요없고 바로 a=10이라고 쓰면 된다고 이해해도 되나요?
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
closure_ex2()의 에러 문의
안녕하세요, 수업 잘 듣고 있는 수강생 중 하나 입니다. closure_ex2()에서 발생한 nonlocal 없음으로 인한 에러를 보고 몇가지 테스트를 해보고 제가 이해한 바가 맞는 건지 문의드립니다. 상위함수의 free variable region에서 cnt의 id 값을 print해보고, 내부함수 내용을 모두 지우고 cnt의 id를 print 해보니 free variable region의 cnt와 동일한 id 값을 확인할 수 있었습니다. 마치, 자바스크립트의 런타임 전에 변수가 먼저 선언된 후 런타임에서 변수에 값이 할당되는 것과 메커니즘이 같다는 생각이 들었습니다. 그래서 내부 함수에서 cnt = 3으로 할당한 후 id 값을 print 해보니 그때에는 free variable region과는 다른 id값이었습니다. 다른 질문의 답변에서 mutable과 immutable의 차이 때문이라고 하신 것보다 좀 더 깊게 이해하자면 스코프와 변수의 선언과 할당의 다른 시점에 의해 발생한 에러라고 생각이 됩니다. 내부함수에서 (cnt = cnt + 1 또는 cnt += 1 )라고 쓴 부분에서 cnt라는 변수가 런타임 이전에 선언되고 런타임에서 cnt + 1 을 수행하는데 선언만 되고 할당이 안되어 있기 때문에 reference error가 발생했다고 생각이 되는데요. 제가 이해한 바가 맞는지요?