티스토리 뷰
반응형
다른 프로그래밍 언어와 다르게,
파이썬에서의 변수는
실제로는 값을 저장하는 박스가 아니며
그 위치를 가리키는 이름표(참조)에 불과하다.
다음 예제를 보자.
1
2
3
4
5
6
|
a = [10, 20, 30]
b = a
b.reverse()
print(a)
print(b)
|
cs |
- 설명 1
a 리스트에는 [10, 20, 30]이 들어간다.
a는 [10, 20, 30]을 가리키는 것이다.
b = a를 하고
b.reverse()를 하면
b = [30, 20, 10]이고
a = [10, 20, 30]일 것 같지만
결과는 그렇지 않고,
a와 b 동일하게
[30, 20, 10]으로 나타난다.
- 결과
- 설명 2
이는 변수 a가
리스트 [10, 20, 30]을
가리키고 있기 때문인데,
b = a하게 되면
리스트 [10, 20, 30]이 있던 곳을
b도 a와 같이 가리키게 된다.
그러므로 b.reverse()를 하면,
b가 가리키고 있던 리스트가
역순이 되기 때문에
같은 곳을 가리키고 있던 a, b의 대상인
리스트 [10, 20, 30]이
[30, 20, 10]으로 바뀐 것이다.
파이썬 튜터로 본 과정 은 아래와 같다.
(1) a = [10, 20, 30]
(2) b = a
(3) b.reverse()
파이썬 튜터를 활용하면
코드 한 줄마다 진행되는 과정을
그림으로 쉽게 이해할 수 있다.
(pythontutor.com/visualize.html#mode=edit)
다른 프로그래밍 언어의
변수 개념과 혼동하지 않도록
주의해야겠다.
반응형
'Programming Language > Python basic' 카테고리의 다른 글
[Python] 6자리의 패스워드 생성기 프로그램 (과제 : 적어도 하나의 숫자를 가지도록 소스 변경) (0) | 2021.03.31 |
---|---|
[Python] 정수를 입력 받아 소수인지 판별하는 프로그램 (0) | 2021.03.31 |
[Python] 파이썬 문자열 출력 기초 / len(), ''', \n, \', %s 등 (0) | 2021.03.31 |
[Python] 여러 개의 값을 한 줄로 입력 받기 / map(), split() (0) | 2021.03.26 |
[Python] 거듭제곱 연산자의 활용 (0) | 2021.03.26 |
댓글
반응형
Recent Post.
Recent Reply.
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요