Chapter 04

 

  • 시퀀스형
  • 컨테이너(Container, 서로 다른 자료형을 담음) Ex) List, tuple, collections, deque
  • 플랫(Flat, 한 개의 자료형) Ex) str,bytes,bytearray,array,memoryview
  • 가변: list,bytearray,array,memoryview,deque
  • 불변: tuple, str, bytes
  • 리스트 및 튜플 고급에 대해서 배웠다
  • 클래스 속성 중에 __iter__가 있으면 해당 데이터 반복문에서 사용할 수 있다

Part 01 

  • 지능형 리스트(Comprehending Lists) 구현 여러개

1.  

 

2. 반복문 리스트 안에 넣어서 구현 

 

3. 지능형 리스트 + Map, Filter

 

  • Generator 생성 (장점 검색해보기) / Generator: 한 번에 한 개의 항목을 생성(메모리 유지x)

  • 출력 결과 (array를 리스트로 변환할 때는 .tolist())

 

  • Generator 예제1

  • 출력 결과  (for문이 반복되는 건데 왜 한줄로 출력이 되는걸까?)

  • 예제2 

- 결과는 A1~A20, B1~B20,C1~C20,D1~D20 가 하나씩 출력됨 

 

  • 리스트 깊은 복사/ 얕은 복사 
  • 구현

-mark1과 mark2의 결과가 같아보이지만 수정시에 차이점이 발생한다

-mark1[0][1]만 변경되고 있지만, mark2[0][1]은 모든 원소의 1번 인덱스가 다 변경되었다. 이럴 경우 원하지 않는 데이터가 변경될 수 있으므로 사용시에 주의해야함. 되도록이면 mark1의 방식을 이용하도록 

  • 복사 방식 다름 증명

 

Part 02

  • list vs Array 적합한 사용법 설명
  • 리스트 기반: 융통성, 다양한 데이터 타입 사용 가능, 범용적 사용
  • 숫자 기반: 배열(리스트와 거의 호환)
  • divmod 와 unpacking  
  • 출력 결과 

 

  • Mutable(가변) vs Immutable(불변)
  • 튜플 아이디 계속 변하고 리스트는 연산자의 활용에 따라 자기 자신에 할당해서 아이디 동일하다 

 

  • 출력 결과

 

Chapter 03

