자료형의 값을 저장하는 공간, 변수

 변수란?

(1) 객체를 가리키는 것 : assignment( = ) 기호를 사용해서 "변수 = 저장할 값" 과 같이 선언한다.

a = 1
b = "python"
c = [1, 2, 3]

(2) 자료형의 데이터(값)와 같은 것 : C언어나 Java처럼 자료형을 따로 지정하지 않는다.

# Java에서 숫자데이터를 변수에 저장할 때
# int javaNum = 10;

# Python에서 숫자데이터를 변수에 저장할 때
pythonNum = 10

(3) 변수에 데이터를 할당하면 그 객체는 자동으로 메모리에 생성되고 변수는 저장된 메모리의 주소를 가르키게 된다. (메모리 주소는 사용자마다 다르게 나올수 있다.)

print(id(a))  # 출력결과 : 140735303312168

b = "python"
print(id(b))  # 출력결과 : 2894261684656

c = [1, 2, 3]
print(id(c))  # 출력결과 : 2894261685376

 

 리스트 복사

(1) [:] 사용

a = [1, 2, 3]
b = a[:]

print(a)		# 출력결과 : [1, 2, 3]
print(b)		# 출력결과 : [1, 2, 3]

(2) copy 모듈 사용

a = [1, 2, 3]
b = copy(a)

print(a)		# 출력결과 : [1, 2, 3]
print(b)		# 출력결과 : [1, 2, 3]

print(id(a))	# 출력결과 : 3151493893248
print(id(b))	# 출력결과 : 3151494869184

print(b is a)	# 출력결과 : False
print(b == a)	# 출력결과 : True

객체 b와 객체 a의 데이터를 비교하는 ( == )를 사용할 경우 '두 객체의 값이 같다' 는 의미로 True가 출력되고 두 객체의 메모리를 비교하는 is 키워드를 사용해서 '두 객체가 다르다' 는 의미로 False가 출력되는 것을 확인할 수 있다.

변수를 만드는 여러가지 방법
# 튜플
a, b = ('dokev', 'archive')
a, b = 'dokev', 'archive'
print(a)    # 출력결과 : dokev
print(b)    # 출력결과 : archive

# 값 바꾸기
a, b = b, a
print(a)    # 출력결과 : archive
print(b)    # 출력결과 : dokev

# 리스트
[c, d] = ['python', 11]
print(c)    # 출력결과 : python
print(d)    # 출력결과 : 11

x = y = 'dokev archive'
print(x)    # 출력결과 : dokev archive
print(y)    # 출력결과 : dokev archive

 


 

+ Recent posts