파이썬 내장함수, 파이썬 자체 기능 등 메모
**모든 것은 객체
모든 수, 문자열, 자료구조, 함수, 클래스, 모듈 등은 파이썬 인터프리터에서 파이썬 객체라고하는 어떤 상자안에 저장됨.각 객체는 자료형과 내부 데이터를 가지고 있음.
**변수와 인자 전달
a = [1,2,3]
b = a
a.append(4)
b
#output : [1,2,3,4]
대입연산자는 우항 객체에 대한 참조를 생성해 전달함.
변수에 값(객체)을 할당하는 것은 이름(값)을 객체에 연결하는 것이므로 바인딩이라고 한다. 값이 할당된 변수를 바운드 변수라고 부르기도 함.
def append_(list_, elem):
list_.append(elem)
a = [1,2,3]
append_(a, 4)
a
#output: [1,2,3,4]
함수에 객체를 인자로 넘기면 깊은 복사.
**동적 참조와 강한 타입
객체 참조에 타입이 관여하지 않는다.
a = 5
type(a) #output: int
a = 'foo'
type(a) #output: str
변수는 특정한 네임스페이스 안에 존재하는 객체의 이름이라고 할 수 있다. 자료형에 대한 정보는 객체에 있는 것. (파이썬은 자료형이 있는 언어다.)
a = 4.5
isinstance(a, (int,float)) #output: True
isinstance함수로 어떤 객체가 무슨 자료형인지 검사할 수 있다. 위와 같이 튜플을 넘겨서 주어진 튜플 중 하나인지 검사할 수도 있다.
**모듈
모듈이란 파이썬 코드가 담긴 .py파일을 말한다.
import test_module1
from test_module2 import func1, func2, constant1, object1
import test_module3 as tm3
** is 예약어
a = [1,2,3]
b = a
c = list(a)
d = None
a is b #output: True
a is c #output: False
d is None #output: True
is는 두 참조 변수가 같은 객체를 가리키고 있는지 검사할 때 사용한다. 변수가 None인지 검사할 때 흔히 사용
list는 항상 새로운 파이썬 리스트를 생성함.
None 인스턴스는 하나만 존재함. (null의미)
**뮤터블, 이뮤터블 객체
문자열, 튜플은 이뮤터블.
리스트, 딕셔너리, numpy 배열 등 대부분의 객체는 뮤터블
**바이트와 유니코드
val = '파이썬'
val_utf8 = val.encode('utf-8')
#out: b'\xed\x8c\x8c\xec\x9d\xb4\xec\x8d\xac'
type(val_utf8)
#out: bytes
val_utf8.decode('utf-8')
#out: '파이썬'
**형변환
str,bool,int,float 등 형변환을 위한 함수로 사용됨.
**날짜와 시간 (정확한 쓰임은 구글링, 본문 79pg)
파이썬 내장 datetime모듈은 datetime, date, time형 지원함.
strftime 메서드: datetime->문자열
strptime 메서드 : 문자열->datetime
포맷 규칙 (%Y, %y, %m, %d, %S, %w, %U, %F ..등)
datatime.datatime은 이뮤터블. 이런 메서드들은 항상 새로운 객체 반환.
datatime객체의 차(-연산)는 datatime.timedelta 객체 반환함.
**range
range함수는 연속된 정수를 넘겨주는 iterator를 반환한다. start, end, step 지정 가능. 인덱스로 시퀀스를 반복하기 위해 흔히 사용함. 메모리 사용량 매우 적음
list(range(3)) #out: [0,1,2]
list(range(0,8,2)) #out: [0,2,4,6]
seq = [2,5,1,7]
for i in range(len(seq)):
#do something with seq[i]
**삼항 표현식
<true expr> if <condition> else <false expr>
가독성 떨어뜨림. c++과 순서가 조금 다름.
'ML&DATA > python for data analysis' 카테고리의 다른 글
pandas - (Series, DataFrame, Index) (0) | 2020.07.19 |
---|---|
numpy 기본 : 배열과 벡터 연산 (0) | 2020.07.19 |
파이썬 - (함수, 예외처리, 파일, os) (0) | 2020.07.18 |
파이썬 - (내장 자료구조, 리스트 표기법) (0) | 2020.07.18 |
파이썬 메모 (0) | 2020.07.18 |