Part 01

  • 매직메소드: 개인의 목적에 맞게 구현된 메소드를 지칭
  • 클래스 안에 정의할 수 있는 특별한(built-in) 메소드
  • 파이썬의 핵심: 시퀀스(sequence), 반복(iterator), 함수(function), 클래스(class)
  • 공부한 날짜: 2021.11.15

 

  • n=100 \n print(type(n) : 변수 하나도 클래스이다

 

  • 클래스 예제 #1

Fruit class 구현

 

  • 인스턴스 생성 및 출력 

 

  • 첫번째 인스턴스가 self로 들어가고, 두번째거가 파라미터 x로 들어감

- print(s1._price + s2._price) 이렇게 길게 쓰지 않아도 연산하가능하게 하는 매직메소드. 아주 유용하다!

 

Part 02 

  • Vector Class 구현 

 

- object는 굳이 안 써도 됨

-*arg 사용

-예외처리 꼭 해주기!!

 

  • Vector 인스턴스 생성

 

  • 매직 메소드: 개인의 목적에 맞게 구현된 메소드 (정의 여러번 반복하기)
  • 메소드 주석 정보 불러오기(__doc__)

 

  • 연산 

 

Part 03

  • 두 점 사이의 거리 구하는 공식 구현

 

  • 네임드 튜플

 

  • 네임드 튜플 이용해서 두 점 사이의 거리 구하기 

 

  • 네임드 튜플 선언 방법 
  • 네임드 튜플 : 데이터 모델에서 알아야할 개념, 인덱스/ 키로 접근 가능하다. 클래스 객체 상태로 래핑된다 
  1. 리스트로 선언
  2. 컴마로 선언(사용하는 사람 꽤 많음. 3번으로 하면 실수할 가능성 있음)
  3. 띄어쓰기로 선언
  4. class, rename 으로 선언(좀 더 찾아보기)

 

 

  • 객체 생성
  • 객체: 파이썬의 데이터를 추상화
  • 모든 객체 -> id, type ->value

'Dev Language > Python' 카테고리의 다른 글

[파이썬 중급] #3_2 시퀀스  (0) 2021.11.16
[파이썬 중급] #3_1 시퀀스  (0) 2021.11.16
[파이썬 중급] #1 클래스& 메소드 심화  (0) 2021.11.15
[파이썬 기초] #5  (0) 2021.11.15
[파이썬 기초] #4  (0) 2021.11.15

Chapter02. 클래스 & 메소드 심화(part01~03)

 

  • 객체지향 프로그래밍의 장점: 코드의 재사용, 유지보수, 코드 중복 최소화, 대형프로젝트에 적합
  • 공부날짜: 2021.11.14

Part 01

  • 일반적인 코딩: 일일이 다 입력해야함 

 

  • 리스트 구조 : 관리하기가 불편하고, 인덱스 접근 시 실수 가능성이 있고 인덱스를 알아야하므로 삭제가 불편하다

 

  • 딕셔너리 구조는 코드 반복 지속, 중첩문제(키), 키 조회 예외 처리 등에 사용할 수 있다 

 

  • 클래스 구조:  구조 설계 후 재사용성 증가, 코드 반복 최소화, 메소드를 활용하는 특징이 있다

 

 

Part 02

  • 인스턴스의 네임스페이스에 없으면 상위에서 검색
  • 동일한 이름으로 변수 생성 가능(인스턴스 검색 후 상위(클래스/부모클래스 변수 )로 이동
  • Car class 구현

- 클래스 변수는 모든 인스턴스가 공유한다(중요!!)

-self의 의미: 인스턴스의 고유한 정보를 저장하기 위해 self를 입력한다 

- 클래스 주석, 메소드 주석확인(__doc__())

- __init__을 부를 때마다 Car 클래스의 클래스 변수 car_count가 1씩 늘어난다는 얘기(?)

 

  • 인스턴스 생성 

  • 각 인스턴스 ID 확인 

 

  • 다른 인스턴스이므로 아이디 값이 다르다는 걸 확인

 

  • dir(instance): 인스턴스 속성들 보여줌. 속성의 값은 보여주지 않음
  • __dict__: 딕셔너리 형태로 키, 값 보여줌
  • __doc__: 주석 보여줌(클래스나 메소드)

 

  • 같은 클래스에서 만들어진 인스턴스의 클래스 값은 동일하다(당연)

  • 출력(클래스 이름, ID 동일)

  • 클래스 변수는 인스턴스로 부터 불러오나 클래스로 부터 불러오나 동일하다 

 

Part 03

  • Car Class 구현

  • Class Method 구현

- 인스턴스는 self, 클래스는 cls를 받는다

- cls.price_per_raise=per : 클래스 변수 price_per_raise에 입력된 파라미터 값. per를 대입한다

 

  • Static Method 구현

 

- 클래스와 관련이 있는 기능을 수행하는 역할이 필요하고, self,cls 안 받아도 될때 static method 이용

 

  • 인스턴스 생성

 

  • 인스턴스 정보(id, detail info)확인하기 

 

  • 가격 정보 출력(직접적인 방법/ 리스트로 불러오기)

- 직접적인 방법(첫번째)는 좋은 방법이 아님 되도록이면 두번째이용

 

  • 클래스 미사용/사용 해서 가격 변동 구하기 

1. 인상전 가격 출력 

2. 적용

왼쪽은 인상률이 바뀔때마다 새로 입력해줘야 하지만, 오른쪽 방법은  파라미터값만 변경하면 바로 계산할 수 있기 때문에 더 좋은 방법이다 

 

 

-끝-

'Dev Language > Python' 카테고리의 다른 글

[파이썬 중급] #3_1 시퀀스  (0) 2021.11.16
[파이썬 중급] #2 매직 메소드(스페셜 메소드)  (0) 2021.11.15
[파이썬 기초] #5  (0) 2021.11.15
[파이썬 기초] #4  (0) 2021.11.15
[파이썬 기초] #3  (0) 2021.11.15

공부한 날짜: 2021.10.2n

기록한 날짜: 2021.11.20 

 

  • 파이썬 내장 함수
  • 자주 사용하는 함수 위주로 실습/ 사용하다보면 자연스럽게 숙달 

 

  • all,any : iterable 요소 검사 (참, 거짓)

 

  • enumerate: 인덱스 + iterable 객체 생성!!

- for i, name in ['abc','bcd','deg'] \n print(i,name)이면 오류남. enumerate 이용하기 

 

 

  • filter : 반복 가능한 객체 요소를 지정한 함수 조건에 맞는 값 추출!!
  • 두가지 방식 모두 같은 결과값 출력 

 

  • map: 반복가능한 객체 요소를 지정한 함수 실행 후 추출 
  • 표현 방법 두가지 

 

  • round() : 반올림

 

  • sorted : 반복가능한 객체(Iterable)를 정렬 후 반환
  • 반복 가능한 객체: list, dictionary, tuple,set 무조건 외우기 

 

  • zip: iterable의 요소를 묶어서 반환/ zip함수는 tuple로 짝을 만들어서 반환 

 

 

외장함수

 

  • 예제1 

  • 예제2

  • 예제3

  • 예제4: open(), dump(), 'wb'

  • 예제5 : load()

 

  • 예제6 : os -> 환경 변수, 디렉토리(파일), 처리 관련, 운영체제 작업 관련

-mkdir, rmdir(비어있으면 삭제) , rename

 

  • 예제7 : getcwd() -> 현재경로

 

  • 예제8~11 : 시간 관련 함수 

 

  • 예제 12 : time.sleep()

 

  • 예제 13: random.random()/randint()/randarange()/shuffle()/choice()

 

  • webbrowser

 

파일 읽기  및  쓰기 

- r: 읽기 모드 / w: 쓰기 모드 / a : 추가모드 / t : 텍스트 모드 / b: 바이너리 모드 

- 상대 경로('../, ./'), 절대경로('users/hello/desktop...')

 

  • 예제1

 

  • 예제2

 

  • 예제3
 

 

  • 예제4

 

  • 예제5

 

  • write 예제

 

  • 예제1

 

  • 예제2

 

  • 예제3

 

  • 예제4

 

  • 예제5

'Dev Language > Python' 카테고리의 다른 글

[파이썬 중급] #2 매직 메소드(스페셜 메소드)  (0) 2021.11.15
[파이썬 중급] #1 클래스& 메소드 심화  (0) 2021.11.15
[파이썬 기초] #4  (0) 2021.11.15
[파이썬 기초] #3  (0) 2021.11.15
[파이썬 기초] #2  (0) 2021.11.15

+ Recent posts