오픈 소스인 파이썬(Python)은 1991년 프로그래머인 귀도 반 로섬(Guido van Rossum) 이 발표한 고급 프로그래밍 언어로, 플랫폼에 독립적이다. C언어로 구현된 Cython 구현이 사실상의 표준이다.



특징


라이선스

- 비영리의 파이썬 소프트웨어 재단 라이선스의 개방형, 공동체 기반 개발 모델. (무료)


패러다임

 - 객체 지향 프로그래밍 / 구조적 프로그래밍 / 함수형 프로그래밍 / 관점 지향 프로그래밍 


동작하는 플랫폼

 - 윈도우/맥/유닉스/리눅스 등의 다양한 플랫폼에서 동작. (안드로이드/iOS 등 제외)


번역기

 - 런타임시 자료형을 검사하는 동적 타이핑(dynamically typed), 인터프리터(Interpreter)식 언어.

 - CPython / PyPy / Jython / IronPython / ... 등 다양한 인터프리터가 있음.


배포판 구성

- 운영 체제의 시스템 호출, 각종 통신 프로토콜, 파일 처리, 데이터베이스 접속, GUI, HTML, 파이썬 코드 구문 분석 도구 등을 포함


활용범위

- 시스템 유틸리티, C언어와 결합(glue), 데이터 분석, 사물 인터넷, GUI / 웹 / 데이터베이스 / 수치연산 등의 프로그래밍


라이브러리 저장소

- PyPI (Python Packages Index) 라는 공식 기구로부터 각종 라이브러리 저장소(repository) 관리


독특한 문법

 - 들여쓰기를 이용한 블록 구조를 제대로 작성하지 않으면 에러가 발생하며 자동화가 불가능하다.

 - 프롬프트에 >>> 표시는 입력받을 기본 상태 ... 은 구문이 끝나지 않은 상태로 구분할 수 있다.



Python2.x 와 3.x 버전의 변경사항


- 사전형과 문자열형과 같은 내장자료형의 내부적인 변화 및 일부 구형의 구성 요소 제거.

  (전반적으로 IDE 사용시 인터프리터에 따라 하이라이팅으로 구분 가능)

- 표준 라이브러리 재배치.

- Long Integer 가 사라지고 Integer 가 대신함

- u"문자열" 처럼 사용하던 유니코드를 "문자열" 로 표현

- 한글 변수 사용 가능.

- print 명령문이 print() 함수로 변경

- 2020년 1월 1일부로 python2.x 지원을 종료하였으므로 2.x 를 굳이 사용해야 할 이유가 없다면 3ㄱ.



설치/환경


- 공식홈페이지를 이용한 설치 : https://www.python.org/downloads/

- "python online" 등으로 검색하여 설치없이 웹브라우저에서 실시간 테스트 가능 : http://pythontutor.com/

- 프로젝트 작업시에는 단연 PyCharm 으로...

- pip / setuptools : 각종 라이브러리를 쉽게 사용할 수 있으므로 시스템에 존재하지 않는다면 추가 설치




그 외 둘러보기



자료형


bool

- True, False


NoneType

- None


List

- [] 로 빈 리스트를 만들거나 정수, 실수, 문자열들을 나열/혼합하여 리스트를 생성할 수 있다.

- 마이너스 인덱스를 사용하여 리스트의 끝 순서로 표현할 수 있다.

- [m:n], [n:], [:n] 등으로 구간 설정을 할 수 있다.


Tuple

- () 로 리스트와 동일하게 튜플을 생성할 수 있지만 수정이 불가능하다.

- 리스트보다 속도가 빠르다.


Dictionary

- {} 로 빈딕셔너리를 만들거나 키/값 쌍을 입력할 수 있으며, 인덱싱을 사용할 수 없다.


Set

- {요소} 나 set() 으로 생성가능, Dictionary 와 유사하지만 키가 없음, 중복 허용 불가



변수


- 파이썬은 256까지의 정수값(Integer) 을 메모리에 상주시켜 그 정수값을 바인딩하는 변수들의 메모리 주소(id) 는 같다. (임의의 정수값을 사용할 계획이라면 256 내의 값을 사용하는 것이 효율적... 이라고는 하지만...)



제어문


if 문

- if 조건 콜론(:) 과 들여쓰기로 구문 시작 및 elif / else 사용 가능.


for 문

- for 변수 in 범위 콜론(:) 과 들여쓰기 사용.


while 문

- while 조건 콜론(:) 과 들여쓰기 및 continue / break 사용 가능.


with 문

- [with 파일열기 as 변수명:]

- with 문이 끝나는 순간 파일 객체가 자동으로 close 됨.


exception

- try, except, finally 사용.



함수


- 함수구문 [def 함수명(매개변수):] 

- 함수 선언시 매개변수 앞에 *를 붙이면 매개변수의 개수는 제한이 없어지며 매개변수는 튜플 형태로 저장된다.

- 매개변수에 **를 붙이면 매개변수는 딕셔너리 형태로 저장된다.

- return 에 콤마(,)를 사용하여 여러 변수를 리턴하면 결과값은 튜플 형태로 반환된다.

- 함수 밖의 변수를 제어해야 할 때 global 명령어를 사용할 수 있다.

- 함수 호출시 매개변수명을 입력하여 값을 지정하는 것이 가능하다.

- 람다구문 [lambda 매개변수 : 표현식]



모듈


- 파이썬에서 모듈은 파이썬 설치시 함께 설치되는 라이브러리 모듈과 사용자가 재사용을 위해 만든 모듈이 있다.

- 모듈은 import 하여 불러와 사용할 수 있으며 from 모듈이름 import 함수이름 구문으로 직접 함수를 호출할 수도 있다.

- 모듈 경로가 PYTHONPATH 에 들어있거나, sys.path 에 들어있거나, 작업 파일 경로와 동일하면 import 할 수 있다.

- 패키지(디렉토리) 안의 모듈 접근은 도트(.)를 사용한다.

- 3.3 이전 버전에는 __init__.py 파일이 패키지마다 포함되지 않으면 에러가 발생한다.



클래스


- 빈 클래스를 만들기. class 클래스이름: pass

- 생성자 메소드는 __init__

- 클래스 상속. class 클래스 이름(상속할 클래스 이름): pass

- 클래스 변수는 하나의 메모리를 가지며 모든 객체에 공유된다. (클래스 변수를 수정하면 a,b,c 객체 모두 수정됨)



이 정도...




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,