코딩 테스트 준비/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)