[Python] 변수 (variables)

Jeongyun Heo·2020년 12월 14일
0

Python

목록 보기
5/36

점프 투 파이썬 참고: https://wikidocs.net/18

✍️  변수

메모리(저장공간) 값을 저장하는 곳
메모리에 주소가 있음
변수에는 주소가 있어서 변수를 불러올 때 주소를 불러오는 것

변수를 만들 때는 "=" 기호 사용

파이썬에서 사용하는 변수는 객체를 가리키는 것
객체가 있으면 method를 이용해서 함수 적용 가능

⭐️  snake case 표기법
모두 소문자로 입력하고 단어 사이를 _로 연결

http://pythontutor.com/live.html#mode=edit

a = 1

a = [1, 2, 3]

a = [1, 2, 3]
b = a  👉 b에 a의 주소를 줌. a와 주소가 같아짐.

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

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

👉
4513729344
4513729344
(주소값이 같음)
a = [1, 2, 3]
b = a
a[1] = 4
print(a is b)

👉 True
a = [1, 2, 3]
b = a[:] ➡ 주소를 주는 게 아니라 값을 주는 거
a[1] = 4
print(a)
print(b)

👉
[1, 4, 3] ➡ a
[1, 2, 3] ➡ b

a 라는 리스트를 처음부터 끝까지 슬라이싱해서 그 값을 b한테 주는 거
즉, 슬라이싱하면 새로운 [1,2,3]이라는 리스트가 생겨서 그걸 b에 넣는 거
말 그대로 값을 복사한 거. 주소가 아니라.

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

👉
4394728320
4395013952
(id를 찍어보면 주소 다르게 나옴)

✍  copy 모듈 이용

위에 슬라이싱이랑 똑같이
a 리스트 주소를 주는 게 아니라
값을 복사해서 a 리스트를 b한테 새롭게 할당하겠다

from copy import copy
a = [1, 2, 3]
b = copy(a)
a[1] = 4
print(id(a))
print(id(b))

👉
4553428032
4553425600
(주소값이 다름)

새로운 주소에 값을 복사해서 넣은 거
복사한 것을 b한테 새로운 주소를 할당해 주는 거

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

👉
[1, 4, 3] ➡ a
[1, 2, 3] ➡ b


✍  변수를 만드는 여러 가지 방법

튜플 이용해서 할당. 괄호 있으나 없으나 상관없음.

a, b = ('python', 'life')

print(a)
print(b)

👉
python
life

리스트 [ ]로 할당해도 똑같이 나온다

[a, b] = ['python', 'life']

print(a)
print(b)

👉
python
life

a랑 b랑 똑같은 값 넣을 때

a = b = 'hello'

print(a)
print(b)

👉
hello
hello

a의 값을 b로, b의 값을 a로 바꾸고 싶을 때

a = 3
b = 5

a, b = b, a  ➡ 튜플 이용

print(a)
print(b)

👉
5 ➡ a
3 ➡ b

0개의 댓글