코딩 테스트 준비/Python 이론

파이썬 이론(변수)

gugigugi92 2023. 2. 25. 16:34

변수

   값을 담는 상자.

   변수는 메모리의 저장되어

   변수가 저장된 메모리의

   주소의 값을 이용해 값을 가져와 활용된다

 

 

 

변수를 만들때는 =(assignment) 기호를 사용한다

a=1
#1 이라는 값을 가지는 정수 자료형이 메모리에 생성됨
#변수 a는 객체가 저장된 메모리의 위치를 가리키는 레퍼런스(Reference)
#a라는 변수는 3이라는 정수형 객체를 가리키는중

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

print(a,b,c)

 

변수가 잘 들어간 출력결과

 

↓해당 사이트에서 파이썬에서 변수를 생성했을때 시각적으로 보여준다

https://pythontutor.com/visualize.html#mode=display

 

 

 

해당사이트 이용

 

a라는 값은 1이 담긴 주소를 가르킨다

 

코드를 실행하면 이렇게 보여준다


a=[1,2,3]
b=a
a[1]=4
print(b)

출력결과

a 라는 변수는 [1,2,3]이 있는 메모리 주소를 가르키고있다

a의 주소값을 b에 주었을때

a의 1번째 방을 4로바꿨을때

b의 값은 a의 주소값을 받았기때문에 a와 마찬기지로 [1,4,3]로 바뀌게된다

   

print(id(a)) # 주소값확인
print(id(b))

print(a is b)# 두 값이 주소가 같은지 확인

출력렬과

두 값이 완벽하게 같은 주소를 가르키는것을 확인 할 수 있다.

 

 

b에 a의 값을 새로운 주소로 할당해주기

a=[1,2,3]
b=a[:] #a 의 1~3까지를 슬라이싱하여 b에 값을 넣어주면
        # 새로운 주소로 b에 값을 줄수있다.
print(a)        
print(b)
print(id(a))
print(id(b))
print(a is b)

출력결과

출력결과에서 a의 값만 면한것과 주소값이 다른것을 확인할 수 있다

 


#다른 방법

from copy import copy #값을 주소를 새로 할당하여 주는 라이브러리 가져오기
c=[4,5,6]
d=copy(c)
c[2]=7
print(c) 
print(d) 
print(id(c)) 
print(id(d)) 
print(c is d)

출력결과 / 메모리 확인

같은 값을 가지고있지만 다른 메모리 주소를 가르키는며 c의 2번째 방만 수정되는것을 확인

 

 

#튜플 또는 리스트를 이용하여 각각 변수를 할당하기
(a,b) =('python','life')

print("a= "+a)
print("b=",b)
 
print()
a= b='hello'#같은 주소
print(a)
print(a)
print(id(a))
print(id(b))

출력결과


#c의 값을 d로 d의 값을 c로 옮길때
c=3
d=5
print(id(c))
print(id(d))
tmp = c# c를 임시변수에 담아두고
c = d #c에 d값을 먼저 넣어두고
d = tmp #d에 c의 값을 저장해둔 임시변수 값을 할당
print(c)#5
print(d)#3
print(id(c))
print(id(d)) #주소값까지 그대로 복사된 것을 확인

print()
#위의 코드를 파이썬에서는 간략하게 나타낼수 있다
a=3
b=5
a,b = b,a
print(a)
print(b)

출력결과