Do it! 첫 코딩 - 4장

2025. 2. 14. 21:25·리뷰/책
목차
  1. 클래스와 객체지향 프로그래밍
  2. 04-5 인스턴스 초기화와 생성자
  3. 04-5 클래스 확장과 상속
  4. 04-6 모듈과 패키지
  5. 04-7 파이썬에서 모든 것이 클래스
  6. 1. 값의 위치 찾기
  7. 2. 값의 개수 세기
  8. 3. 값 추가하기 (리스트 전용)
  9. 4. 값 삭제하기 (리스트 전용)
  10. 5. 순서 변경하기 (리스트 전용)
  11. 04-8 파이썬에서 모든 것이 클래스 (딕셔너리 활용)
  12. 1. Key 값만 뽑아내기
  13. 2. Value 값만 뽑아내기
  14. 3. Key 값으로 삭제하기
  15. 4. Key-Value 쌍 추가하기

클래스와 객체지향 프로그래밍

  1. 클래스(Class)

    • 클래스는 객체를 정의하는 설계도와 같은 역할을 함.
    • '객체지향형 프로그래밍(OOP)'은 클래스를 사용해 코딩하는 방식.
    • 비유: 도장은 클래스에 해당하며, 다양한 도장을 찍을 수 있는 설계도와 같음.
  2. 인스턴스(Instance)

    • 클래스를 기반으로 만들어진 실제 객체.

    • 비유: 도장이 클래스라면, 종이에 찍힌 도장 자국이 인스턴스. 도장은 동일해도 찍힌 날짜나 위치가 다를 수 있음.

    • 코드 예시:

      ​​참03호 = 참치선물세트() # 클래스 참치선물세트를 기반으로 인스턴스 참03호 생성 ​​참03호.일반 = 12 ​​참03호.야채 = 3 ​​참03호.고추 = 3
  3. 클래스와 인스턴스 선언 순서

    • 항상 클래스를 먼저 정의한 후, 인스턴스를 생성해야 함.
  4. 오브젝트(Object)와 인스턴스의 차이

    • 대부분의 경우 동일하게 사용.
    • 단, 하나의 오브젝트에 여러 이름이 붙을 경우, 인스턴스와 오브젝트는 구분될 수 있음.
  5. 클래스에 메서드 추가하기

    • 클래스 내에서 정의된 함수는 메서드(Method)라고 부름.

    • self 키워드: 클래스 자신을 참조하기 위한 예약어로, 클래스 내 변수에 접근할 때 사용.

    • 메서드 선언 및 사용:

      ​​class 참치선물세트(): ​​​​​​일반 = 0 ​​​​​​야채 = 0 ​​​​​​고추 = 0 ​​​​​​def 출력(self, 이름): ​​​​​​​​​​print('**', 이름, '**') ​​​​​​​​​​print('일반참치', self.일반) ​​​​​​​​​​print('야채참치', self.야채) ​​​​​​​​​​print('고추참치', self.고추) ​​​​​​def 출력2(self): ​​​​​​​​​​self.출력('참치선물세트') ​​참01호 = 참치선물세트() ​​참01호.일반 = 12 ​​참01호.야채 = 3 ​​참01호.고추 = 3 ​​참01호.출력2() # 결과: '참치선물세트'와 함께 참치 종류 출력
  6. 핵심 포인트

    • 클래스는 설계도, 인스턴스는 설계도를 기반으로 만들어진 객체.
    • 도장 비유: 도장이 클래스라면, 종이에 찍힌 도장 자국이 인스턴스.
    • self는 클래스 내에서 선언된 변수/메서드를 참조할 때 사용.
    • 클래스는 먼저 정의하고, 인스턴스를 생성해야 함.
    • 클래스 내부 메서드는 객체의 행동(기능)을 정의함.

