프로그래밍을 하기위해 언어들을 찾아보고 어떤 언어를 공부해야 할까 고민을 많이 할것입니다.
이번 포스팅에서는 파이썬에 대해 알아보겠습니다.
파이썬은 1980년대에 귀도 반 로섬이 고안한 프로그래밍 언어입니다.
독립적이고, *인터프리터 방식의 객체지향이고, 동적이며 대화형 성격을 가진 프로그래밍 언어입니다.
인터프리터란? 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다. 원시 코드를 기계어로 번역하는 컴파일러와 대비된다. |
파이썬의 어원 : 귀도 반 로섬이 좋아하는 프로그램인 Monty Python's Flying Circus에서 따왔습니다.
파이썬 로고는 비단뱀의 모형을 따와 만들었습니다.
파이썬의 종류
종류 | 언어 |
Cpython(표준) | C언어로 만들어진 파이썬 |
IronPython | .Net과 Mono용, C#으로 구현 |
Jython | Java로 만들어졌으며, 자바가상머신에서 동작하며 자바클래스, 자바 표준 라이브러리 사용이 가능 |
PyPy | Python으로 구현됨 |
파이썬의 핵심 철학
Beautiful is better than ugly(아름다운 것이 추한 것보다 낫다) |
Explicit is better than implicit(명시적인 것이 묵시적인 것보다 낫다) |
Simple is better than complex(단순한 것이 복잡한 것보다 낫다) |
Complex is better than complicated(복잡한것이 난해한 것보다 낫다) |
Readability counts(가독성이 중요하다) |
파이썬의 특징
인터프리팅 방식 -> 명령의 실행결과를 대화형으로 바로 확인 |
동적타이핑(dynamic typing) -> 실행 시간 값에 의해 자료형 결정 |
Garbage Collector -> 생성된 객체에 대한 메모리 관리는 가비지 컬렉터를 이용한다. |
가독성 -> 코드 들여쓰기를 이용한 가독상 향상 |
풍부한 라이브러리 ->표준라이브러리와 통합 환경이 배포판과 함께 제공됨 ->정규표현식, CSV파일처리, 운영체제 시스템콜, 데이터베이스접속, GUI, XML처리, 직렬화, 통신프로토콜, TML, 파이썬 구문분석 등 |
문자열은 기본적으로 유니코드 기반 |
오픈소스 -> 파이썬 소프트웨어 재단에서 관리하며 무료처럼 사용가능 |
다양한 프로그래밍 패러다임 지원 - > 객체지향, 함수형 프로그래밍 지원 |
학습 용이성 -> [프로그래밍 문서화]도 언어의 기본 기능에 포함, 문서와, API도 체계적으로 정리, 일ㄹ기 쉽고 효율적인 코드를 간단하게 쓰려는 철학이 반영되어 있음 |
내장 스크립트 언어 -> 다른 언어로 쓰인 모듈을 연결하려는 목적으로 이용됨, 많은 상용 프로그램에 내장되어 스크립트 언어로 활용되고 있음 |
파이썬 버전
파이썬 2.0 : 2000년 10월 16일에 발표, 가비지컬렉터와 유니코드를 지원, 개발과정에서의 투명한 공동체 지원 |
파이썬 3.0 : 2008년 12월 3일 발표, 2.x 대 버전의 파이썬과 하위 호환성이 없음, 주요 기능 다수가 이전버전과 호환되도록 2.6~2.7버전에 반영됨 |
파이썬 문서에서는 파이썬 2.x 버전은 낡은 기술이고 파이썬 3.x가 파이썬의 현재와 미래가 될것이라며 파이썬을 시작할 때는 파이썬 3로 시작할 것을 권고하고 있습니다. |
2.0과 3.0의 차이점
내장 자료형의 내부적인 변화 및 일부 자료형의 구성 요소 제거 |
표준 라이브러리의 패키지 재배치 |
향상된 유니코드 지원 |
한글로 변수명을 사용하는 것이 가능해짐(그렇지만 추천하지 않습니다.) |
출력을 위한 print문이 print()함수로 변화함 |
파이썬의 인기 분야
웹 분야 | django(회원가입, 사용자 인증 등 공통기능을 제공, 높은 개발 생산성 지원) Flask(간단한 웹 서비스 또는 모바일 서버 구축) |
데이터 수집 | Beautiful Soup(웹 크롤링 라이브러리) -> 문서수집 ,HTML문서 구문 분석, DOM트리탐색, 문서분석 및 정보추출 |
Scrapy(웹 크롤링 프레임워크) -> 웹 문서에서 데이터 추출 규칙 작성, 문서 수집 및 필요 데이터 자동 추출 | |
데이터과학 및 인공지능 분야 | Numpy : 다차원 배열 객체지원, 선형대수, 푸리에 변환, 난수생성 등 |
pandas : 데이터 분석 표준 라이브러리 -> 다양한 분석도구 제공, 강력한 데이터 구조 | |
Scipy : 수학, 과학, 엔지니어링 분야에서 활용 | |
Scikit-learn : 데이터 마이닝과 데이터 분석을 위한 도구 -> 분류, 회귀, 군집, 차원축소와 같은 머신러닝 지원 | |
Tensorflow : 머신러닝 및 딥러닝 프레임워크 -> GPU연산지원, 각종 신경망 모델 구현 지원 | |
Pytorch : GPU 연산지원, 간결한 코드, 신경망 모델 구현 지원, 빠른 모델훈련 시간, 실시간 결과 시각화 |
파이썬의 장점 :
1. 빠른학습속도
2. 명령의 수행결과를 빠르게 확인가능
3. 확장 기능 지원
4. 다양한 플랫폼에서 사용 가능
단점 : C, C++ 보다 수행속도가 느리다.
사용분야 : 빅데이터 분석, 머신러닝, 딥러닝, IoT등등, 웹크롤링 등등
'프로그래밍언어 > Python' 카테고리의 다른 글
파이썬 - 흐름과 제어(반복) (0) | 2020.01.16 |
---|---|
파이썬 - 웹데이터 가져오기 (0) | 2020.01.15 |
파이썬 - 흐름과 제어(조건문) (0) | 2020.01.15 |
파이썬 - 연산자(산술, 대입, 관계, 논리, 비트연산자 , 우선순위) (0) | 2020.01.14 |
파이썬 - 변수란 무엇인가? (0) | 2020.01.13 |
댓글