[파이썬데이터분석] 파이썬 기초

imacusirius·2021년 11월 6일
0

파이썬데이터분석

목록 보기
4/12

시맨틱

  • 파이썬 은 가독성과 명료성, 명백함을 강조
  • 실행 가능한 의사코드라 표현하기도 함

들여쓰기

  • R, C++, 자바 등 다른 언어와 달리 중괄호가 아닌 공백 문자로 코드를 구조화
  • 문장의 끝에 세미콜론을 붙일 필요 없음
    • 세미콜론은 하나의 줄에 여러 문장을 작성할 때 구분하기 위해 사용
    • 가독성 해치므로 지양하는 습관

모든 것은 객체

  • 중요한 특징: 객체 모델의 일관성
  • 모든 숫자, 문자열, 자료구조, 함수, 클래스, 모듈 등은 파이썬 객체라고 하는 어떠한 상자에 저장
  • 객체는 연관된 자료형과 내부 데이터를 가짐
  • 함수마저도 하나의 객체로 간주 --> 파이썬을 매우 유연한 언어로 만듦

주석

  • '#' 뒤에 오는 문자는 파이썬 인터프리터에서 무시함
  • 코드를 지우지 않고 실행만 안 하고 싶을 때도 사용

함수와 객체 메서드 호출

  • 함수는 괄호와 0개 이상의 인자를 전달해 호출할 수 있음
    • 반환되는 값은 선택적으로 변수에 대입 가능
  • 파이썬의 거의 모든 객체는 함수를 포함, 이를 메서드라 함
    • 객체 내부 데이터 접근 가능
  • 함수는 순서별 인자와 키워드 인자를 동시에 받을 수 있음

변수와 인자 전달

  • 파이썬에서 변수에 값 대입하면 대입 연산자 오른쪽에 있는 객체에 대한 참조를 생성
  • 변수에 값을 할당하는 것을 바인딩이라고 함
  • 함수에 객체를 인자로 넘기면 새로운 지역 변수 생성, 원 객체를 복사하지 않고 참조만 함
    • 함수 안의 어떤 변수에 새로운 객체를 연결하면 함수 바깥에는 영향 X
    • 함수에서 인자의 내부 값 변경 가능

동적 참조와 강한 타입

  • 파이썬은 객체 참조에 타입이 관여하지 않음
  • 변수는 특정한 네임스페이스 안에 존재하는 객체에 대한 이름, 자료형에 대한 정보는 객체 자체에 있음
  • 파이썬은 '자료형이 없는 언어'가 아님
    • 파이썬에서 모든 객체는 특정한 자료형을 가지고, 명백한 상황에서만 묵시적 변환을 수행하는 자료형을 구분하는 강한 타입의 언어임
  • isinstance 함수 이용하면 객체가 어떤 자료형인지 검사할 수 있음
In [1]: isinstance(a, int)
Out[2]: True

속성과 메서드

  • 객체는 일반적으로 속성(객체 내부에 저장되는 다른 파이썬 객체)과 메서드(객체의 내부 데이터에 접근할 수 있는 함수)를 가짐
  • 속성과 메서드는 obj.attribute_name 문법으로 접근 가능
In [1]: a = 'foo'

In [2]: a.<Tab>
a.capitalize  a.format   a.isupper   a.rindex   a.strip
...
  • 또는 getattr 함수를 통해 이름으로도 접근 가능함
    • 다른 언어에서는 이름으로 객체에 접근하는 것을 '리플렉션'이라고 함
In [1]: getattr(a, 'split')
Out[1]: <function str.split>

덕 타이핑

  • 객체의 자료형에는 관심 X 어떤 메서드나 행동 지원하는지만 알고 싶은 것을 덕 타이핑이라 함
  • 어떤 객체가 이터레이터를 구현했다면 순회가 가능한 객체인지 검증할 수 있음
  • iter 함수 이용해서 검사

모듈 임포트

  • 파이썬에서 모듈: 간단히 파이썬 코드가 담긴 .py 파일
  • importfrom @@ import ㅁ,ㅇ로 접근 가능
  • as 예약어 사용하면 모듈을 다른 이름으로 임포트 가능
import some_module as sm

r = sm.f(a)

이항 연산자와 비교문

  • 두 참조 변수가 같은 객체를 가리키고 있는지 확인할 때는 is 예약어 사용
  • is not 사용하면 두 객체가 같지 않은지 검사
  • is== 연산자는 같은 비교가 아님
  • is, is not은 주로 변수가 None인지 검사하기 위해 사용
In [1]: a = None

In [2]: a is None
Out[2]: True

뮤터블, 이뮤터블 객체

  • 뮤터블 = 객체나 값의 내용을 바꿀 수 있다
    • 리스트, 사전, Numpy 배열 또는 사용자 정의 클래스 등 대부분의 객체
  • 이뮤터블 = 변경 불가능
    • 문자열이나 튜플은 변경 불가능
  • 객체는 언제든지 변경해도 된다는 의미 X --> 부작용 유발

0개의 댓글