04-5 인스턴스 초기화와 생성자

  1. 생성자 __init__()

    • 인스턴스를 생성할 때 초기 값을 설정하는 역할을 함.

    • 변수 초기화를 생성자에서 수행.

    • 코드 예시:

      ​​class 참치선물세트(): ​​​​​​def __init__(self, 일반, 야채, 고추): ​​​​​​​​​​self.일반 = 일반 ​​​​​​​​​​self.야채 = 야채 ​​​​​​​​​​self.고추 = 고추 ​​​​​​def 출력(self): ​​​​​​​​​​print('일반참치:', self.일반) ​​​​​​​​​​print('야채참치:', self.야채) ​​​​​​​​​​print('고추참치:', self.고추) ​​# 인스턴스 생성 및 초기화 ​​참01호 = 참치선물세트(12, 3, 3) ​​참01호.출력()
  2. 언더바 두 개 (__)의 의미

    • 파이썬에서 미리 정해진 특별한 메서드나 변수를 나타냄.
    • 예시: __init__(), __str__(), __len__().
  3. 파이썬에서 변수 선언

    • 파이썬은 변수를 미리 선언하지 않고 생성자에서 정의하는 방식을 선호.
    • 이는 파이썬의 immutable 특성 때문으로, 생성자에서 변수를 초기화하면 관련된 특이 현상을 피할 수 있음.
  4. 클래스 이름과 인스턴스 이름 구분

    • 클래스 이름: 보통 첫 글자를 영어 대문자로 작성.

    • 인스턴스 이름: 첫 글자를 영어 소문자로 작성.

    • 예시:

      ​​class TunaGiftSet: # 클래스 이름 ​​​​​​pass ​​tuna01 = TunaGiftSet() # 인스턴스 이름
  5. 핵심 포인트

    • 생성자 __init__()는 인스턴스 생성 시 값을 초기화함.
    • 파이썬에서는 변수 선언 없이 생성자에서 변수 정의를 선호.
    • 클래스 이름은 대문자로 시작, 인스턴스 이름은 소문자로 시작하여 구분.

04-5 클래스 확장과 상속

  1. 클래스 확장: 상속(Inheritance)

    • 상속이란?
      한 클래스(슈퍼클래스)의 속성과 메서드를 다른 클래스(서브클래스)가 물려받는 것.

    • 클래스 용어:

      • 슈퍼클래스(Superclass): 상속을 해주는 상위 클래스. #참치선물세트
      • 서브클래스(Subclass): 상속을 받는 하위 클래스. #특별세트
      • 비유: 부모 클래스(슈퍼클래스)에서 자식 클래스(서브클래스)로 유산을 물려주는 관계.
    • 코드 예시:

      ​​class 참치선물세트(): # 슈퍼클래스 ​​​​​​def __init__(self, 일반, 야채, 고추): ​​​​​​​​​​self.일반 = 일반 ​​​​​​​​​​self.야채 = 야채 ​​​​​​​​​​self.고추 = 고추 ​​​​​​def 출력(self, 이름): ​​​​​​​​​​print('**', 이름, '**') ​​​​​​​​​​print('일반참치', self.일반) ​​​​​​​​​​print('야채참치', self.야채) ​​​​​​​​​​print('고추참치', self.고추) ​​class 특별세트(참치선물세트): # 서브클래스 안에 있는게 슈퍼클래스 ​​​​​​def __init__(self, 일반, 햄, 카놀라유): ​​​​​​​​​​super().__init__(일반, 0, 0) # 슈퍼클래스의 생성자 호출 ​​​​​​​​​​self.햄 = 햄 ​​​​​​​​​​self.카놀라유 = 카놀라유
  2. 오버라이드(Override)

    • 오버라이드란?
      서브클래스에서 슈퍼클래스와 같은 이름의 메서드를 다시 정의하는 것.

    • 슈퍼클래스의 메서드 기능을 서브클래스에 맞게 변경 가능.

    • 코드 예시:

      ​​class 특별세트(참치선물세트): # 서브클래스 ​​​​​​def 출력(self, 이름): # 오버라이드된 출력 메서드 ​​​​​​​​​​super().출력(이름) # 슈퍼클래스의 출력 메서드 호출 ​​​​​​​​​​print('햄', self.햄) ​​​​​​​​​​print('카놀라유', self.카놀라유)
  3. 실행 예시:

    ​특01호 = 특별세트(6, 3, 2) ​특01호.출력('특별세트 01호')

    결과:

    ​** 특별세트 01호 ** ​일반참치 6 ​야채참치 0 ​고추참치 0 ​햄 3 ​카놀라유 2
  4. 핵심 포인트

    • 상속(Inheritance): 서브클래스가 슈퍼클래스의 속성과 메서드를 물려받음.
    • super() 사용: 슈퍼클래스의 생성자와 메서드를 호출할 때 사용.
    • 오버라이드(Override): 서브클래스에서 슈퍼클래스의 메서드를 재정의.
    • 서브클래스는 슈퍼클래스의 기본 기능을 확장하거나 변경 가능.

