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 |