python 초보 탈출하고 싶다

조준수·2023년 2월 6일
0

점점 글이 짧아진다. 그만큼 시간이 좀 부족한 것 같기는 하다. 아직 초보니깐 그렇겠지. 어제 처음으로 문제를 풀면서 '좀 재밌네?'라는 생각이 들었다. 오늘은 문제를 많이 못 풀 것 같은데, 내일은 야무지게 풀어재껴야지.

중급 3

15 site-packages

  1. site-packages
    (1) site-packages에 있는 모듈은 어디서나 사용할 수 있다.
    (2) 디렉토리 - 파이썬파일로 만든 모듈을 디렉토리채로 venv - lib - site-packages로 옮기면 다른 디렉토리에서도 만든 모듈을 사용할 수 있다.

  2. sys 모듈
    (1) 시스템의 간략한 정보를 담고 있다.
    (2) sys.path는 모듈들이 들어있는 경로를 나열해주는 값들을 가지고 있다.

  3. venv
    (1) 독립적인 가상환경 설정을 구현하는 디렉토리다.

중급 4

16 자주 사용하는 모듈

  1. math 모듈
    (1) 절대값
    math.fabs(-10)
    (2) 올림
    math.ceil(5. 21)
    (3) 내림
    math.floor(5. 21)
    (4) 버림
    math.trunc(5. 21)
    (5) 최대공약수
    math.gcd(14, 21)
    (6) 팩토리얼
    math.factorial(10)
    (7) 제곱근
    math.sqrt(4)

  2. random 모듈
    (1) 난수
    random.randint()
    (2) 지정한 숫자만큼의 요소들을 랜덤으로 뽑아 리스트로 반환
    random.sample()

  3. time 모듈
    (1) 현재 시간
    it = time.localtime()
    (2) time.localtime()에서 원하는 것만
    it.tm_year(mon·mday·wday·hour·min·sec)

17 객체지향 프로그래밍

  1. 객체지향 프로그래밍
    (1) 객체를 이용한 프로그램이다.
    (2) 객체는 속성과 기능으로 구성된다.

  2. 객체 만들기
    (1) 객체는 클래스에서 생성된다.
    (2) 클래스에서 속성과 기능을 정의한다.
    (3) 클래스를 하나 만들었다 하더라도 객체는 여러개를 만들 수 있다.
    (4) 클래스는 붕어빵 틀이다.

  3. 객체 사용의 장점
    (1) 코드 재사용, 모듈화에 좋다.

18 클래스와 객체 생성

  1. 클래스 만들기
    (1) class 키워드 + 속성(변수) + 기능(함수)를 이용한다.
    (2) class 이름의 첫 글자는 대문자가 관례다.

  2. 객체 생성
    (1) 객체는 클래스의 생성자를 호출한다.
    (2) 호출 후 값을 넣어 속성을 초기화한다.

19 객체 속성 변경

중급 5~6

20 객체와 메모리

  1. 객체와 메모리
    (1) 객체는 메모리에 존재한다.
    (2) 변수와 객체는 다른 공간에 존재한다.
    (3) 생성자를 호출하고 객체에 접근하기 위한 변수를 만들면 객체가 변수에게 객체의 메모리 주소를 보내고 변수는 이 주소를 통해 객체를 찾아가서 속성이나 기능을 변경한다.
    (4) 변수를 레퍼런스 변수라고도 한다.

21 얕은 복사와 깊은 복사

  1. 얕은 복사
    (1) 객체 주소만 복사하는 것이다.

  2. 깊은 복사
    (1) 객체 자체를 복사하는 것이다. 또 하나의 객체가 만들어진다.
    (2) copy 모듈을 사용한다.
    (3) 예시
    tc1 = TemCls(10, 'Hello')
    tc2 = copy.copy(tc1)

  3. id( ) 함수
    (1) 할당한 메모리 주소값을 알 수 있다.

  4. 리스트의 깊은 복사
    (1) for문과 append( )를 이용하면 된다.
    (2) extend( )를 이용하면 된다.
    (3) 리스트 내 깊은 복사를 하는 .copy( ) 함수를 이용한다.
    (4) [ : ]을 이용한다.

22 클래스 상속

  1. 상속이란?
    (1) 클래스는 또 다른 클래스를 상속해서 내 것처럼 사용할 수 있다.
    (2) 예시
    class NomalCar:
    class TurboCar(NomalCar):

23 생성자 (01)

  1. init( )
    (1) 속성을 초기화 한다.

  2. 상위 클래스의 속성 초기화
    (1) 하위 클래스의 init( ) 코드 바로 밑에 상위 클래스의 init( ) 코드를 가져온다.
    (2) 예시
    class C_Class(P_Class):
     def init(self, cNum1, cNum2):
      print('[C_Class] init( ) called!!')
      P_Class.init(self, cNum1, cNum2)
    (3) super( ).init(cNum1, cNum2)

24 생성자 (02)

25 다중 상속

  1. 다중 상속
    (1) 2개의 이상의 클래스 상속할 수 있다.
    (2) 하지만 너무 남발하지는 말아야 한다. 중복된 코드 때문에 헷갈릴 수 있다.

26 오버라이딩

  1. 오버라이딩
    (1) 하위 클래스에서 상위 클래스의 메서드를 재정의 한다.

27 추상클래스

  1. 추상클래스
    (1) 상위 클래스에서 하위 클래스에 메서드 구현을 강요한다.
    (2) 예시
    from abc import ABCMeta
    from abc import abstractmethod
    class AirPlane(metaclass=ABCMeta):
    @abstractmethod
    def. flight(self):
          pass
    (3) 추상클래스를 쓰는 목적인 각자 알아서 입맛에 맞게 써라는 의미다.

28 예외란?

  1. 예외란?
    (1) 문법적인 문제는 없지만 ZeroDivisionError 같은 실행 중 예상하지 못한 문제를 말한다.
    (2) 예외 관련 클래스는 Exception 클래스를 상속한다.

중급 7

29 예외 처리

  1. 예외 처리
    (1) 발생한 예외에 대해 별도 처리한다.
    (2) 예외가 프로그램 전체 실행에 영향이 없도록 한다.

  2. try : ~ except :
    (1) 예외가 예상되는 코드를 위 아래로 감싸 예외 처리를 한다.

30 try ~ except ~ else

  1. ~ else :
    (1) 예외가 발생하지 않은 경우 실행한다.

31 finally

  1. finally :
    (1) 예외가 발생해도 무조건 실행한다.

32 Exception 클래스

  1. 예외 담당 클래스
    (1) 예시
    except Exception as e:
    print(f'exception: {e}')

  2. raise 키워드
    (1) 예외가 예상되는 곳에 직접 예외를 발생시킬 수 있다.

profile
print(‘안녕하세요! 반갑습니다!’)

0개의 댓글