Python 기초 이론

2023. 7. 31. 08:51개발/Python

728x90
반응형

Python

특징

  • Python 인터프리터 언어이며, 동적타이핑 언어이다.
  • 객체지향언어
  • 간결하고 단순
  • 생산성이 좋다.

list와 tuple 차이점

  • list 데이터 변경가능 tuple은 불가능.

list 음수 인덱스 사용시

  • list[-1] 시 가장 오른쪽 값을 가져온다.

pass 와 continue의 차이

  • pass는 문법 오류를 막기 위함이고 continue는 반복문에서 다음 인터레이션으로 넘어가기 위함으로 사용.

Python 현재 디렉토리 확인 방법

  • os 라이브러리 사용하여 getcwd 메소드를 사용.

Python 빌트인 함수 종류

  • format : 문자열 삽입
  • complex : 복소수를 만듬
  • eval : 나누기
  • filter : 조건문을 사용하여 필터
  • hash : 해시 함수안 객체를 해시
  • hex : 16진수 변경
  • len : 문자열, 컨테이너 객체 길이
  • open : 파일 오픈
  • min : 최소값
  • max : 최대값
  • abs : 절대값
  • sum : 합
  • 등등

중복 제거가 필요한 리스트

  • set으로 변경하면 중복 제거 가능

컴파일 언어와 인터프리터의 언어의 차이점

  • 컴파일된 언어는 컴파일러를 통해 구현되며 소스를 코드를 기계어로 바꾸는 과정을 사전에 처리하여 빠르게 컴퓨터에서 구동될 수 있도록 하는 방법
  • 인터프리터 언어는 대부분 소스코드를 기계어로 컴파일하지 않고 인터프리터를 통해 소스코드 실행시 각 스테이트먼트(소스코드 구문)를 하나 이상의 서비루틴 순서로 변환한 후, 기계어나 바이트코드등 다른 언어로 변환되어 구현

.pyc 파일과 py 파일의 차이점

  • .pyc는 .py 파일의 컴파일된 버전으로 성능 향상을 위해 자동으로 생성.
  • .pyc 파일은 PVM에 의해 실행.

Python은 객체지향인 이유

  • Python은 객체 지향 프로그래밍 패러다임을 따르고 있으며 클래스와 인스턴스 중심으로 실행된다.
    • 객체 지향 프로그래밍 패러다임
      • 캡슐화, 추상화, 상속, 다형성, 데이터 숨기기

try … except … else 구문의 else

  • exception이 발생하지 않았을 경우 실행 구문

Python map() 함수의 역할

  • map() 함수는 2개의 인수를 받으며 첫 인수는 함수이고, 두번째 인수는 인터러블(iterable - 개별 원소를 반복적으로 셀수 있는 데이터 타입 - 리스트, 튜플)을 받는다.

decorator 란

  • 함수를 빠르게 변경하거나 재사용, 시작과 끝을 꾸며줄 수 있는 데이터를 사용할때 활용

Python의 메모리 관리

  • 개별적인 힙을 사용하여 메모리를 유지하며 힙은 모든 Python 객체와 자료구조를 가지고 있다. 해당 영역은 인터프리터만 접근이 가능하며 프로그래머는 사용할 수 없다. 사용하지 않은 메모리를 재활용하고 메모리를 지워 힙 스페이스에서 사용 가능케 하는 빌트인 가비지 컬렉터를 소유.

Lambda 와 Def의 차이점

  • Def는 다중 표현을 갖으며, Lambda는 단일 함수이다.
  • Def는 함수를 생성하고 이름을 지정하여 나중에 다시 호출한다. Lambda는 함수 객체를 구성하고 반환한다.
  • Def는 선언을 반환할 수 있지만, Lambda는 할 수 없다.

Docstring 이란

  • Python의 모듈, 함수, 클래스, 메소드의 정의에 처음 부부에 선언되는 유니크한 텍스트.

Python GIL(Global Interpreter Lock)

  • 멀티 스레딩은 스레드끼리 자원을 공유하는데, 하나의 자원을 동시에 여러 스레드가 가져가는 상황에서 충돌이 발생할 수 있다. CPU bound 코드에서 병렬성 연산을 수행하지 못하지만 Network I/O bound 코드에서는 멀티스레딩을 유의미하게 사용 가능하다.

멀티 프로세싱

  • GIL 정책에 의해서 CPU bound 코드에서는 멀티 스레딩에 제한이 있다. 멀티 프로세싱은 CPU bound 코드에서 병렬성을 지원하며 독립적인 메모리에 저장하고 있다.

iterators와 iterable 차이

  • iterable 의 의미는 member를 하나씩 차례로 반환 가능한 object를 말한다. iterable 의 예로는 sequence type인list, str, tuple 이 대표적이다.
  • Iterator 는 next() 메소드로 데이터를 순차적으로 호출 가능한 object 이다. 만약 next() 로 다음 데이터를 불러 올수  없을 경우 (가장 마지막 데이터인 경우) StopIteration exception을 발생시킨다.

generator 란

  • iterator를 생성하는 함수이며, yield 키워드를 사용하여 반환한다.
  • yeild와 retrun의 차이점은 종료되지 않고 그 상태를 유지하는 것.
  • memory를 효율적으로 사용할 수 있다.
    • 이유 : next() 메소드로 차례로 값을 접근하여 메모리에 올리기 때문.

PEP 8 이란

  • PEP 8은 파이썬 스타일 가이드이다. python 코드를 잘 작성하기 위한 가이드라인과 모범 사례들을 제공하며 일기 쉽고 눈에 보기 좋은 코딩 스타일을 장려한다.
728x90
반응형

'개발 > Python' 카테고리의 다른 글

FastAPI - 설치  (0) 2023.07.31
Python - Uvicorn  (0) 2023.07.31
Python - FastAPI  (0) 2023.07.31
Python Framework  (0) 2023.07.31
Python 3.11 이론, 실습  (0) 2023.07.31