반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


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. 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기