본문 바로가기
python

[초보자를 위한 파이썬 300제] 00 파이썬 문법 리뷰 > 01 유튜브 목차 > 3. 파이썬 변수

by tmfdl0856 2025. 3. 17.

https://wikidocs.net/180754

 

01) 유튜브

조금 더 자세한 설명을 원한다면 클래스101의 "Level2 중급 파이썬"을 추천합니다. 고급 문법을 아는 것이 고급 실력을 의미하지 않습니다. "Level1 기초 파이썬"부터 …

wikidocs.net

01) 유튜브 목차

3. 파이썬 변수

파이썬에서 변수라 함은 파이썬에서 자주 사용하는 값에 대한 이름표라는게 딱 나와야 한다

아이스크림 = 1500

만약 아이스크림이라는 변수에 1500이라는 인티져타입을 할당하면

 아이스크림이라는 변수에 1500이라는 값이

변수(아이스크림)가 1500이라는 값의 위치를 바인딩하게 된다라고 한다

bind : 무언가를 가르키다

1500을 변수에 넣지 않고 1500 * 10이라고 표기하면

1500이 무엇을 가르키는지 모를수 있는데 1500을 변수에 담아두면 ( 아이스크림 = 1500 )

나중에 보아도 무엇인지 한번에 알수 있다

1500이라는 값이 메모리에 먼저 할당됩니다 그리고 아이스크림이라는 변수가 저기 빨간 부분을

가르키는 거에요

이때 여러분들이 실제 메모리에 할당된 주소를 알고 싶을때는 

id라는 함수를 사용하면 된다

현재 아이스크림이라는 변수가 바인딩 하고 있는 값의 주소를 알고 싶으면 이렇게

id 함수를 사용하면 주소값이 

(변수에 1500이라는 값을 담으면 1500이라는 값이 메모리에 할당이 되고 그 메모리는 항상 주소가 있다 그게 주소값이다)

파이썬 64비트를 사용하면 주소값이

위에서 0부터

밑에 2의 64승 - (마이너스)1 까지 됩니다 왜냐면 0부터 시작했으니까 (마이너스 1) 하나 빼주는 거에요

이 범위내에서 특정 번지에 인티져 값 1500이 할당이 되어 있는거다

만약에 여러분들이 32비트 파이썬을 사용하게 되면

범위가 2의 32승 -(마이너스) 1까지, 42억 조금 안되는 숫자 범위 안에 값이 나오게 된다

이 주소값은 여러분이 실행할때마다 값이 달라지게 된다

그래서 이 주소값을 기억하는게 중요한게 아니라

이 그림을 그려가시면서 소스코드를 이해하는게

나중에 함수 그리고 클래스를 이해하는데 도움이 된다

이번에는 이제 변수 바인딩에 의미를 알았다면

소스코드를 실행했을떄 결과를 예상해보자

파이썬 인터프리터는 항상 위에서 아래로 실행을 하기 때문에

메모리에 2가 할당이 되고 주소값이 정해지고

그다음 또 4가 할당이 되면 그 주소값이 정해지고 a는 

4가 위치하는 저 주소를 바인딩하게 된다

그래서 아까 a가 가르켰던 2는 아무도 자기 자신을 가르키지않죠

즉 어떤 변수도 2라는 값을 바인딩 하고 있지 않죠

그러면 레퍼런스 카운트가 내부적으로 관리가 되고요 그 값이 0이 되면서

2라는 실제 메모리 할당된 값은

알아서 메모리에서 삭제가 되게 됩니다

이런 기능을 파이썬에 가버지 컬렉터가 자동으로 해주는 거에요

여러분이 실제 메모리에 올리고 그 다음에 필요없는 값을 메모리에서 해제할 필요가 없이

참조하지 않는 값은 그 값은 알아서 가버지 컬렉터에 의해서 없어지게 되는거에요

그래서 파이썬이 알아서 메모리 관리를 하고 잘 동작하는 겁니다

그래서 a의 값은 4가 됩니다