Today I Learned (TIL)/Python

[TIL] Python 베이직 - 1회차

신짜린 2024. 7. 17. 09:40

1. 변수의 주소, 타입, 메모리 확인하기

 모든 변수는 메모리를 할당받고, 주소값을 갖게 된다. 파이썬에서 기본 자료형(int, float, str 등)은 불변 객체이기 때문에 직접적으로 메모리 주소를 공유하게 할 수는 없다.

 int 형식은 유동적으로 변하고 float는 고정이다. str 형식은 49바이트를 할당받고 시작한다.

import sys

# 변수 선언
int_var = 1
float_var = 3.14
str_var = "Hello"

# 변수의 자료형 출력
print(f"Type of int_var: {type(int_var)}")
print(f"Type of float_var: {type(float_var)}")
print(f"Type of str_var: {type(str_var)}")

# 변수의 메모리 주소 출력
print(f"Memory address of int_var: {id(int_var)}")
print(f"Memory address of float_var: {id(float_var)}")
print(f"Memory address of str_var: {id(str_var)}")

# 변수의 메모리 사용량 출력
print(f"Memory size of int_var: {sys.getsizeof(int_var)} bytes")
print(f"Memory size of float_var: {sys.getsizeof(float_var)} bytes")
print(f"Memory size of str_var: {sys.getsizeof(str_var)} bytes")
# 리스트를 사용하여 값 저장
shared_list = [1]

# 리스트의 첫 번째 요소를 가리키는 변수
int_var = shared_list
a_var = shared_list

print(f"Before modification:")
print(f"int_var: {int_var[0]}")
print(f"a_var: {a_var[0]}")

# 값을 변경
int_var[0] = 2

print(f"After modification:")
print(f"int_var: {int_var[0]}")
print(f"a_var: {a_var[0]}")