츄르사려고 코딩하는 코집사입니다.
1. 파이썬
- 빠른 학습속도
- 명령의 수행 결과를 빠르게 확인 가능
- 확장기능 지원
- 다양한 플랫폼에서 사용 가능
- 성능에 영향을 미치는 부분은 C언어로 모듈화
- 여러 기관 및 산업계에서 사용
- 이용 분야 급격히 증가
- 빅데이터 분석, 머신러닝, 딥러닝, IoT
2. 파이썬의 역사와 종류
1) 파이썬 종류
- CPython C로 작성된 파이썬
- IronPython .net과 Mono용으로 C3구현
- Jython 자바로 구현된 파이썬, 자바가상머신에서 동작 자바 클래스, 자바 표준 라이브러리 사용 가능
- PyPy 파이썬으로 구현
3. 파이썬의 특징
- 인터프리팅망식 실행 결과를 대화형으로 바로 확인
- 동적타이핑 실행 시간 값에 의해 자료형 결정
- 가비지 컬렉터 생성된 객체에 대한 메모리 관리는 가비지 컬렉터 이용
- 가독성
- 풍부한 라이브러리 표준 라이브러리와 통합환경이 배포판과 함께 제공
- 정규 표현식
- 운영 체제의 시스템 호출
- XML 처리
- 직렬화
- 각종 통신 프로토콜
- 전자 메일이나 CSV파일의 처리
- 데이터베이스 접속
- 그래픽 사용자 인터페이스
- HTML 등
- 유니코드
- 오픈소스
- 다양한 프로그래밍 패러다임 지원
- 객체지향, 함수형 프로그래밍 지원
- 학습용이성
- 프로그램의 문서화도 언어의 기본 기능에 포함
- 도움말 문서와 API도 체계적으로 정리
- API(Application Programming Interface) : 운영체제가 제공하는 함수의 집합체
- 읽기 쉽고 효율적인 코드를 간단하게 쓰려는 철학 반영
- 내장스크립트언어
- 다른 언어로 쓰인 모듈을 연결하려는 목적으로 이용 많은 상용 프로그램에 내장되어 스크립트 언어로 활용
4. 2000년 10월 16일 파이썬 2.0버전
- 가비지 컬렉터와 유니코드 지원
- 개발 과정에서의 투명한 공동체 지원
5. 2008년 12월 3일 파이썬 3,0버전
- 2.x대 버전의 파이썬과 하위호환성이 없음
- 주요 기능 다수가 이전 버전과 호환되도록 파이썬 2.6과 2.7에 반영
6. 파이썬 2.x는 레거시(낡은 기술)이고, 파이썬 3.x가 파이썬의 현재와 미래가 될 것
7. 파이썬 2.0과 3.0의 차이점
- 파이썬 3.0은 2.x대 버전과 하위호환성 없음
- 내장자료형의 내부적인 변화 및 일부 자료형의 구성 요소 제거
- 표준 라이브러리의 패키지 재배치
- 향상된 유니코드 지원
- 3.0부터는 문자열처럼 표현
- 한글로 변수명을 사용하는 것이 가능
- print문의 print()함수로의 변화
8. 대표코드
- 유니코트 16비트
- 아스키코드 7비트
9. 유니코드
- 각 나라별 언어를 모두 표현하기 위해 만든 통합 코드체계
- 최대 65,536자를 표현 가능
10. 파이썬 2.0
- 가 표시 u"가"
11. 파이썬 3.0
가 표시 "가"
12. ord()함수가 반환한 정수값을 16진수로 변환
13. 파이썬의 활용 분야
- 빅데이터, 모바일, IoT, 인공지능 분야에서의 활용 급증
14. 파이썬의 인기 분야
- 웹 애플리케이션 개발 분야
- django, Flask 등
- django 회원가입, 사용자 인증 등 공통기능을 제공해 높은 개발 생산성 지원
- flask 파이썬용 마이크로 프레임워크 간단한 웹 서비스 또는 모바일 서버 구축에 적합
15. 데이터 수집 분야
- Beautiful Soup
- 웹크롤링 라이브러리
- 문서수집
- HTML 문서에 대한 구문 분석
- DOM 트리 탐색 등의 기능
- 문서 분석 및 정보 추출 기능
16. Scrapy
- 웹 크롤링 프레임워크
- 웹문서에서 데이터 추출 규칙 작성
- 문서 수집 및 필요 데이터 자동 추출
17. 데이터 과학 및 인공지능 분야
- numpy
- 과학 분야의 컴퓨팅을 위한 필수 패키지
- 강력한 다차원 배열 객체 지원
- 선형대수 기능
- 푸리에 변환 기능
- 난수 생성 기능
18. pandas
- 데이터 분석 시 사용하는 표준 라이브러리
- 강력한 데이터 구조와 다양한 분석 도구 제공
19. scipy
- 수학, 과학, 엔지니어링 분야에서 활용
20. scikit-learn
- 데이터 마이닝과 데이터 분석을 위한 도구
- 분류, 회귀, 군집, 차원축소와 같은 머신러닝 지원
21. Tensorflow
- 구글이 공개한 머신러닝 및 딥러닝 프레임워크
- GPU를 이용한 연산 지원
- 각종 신경말 모델을 쉽게 구현하도록 지원
22. pytorch
- 머신러닝 및 딥러닝 프레임워크
- GPU를 이용한 연산지원
- 간결한 코드
- 신경망 모델을 쉽게 구현하도록 지원
- 빠른 모델 훈련 시간
- 실시각으로 결과값 시각화
23. REPL(Read-Eval-Print-Loop) 방식의 파이썬 쉘 실행
24. 통합 개발 환경(Integrated Development Environment, IDE)
- 코딩을 위한 코드 편집기, 컴파일을 위한(혹은 인터프리터), 디버깅을 위한 디버거 등 프로그램 개발에 필요한 도구들이 하나의 프로그램 개발 환경으로 통합되어 개발 생산성을 높이는 소프트웨어
25. 파이썬 개발을 지원하는 오픈소스 IDE
- 파이참
- VScode
- PyDev
26. 디버깅
- 컴퓨터 프로그램의 정확성이나 논리적인 오류(버그)를 찾아내는 테스트 과정으로 효과적으로 수행하기 위해서는 자동화된 디버거 소프트웨어가 필요함
- 중단점 지정 -> 프로그램 실행정지 -> 메모리에 저장된 값 확인 -> 실행 재개, 코드 실행
27. 파이썬 코드 작성의 기본
- 들여쓰기
- 소스코드 인코딩
- 세미콜론
- 파일과 모듈
28. 들여쓰기
- 알기 쉬운 코드, 가독성이 좋은 코드를 만들기 위해 사용
- 띄어쓰기 4칸 or Tab -> 일상적으로 한 가지로 통일해서 사용
- 잘못된 들여쓰기가 검사되지 않으면 치명적인 버그 발생
29. 파일과 모듈
- 라이브러리 성격의 기능
- 프로그램의 진입점 역할
- if문을 작성하여 분기할 필요 있음
- 예를 들어, 아래의 코드는 소스코드가 메인으로 실행된 경우에만 실행되는 모듈
if __name__ == "__main__" :
print("Hello World!")
30. 리터럴(Literal)
- 소스코드 상에서 내장 자료형의 상수 값을 나타내는 용어
- 정수형, 부동소수점 숫자형, 문자열, 부울형, 리스트형 등
- 리터럴의 자료형을 확인할 때 type() 함수 사용
- 파이썬은 값에 의해 자료형이 결정되는 동적 타이핑 언어의 성격을 가짐
31. 숫자형
- 숫자 리터럴이 사용된 자료형
- 정수형(5), 부동소수점형(3.14), 허수형(3+2*i)
32. 정수형
- 정수형의 길이는 무제한이며, 메모리가 허용하는 범위까지 사용할 수 있음
- 0o177, 0o377 등 0o 접두어를 사용하여 8진수 사용
- 0xdeadbeef 등 0x 접두어를 사용하여 16진수 사용
- 0b100110111 등 0b 접두어를 사용하여 2진수 사용
- 0 뒤의 알파벳은 영어로 진수 표현 2진수는 binary 처럼
- 정수형 리터럴 내의 _는 무시됨
33. 부동소수점형
- 양과 음의 부동소수점 사용 가능
- 10. -> 10.0으로 출력되는 것처럼 소수부 생략 가능
- .001 -> 0.001로 출력되는 것처럼 정수부 생략 가능
- 매우 큰 수, 매우 정밀한 수를 표현하기 위해 지수 표기법 사용 가능
- 부동소수점 숫자형 리터럴 내의 _는 무시됨
34. 허수형
- 파이썬의 허수형은 j 접미사를 사용함
- 허수형 리터럴 내의 _는 무시됨
35. 문자열
- 문자들의 집합
- "", '' 를 사용하여 문자열 사용
- "안녕하세요" -> 5음절의 문자열로 문자열의 길이가 5
- 파이썬은 자료형으로서의 문자형은 제공하지 않음
- 문자열 내에서 '' 또는 ""를 사용하고 싶은 경우 " " 안에서는 '' 사용하거나 ' ' 안에서 "" 사용
- 아니면 이스케이프 시퀀스인 \' \' 또는 \" \" 사이에 문자열을 넣어 사용
- """ """ 또는 ''' ''' 를 사용하여 다중행으로 표현된 문자열을 생성할 수 있음
- \n 이스케이프 시퀀스를 통해 줄바꿈을 사용할 수 있음
36. 이스케이프 시퀀스
- 프로그램의 소스 코드 내에서 사용할 수 있도록 백슬래시(\) 기호와 조합해서 사용하는 사전에 정의해둔 문자 조합으로, 문자열의 출력 결과를 제어하기 위해 사용함
- 백슬래시 : \\
- 작은따옴표(') : \'
- 큰따옴표(") : \"
- 라인피드(LF, 줄바꿈) : \n
- 수평탭(TAB, 탭) - \t
37. 문자열 포맷팅
- 문자열 내에 사용된 문자열 표시 유형(문자열 포맷 코드)을 특정 값으로 변경하는 기법
- %-포맷팅, str.format() 함수를 이용한 문자열 포맷팅 제공
38. %-포맷팅을 사용한 문자열 포맷팅
- 's' : 문자열 포맷
- 'c' : 문자 포맷. 정수를 유니코드 문자로 변환해 출력
- 'd' : 10진 정수로 출력
- 'o' : 8진수로 출력
- 'x' : 16진수로 출력
- 'f' : 부동소수점 숫자로 출력. 소수점 이하 6자리의 정밀도를 기본값으로 가짐
- '%' : % 문자 자체를 출력
- "%10s" % "우측정렬" -> 문자열의 폭이 10, 정렬의 방향이 우측임
- "%-10s" % "좌측정렬" -> 문자열의 폭이 10, 정렬의 방향이 좌측임
- "%0.2f" % 3.141592 -> 부동소수점을 소수점 2자리까지 표시함
- "%10.2f" % 3.141592 -> 부동소수점을 소수점을 포함한 전체 자리수를 10으로 함
- "%010.2f" % 3.141592 -> 부동소수점을 소수점을 포함한 전체 자리수는 10, 소수점 이하 두 자리까지 표시하고, 앞의 남은 자리를 0으로 채움
39. str.format()함수를 이용한 문자열 포맷팅
- "이름 : {0}, 나이 : {1}세".format("홍길동", 20)
- str.format() 함수에서 잔달할 인자의 위치 인덱스는 0부터 시작함
- 해당 인자를 순차적으로 적용해 변환된 결과를 생성함
- "{0:<10}".format("좌측정렬") -> < 정렬의 방향이 좌측임을, 10은 출력할 문자열의 폭이 10을 의미
- "{0:^10}".format("중앙정렬") -> ^는 정렬의 방향이 중앙, 10은 출력할 문자열의폭이 10을 의미
- "{0:*^10}".format("중앙정렬") -> *는 공백을 채울 문자, ^는 정렬의 방향 중앙
-
40. 변수
- 어떠한 값을 저장하는 그릇
- 값을 저장할 때 사용하는 식별자
- 변수명 = 값
- 변수명은 문자, 숫자, _ 를 사용해 지정
- 변수명은 숫자로 시작하는 변수는 만들 수 없음
- Python 3.x부터는 한글로 변수 사용 가능
41. Bool
- 참, 거짓을 판단하는 표현식에 사용하는 자료형
- True와 False 값을 가짐
- 관계 연산자, 논리 연산자를 사용하는 표현식이 Bool 값 변환
42. Tuple
- ()안에 서로 다른 자료형의 값을 콤마(,)로 구분해 하나 이상 저장할 수 있는 컬렉션 자료형
- 0부터 시작하는 인덱스를 이용해 접근할 수 있음
- 한 번 저장된 항목은 변경할 수 없음
-
43. List
- [] 안에 서로 다른 자료형의 값을 콤마(,)로 구분해 하나 이상 저장할 수 있는 컬렌션 자료형
- 0부터 시작하는 인덱스를 이용해 접근할 수 있음
- 한 번 저장된 항목이라도 변경할 수 있음
44. Set
- {} 안에 서로 다른 자료형의 값을 콤마(,)로 구분해 하나 이상 저장할 수 있는 컬렉션 자료형
- 순서의 개념이 존재하지 않아 인덱스를 사용할 수 없음
- 데이터 항목의 중복을 허용하지 않음
- 집합의 개념을 가지고 있는 자료구조로 합집합 연산자 제공
45. Dictionary
- {} 안에 키 : 값 형식의 항목을 콤마로 구분해 하나 이상 저장할 수 있는 컬렉션 자료형
- 키를 이용해 값을 읽어 올 수 있음
- 항목 추가 - 동일키가 없으면 새로운 항목 추가
- 항목 추가 - 동일키가 있으면 저장된 항목 변경
- dogs["4"] = "알래스카말라뮤트"
46. None
- None 객체를 이용해 null 객체 상태를 표현함
47. Null
- 객체가 존재하지 않는 상태
48. 변수의 제거
- 가비지 컬렉터가 객체가 사용한 메모리 공간을 자동으로 관리하여 개발자가 메모리 관리를 직접할 필요 없음
49. 변수제거는 del() 함수로 사용
50. |
- 양변의 값 모두 0일 경우에만 0을 반환
51. ^
- 양변의 값이 다를 경우 1, 같을 경우 0을 반환
52. ~
- 비트 값이 1일 경우 0, 0일 경우 1을 반환
53. <<
- 좌변의 값을 우변의 값 만큼 비트를 왼쪽으로 이동
54. >>
- 좌변의 값을 우변의 값 만큼 비트를 오른쪽으로 이동
55. 산술 연산이 비트 연산보다 우선
56. 관계 연산이 논리 연산보다 우선
57.
'Language > Python' 카테고리의 다른 글
Python BeautifulSoup 라이브러리로 웹 크롤링 하기 (0) | 2021.07.28 |
---|---|
파이썬(Python) enumerate 정리 (0) | 2021.06.18 |
[Python] 파이썬 절대값 함수 abs() (0) | 2021.05.20 |
파이썬(Python) 대소문자 바꾸기 (0) | 2021.05.09 |
파이썬에서 진행표시바 표시하기 : tqdm (0) | 2020.12.15 |
파이썬 XGBoost 시각화(XGBoost Visualization) (0) | 2020.09.24 |
파이썬 다중 선형 회귀 분석 시각화(Multiple Regression Analysis) (10) | 2020.09.24 |
'cp949' codec can't decode byte 0xee in position 15: illegal multibyte sequence (0) | 2020.09.13 |
최근댓글