2018/09/04 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 1 - Hello World!
2018/09/04 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 2 - 변수와 자료형, 연산자
2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 3 - 파이썬의 자료구조, 리스트 (list)
2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 4 - 파이썬의 스트링 (string)
2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 5 - 스트링과 리스트 처리-1
2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 6 - 스트링과 리스트 처리-2
2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 7 - 튜플 (tuple)
2018/09/05 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 8 - 딕셔너리 (Dictionary)
2018/09/08 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 9 - 집합 (set)
2018/09/08 - [교육 노트/파이썬 강의] - [파이썬 때려잡기] Python 강의 10 - 사용자 입출력
지금까지 각종 변수와 자료형을 다루었는데
해당 변수는 어떻게 만들어지고 활용되는것일까?
그것을 확인해보기 위하여 킹갓 사이트 http://pythontutor.com/visualize.html를 사용해 보았다.
1. 변수와 메모리
변수들은 다음과 같이 메모리에 잡힌다.
과 같은 코드는
이런식으로 잡힌다.
2. copy
과같은 코드는
이런식으로 (y만 바뀜)
과 같은 코드도
과 같이 x값이 y에 복사되어 들어가게 된다.
그럼 리스트는 어떨까?
x와 y가 같은 리스트를 가르키게 된다.
즉 x와 y는 변수명이 다르지만 완전하게 같은 리스트를 나타낸다 (단순히 값만 같은것이 아님)
따라서
다음과 같이 y를 통하여 값을 변경해도 x가 나타내는 리스트또한 바뀌게 된다.
만약 원하는 의도가 이런것이라면 그냥 쓰면 되는데
그게 아니라 값만 고대로 가지고 와서 새로운 리스트를 만들고 싶은것이라면
copy메소드를 사용해아한다.
또는
또는 그냥
과같이 슬라이싱 을 통하되 그냥 처음부터끝까지 해버리면 된다.
슬라이싱을 해당 영역만큼 카피가되므로 귀찮으면 x[:] 와 같은 방법을 통하여 리스트를 카피할수가있다,
3 swap
a와 b의 값을 서로 바꾸고 싶어서 (이를 swap이라한다) 다음과 같이 코딩하였다.
둘다 2가 되어버렸다.
이유는 x=y에서 x에 이미 2가 들어가므로 y=x에 2가 들어가는것이다.
그래서 이를 해결하기위해 값을 저장하기위한 변수를 하나 만들어놓는다
요런식으로
대부분의 언어들은 다음과 같이 swap 을 처리한다
대부분의 컴퓨터 공학도들은 이 방법에 매우 익숙한데
일반인 입장에서 a와 b를 바꾸는데 temp를 만들어서 저장하고 어쩌고... 가 읽기도 불편하고~ 이해하기도 어렵고~
하지만 킹갓 파이썬은 다음과 같은 방법을 제공한다
x,y = y,x 하면 된다.
이렇게 하면 왜 되느냐하면 y,x가 튜플로 처리되어 변수에 대입되는것인데
알면좋은데 몰라도 걍 쓰면 된다.
'교육 노트 > 파이썬 강의' 카테고리의 다른 글
[파이썬 때려잡기] Python 강의 13 - 반복문 while문 (0) | 2018.09.09 |
---|---|
[파이썬 때려잡기] Python 강의 12 - 조건과 조건문(분기문) (1) | 2018.09.09 |
[파이썬 때려잡기] Python 강의 10 - 사용자 입출력 (0) | 2018.09.08 |
[파이썬 때려잡기] Python 강의 9 - 집합 (set) (0) | 2018.09.08 |
[파이썬 때려잡기] Python 강의 8 - 딕셔너리 (Dictionary) (0) | 2018.09.05 |