Python문법_1

coh·2022년 5월 18일
0

python

목록 보기
1/7

이 글은 제가 python을 복습하기 위해 작성한 글입니다.
그래서 최대한 중요한 내용들만 작성할 거예요.

object : A combination of variables and functions that is in memory

Everything in python is an object.

  1. python variable is a reference variable.

음.. c의 pointer와 비슷하게 주소를 가리키는 변수인데요, 여기서 주소는 실제 메모리 주소가 아닌 python이 만든 가상 주소예요. 그래서 reference variable이라고 부릅니다.

id() 함수를 통해서 reference를 확인할 수 있어요.

a = 365
b = 512
id(a)
id(b)
  1. Immutable 한 objects

int, float, string, etc가 있는데요.
예를 들어

a = 512
id(a)
a += 1
id(a)

512의 객체가 513으로 변하는 것이 아니라 513의 object가 새로 생기게 된다고 생각하면 됩니다!
At this time, reference link is broken if we assign a new object!!

  1. object's type

reference variable은 data type을 가지지 않고 각 object가 type을 갖습니다.

a = 512
type(a)
a += 0.1
type(a)

c언어는 각 포인터 타입이 있었죠? python의 reference variable은 type을 갖지 않습니다!

  1. string type
# "", ''을 string만들 때 사용합니다!
s = '123'
type(s)
id(s)
# int형 object로 변환
s = int(s)
type(s)
id(s)
  1. List

list는 mutable한 data type입니다. 따라서 list를 수정해도 새로운 object가 생기지는 않아요. list 내장함수로는 다양한 것들이 있는데 그 중에서도 append와 insert, extend, pop을 살펴볼게요!

a = [1, 2, 3]
b = a.pop()
a.append(4)
a.insert(2,5)
a
#[1,2,5,4]
b = a
b.pop(2)
b
#[1,2,4]
a
#[1,2,4] We copy the reference so a and b point same reference!! 
b.extend(a)
b
#[1,2,4,1,2,4] 

append(b)는 맨 끝에 해당 요소를 추가
insert(a,b) a번째 index에 b를 추가
pop(a) a번째 index를 추출. 지정 안할 시 마지막 추출.
extend(b) iterable한 data를 뒤에 extend시켜 추가해줌.

a.extend(range(3))

그리고 간단하게 copy에 대한 내용도 담았어요. 만약 reference를 copy하기 싫다면
a = b[:]
이렇게 slicing을 이용해서 copy하면 shallow copy를 할 수 있어요!
slicing을 하게 되면 새로운 object를 만드는 것과 같습니다.
deep copy에 대해서는 나중에 배워볼게요!

  1. list slicing
a = [1,2,3,4,5]
a[:]
a[:3]
#[1,2,3]
a[3:]
#[4,5]
a[-1]
#5
a[::2]
#[1,3,5]
a[::-1]
#[5,4,3,2,1]

colon 기호를 이용해서 slicing을 하게 되는데 마지막은 범위에 포함하지 않고 slicing을 하게 됩니다. [::-2]와 같이 stepsize를 지정해줄 수도 있어요!

profile
Written by coh

0개의 댓글