04-6 모듈과 패키지

  1. 모듈(Module)

    • 모듈이란?
      코드(클래스, 함수, 변수 등)를 별도의 파일로 저장하여 필요할 때마다 가져와 사용하는 것.
    • 사용 이유:
      • 코드 재사용성을 높임.
      • 프로그램 구조를 더 깔끔하고 관리하기 쉽게 만듦.
  2. 모듈에서 가져오기 (Import)

    • 특정 클래스, 함수, 변수를 가져오는 방법:

      ​​from 참치선물세트클래스 import 참치선물세트
    • 모듈 내 모든 내용을 가져오고 싶다면:

      ​​from 참치선물세트클래스 import *
  3. 패키지(Package)

    • 패키지란?

      • 여러 모듈을 하나로 묶은 디렉토리.
      • 패키지는 폴더처럼 구성되며, __init__.py 파일이 포함됨.
    • 예시:

      ​​import matplotlib.pyplot as plt # 패키지(matplotlib)의 모듈(pyplot)을 가져옴
  4. 별명(Alias) 사용

    • 긴 이름을 짧게 줄여 사용할 수 있음.

    • 예시:

      ​​import matplotlib.pyplot as plt # pyplot을 plt로 사용 ​​plt.plot([1, 2, 3], [4, 5, 6]) ​​plt.show()
  5. 핵심 포인트

    • 모듈: 파일 단위의 코드 묶음.
    • 패키지: 여러 모듈을 묶은 디렉토리.
    • import 문법:
      • 특정 클래스/함수/변수 가져오기: from 모듈명 import 대상명
      • 모듈 내 모든 내용 가져오기: from 모듈명 import *
      • 별명 사용: import 모듈명 as 별명

04-7 파이썬에서 모든 것이 클래스

  1. 파이썬의 특징
    • 파이썬은 모든 자료형을 클래스로 설계하여 사용자가 쉽게 다룰 수 있도록 함.
    • 문자열, 리스트, 딕셔너리 등 다양한 자료형에서 클래스 메서드를 활용 가능.

  1. 5가지 주요 메서드 기능

1. 값의 위치 찾기

  • .index(값)

    • 리스트에서 원하는 값의 첫 번째 위치(인덱스)를 반환.

    • 예시:

      ​​my_list = [1, 2, 3, 2] ​​print(my_list.index(2)) # 결과: 1

2. 값의 개수 세기

  • .count(값)

    • 리스트에서 특정 값이 몇 번 나타나는지 반환.

    • 예시:

      ​​my_list = [1, 2, 2, 3, 4] ​​print(my_list.count(2)) # 결과: 2

3. 값 추가하기 (리스트 전용)

  • .append(값): 리스트의 맨 뒤에 값 추가.

  • .extend([값1, 값2]): 리스트의 맨 뒤에 여러 값 추가.

  • .insert(위치, 값): 리스트의 원하는 위치에 값 삽입.

  • 예시:

    ​​my_list = [1, 2, 3] ​​my_list.append(4) # 결과: [1, 2, 3, 4] ​​my_list.extend([5, 6]) # 결과: [1, 2, 3, 4, 5, 6] ​​my_list.insert(2, 99) # 결과: [1, 2, 99, 3, 4, 5, 6]
  • 주의: append나 insert에 extend처럼 여러 값을 넣으면 리스트 안에 중첩 리스트가 생성됨.

    • 예시:

      ​​my_list = [1, 2] ​​my_list.append([3, 4]) # 결과: [1, 2, [3, 4]]

4. 값 삭제하기 (리스트 전용)

  • .remove(값): 리스트에서 특정 값을 찾아 삭제.

  • .pop(위치): 리스트에서 해당 인덱스 위치의 값을 삭제하고 반환.

  • 예시:

    ​​my_list = [1, 2, 3, 2] ​​my_list.remove(2) # 결과: [1, 3, 2] ​​my_list.pop(1) # 결과: [1, 2]

5. 순서 변경하기 (리스트 전용)

  • .reverse(): 리스트의 순서를 반대로 변경.

  • .sort(): 리스트의 값을 정렬 (오름차순 기본).

    • 내림차순 정렬: sort(reverse=True)
  • 예시:

    ​​my_list = [3, 1, 4, 2] ​​my_list.reverse() # 결과: [2, 4, 1, 3] ​​my_list.sort() # 결과: [1, 2, 3, 4] ​​my_list.sort(reverse=True) # 결과: [4, 3, 2, 1]

  1. 핵심 포인트
    • 파이썬의 모든 자료형은 클래스이므로 다양한 메서드를 제공함.
    • 리스트 전용 메서드: 값 추가, 삭제, 순서 변경 등 다양한 작업 가능.
    • 주의: .append()나 .insert()로 다차원 리스트가 생성될 수 있음.
    • 메서드 사용법을 이해하면 자료형을 효율적으로 다룰 수 있음.

04-8 파이썬에서 모든 것이 클래스 (딕셔너리 활용)

  1. 딕셔너리(Dictionary)의 특징
    • 딕셔너리는 key-value 쌍으로 데이터를 저장.
    • 리스트나 튜플처럼 순서가 아닌 키(key)로 값을 관리. 즉 방식이 다름.
    • 리스트와는 다른 메서드를 제공.

  1. 주요 딕셔너리 메서드

1. Key 값만 뽑아내기

  • .keys(): 딕셔너리의 키 값만 반환.

  • 리스트/튜플로 변환:

    ​​키값만 = 딕셔너리.keys() ​​키_리스트 = list(키값만) ​​키_튜플 = tuple(키값만)
  • 반복문 예시:

    ​​for 키값 in 딕셔너리.keys(): ​​​​​​print(키값)

2. Value 값만 뽑아내기

  • .values(): 딕셔너리의 값(value)만 반환.

  • 리스트/튜플로 변환:

    ​​벨류만 = 딕셔너리.values() ​​벨류_리스트 = list(벨류만) ​​벨류_튜플 = tuple(벨류만)
  • 반복문 예시:

    ​​for 벨류값 in 딕셔너리.values(): ​​​​​​print(벨류값)

3. Key 값으로 삭제하기

  • .pop(key): 딕셔너리에서 특정 키를 찾아 삭제.

    • 리스트처럼 인덱스로 삭제할 수 없으며, key를 사용해야 함.

    • 예시:

      ​​my_dict = {'이름': '홍길동', '나이': 30} ​​my_dict.pop('이름') # 결과: {'나이': 30}

4. Key-Value 쌍 추가하기

  • 딕셔너리에 새로운 key-value를 추가.

  • 구문:

    ​​딕셔너리[key] = value
  • 예시:

    ​​my_dict = {'이름': '홍길동'} ​​my_dict['주소'] = '서울시 송파구 삼전동' ​​print(my_dict) # 결과: {'이름': '홍길동', '주소': '서울시 송파구 삼전동'}

  1. 핵심 포인트
    • 딕셔너리는 key-value로 구성되며 순서가 아닌 key로 값에 접근.
    • .keys()와 .values()를 사용해 각각의 키와 값을 쉽게 가져올 수 있음.
    • .pop() 메서드로 key 값을 기준으로 삭제 가능 (value나 인덱스로 삭제 불가).
    • 새로운 key-value 쌍은 대입 연산자로 쉽게 추가.

반응형
저작자표시 비영리 변경금지 (새창열림)

'리뷰 > 책' 카테고리의 다른 글

[파이썬 코딩의 기술] - 2장 리스트와 딕셔너리  (0) 2025.02.14
[파이썬 코딩의 기술] - 1장 파이썬답게 생각하기  (0) 2025.02.14
Do it! 첫 코딩 - 5장  (0) 2025.02.14
Do it! 첫 코딩 - 3장  (0) 2025.02.14
Do it! 첫 코딩 - 2장 (컴퓨터는 어떻게 기억하고 행동할까?)  (0) 2025.02.14
  1. 클래스와 객체지향 프로그래밍
  2. 04-5 인스턴스 초기화와 생성자
  3. 04-5 클래스 확장과 상속
  4. 04-6 모듈과 패키지
  5. 04-7 파이썬에서 모든 것이 클래스
  6. 1. 값의 위치 찾기
  7. 2. 값의 개수 세기
  8. 3. 값 추가하기 (리스트 전용)
  9. 4. 값 삭제하기 (리스트 전용)
  10. 5. 순서 변경하기 (리스트 전용)
  11. 04-8 파이썬에서 모든 것이 클래스 (딕셔너리 활용)
  12. 1. Key 값만 뽑아내기
  13. 2. Value 값만 뽑아내기
  14. 3. Key 값으로 삭제하기
  15. 4. Key-Value 쌍 추가하기
'리뷰/책' 카테고리의 다른 글
  • [파이썬 코딩의 기술] - 1장 파이썬답게 생각하기
  • Do it! 첫 코딩 - 5장
  • Do it! 첫 코딩 - 3장
  • Do it! 첫 코딩 - 2장 (컴퓨터는 어떻게 기억하고 행동할까?)
생각 기록실
생각 기록실
AI(LLM)와 서비스 기획을 공부하며 작성하는 기술 블로그입니다. (feat. 영화리뷰를 곁들인..)
    반응형
  • 생각 기록실
    이러쿵 저러쿵
    생각 기록실
  • 전체
    오늘
    어제
  • 링크

    • Github
    • LindeIn
    • 분류 전체보기 (115)
      • 이러쿵 저러쿵 (5)
      • 정보통계 (7)
        • 데이터마이닝 (2)
        • 금융공학 (4)
      • IT (26)
        • Python (10)
        • AWS (5)
        • Github (2)
        • Project (8)
      • 리뷰 (29)
        • 영화 (22)
        • 책 (7)
      • 기타 (48)
  • hELLO· Designed By정상우.v4.10.3
생각 기록실
Do it! 첫 코딩 - 4장

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.