파이썬

summereuna🐥·2024년 6월 9일
0

Python

목록 보기
1/8

파이썬

파이썬(Python)은 1991년 네덜란드계 소프트웨어 엔지니어인 귀도 반 로섬이 발표한 고급 프로그래밍 언어로,
인터프리터(통역)를 사용하는 객체지향 언어이자
플랫폼에 독립적인, 동적 타이핑(dynamically typed) 대화형 언어이다.

파이썬은 비영리의 파이썬 소프트웨어 재단이 관리하는 개방형, 공동체 기반 개발 모델을 가지고 있다.

개요


  • 파이썬은 초보자부터 전문가까지 사용자층을 보유하고 있다.
  • 동적 타이핑(dynamic typing) 범용 프로그래밍 언어로, 펄 및 루비와 자주 비교된다.
  • 다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부하여, 대학을 비롯한 여러 교육 기관, 연구 기관 및 산업계에서 이용이 증가하고 있다.
  • 또 파이썬은 순수한 프로그램 언어로서의 기능 외에도 다른 언어로 쓰인 모듈들을 연결하는 접착제 언어로써 자주 이용된다.
  • 실제 파이썬은 많은 상용 응용 프로그램에서 스크립트 언어로 채용되고 있다.
  • 도움말 문서도 정리가 잘 되어 있으며, 유니코드 문자열을 지원해서 다양한 언어의 문자 처리에도 능하다.

파이썬은 기본적으로 해석기(인터프리터) 위에서 실행될 것을 염두에 두고 설계되었다.

주요 특징

  • 동적 타이핑(dynamic typing). (실행 시간에 자료형을 검사한다.)
  • 객체의 멤버에 무제한으로 접근할 수 있다. (속성이나 전용의 메서드 훅을 만들어 제한할 수는 있음.)
  • 모듈, 클래스, 객체와 같은 언어의 요소가 내부에서 접근할 수 있고, 리플렉션을 이용한 기술을 쓸 수 있다.

해석 프로그램의 종류

  • Cython: C로 작성된 인터프리터.
  • 스택리스 파이썬: C 스택을 사용하지 않는 인터프리터.
  • 자이썬: 자바 가상 머신용 인터프리터. 과거에는 제이파이썬(JPython)이라고 불렸다.
  • IronPython: .NET 플랫폼용 인터프리터.
  • PyPy: 파이썬으로 작성된 파이썬 인터프리터.

기타 특징

  • 현대의 파이썬은 여전히 인터프리터 언어처럼 동작하나 사용자가 모르는 사이에 스스로 파이썬 소스 코드를 컴파일하여 바이트 코드(Byte code)를 만들어 냄으로써 다음에 수행할 때에는 빠른 속도를 보여 준다.

  • 파이썬에서는 들여쓰기를 사용해서 블록을 구분하는 독특한 문법을 채용하고 있다.
    이 문법은 파이썬에 익숙한 사용자나 기존 프로그래밍 언어에서 들여쓰기의 중요성을 높이 평가하는 사용자에게는 잘 받아들여지고 있지만, 다른 언어의 사용자에게서는 프로그래머의 코딩 스타일을 제한한다는 비판도 많다.

  • 이 밖에도 실행 시간에서뿐 아니라 네이티브 이진 파일을 만들어 주는 C/C++ 등의 언어에 비해 수행 속도가 느리다는 단점이 있다.
    그러나 사업 분야 등 일반적인 컴퓨터 응용 환경에서는 속도가 그리 중요하지 않고, 빠른 속도를 요하는 프로그램의 경우에도 프로토타이핑한 뒤 빠른 속도가 필요한 부분만 골라서 C 언어 등으로 모듈화할 수 있다(ctypes, SWIG, SIP 등의 래퍼 생성 프로그램들이 많이 있다).
    또한 Pyrex, Psyco, NumPy 등을 이용하면 수치를 빠르게 연산할 수 있기 때문에 과학, 공학 분야에서도 많이 이용되고 있다. 점차적인 중요성의 강조로 대한민국에서도 점차 그 활용도가 커지고 있다.

파이썬의 기능과 철학


파이썬은 다양한 프로그래밍 패러다임을 지원하는 언어이다. 객체 지향 프로그래밍과 구조적 프로그래밍을 완벽하게 지원하며 함수형 프로그래밍, 관점 지향 프로그래밍 등도 주요 기능에서 지원 된다.

파이썬의 핵심 철학

  • "아름다운 게 추한 것보다 낫다." (Beautiful is better than ugly)
  • "명시적인 것이 암시적인 것 보다 낫다." (Explicit is better than implicit)
  • "단순함이 복잡함보다 낫다." (Simple is better than complex)
  • "복잡함이 난해한 것보다 낫다." (Complex is better than complicated)
  • "가독성은 중요하다." (Readability counts)

파이썬은 언어의 핵심에 모든 기능을 넣는 대신, 사용자가 언제나 필요로 하는 최소한의 기능만을 사용하면서 확장해나갈 수 있도록 디자인되었다.

파이썬의 자료형


파이썬은 다음과 같은 자료형들을 갖고 있다.

1. 기본 자료형:

  • 정수형
  • 긴 정수형(long integer) - 메모리가 허락하는 한 무제한의 자릿수로 정수를 계산할 수 있다. 파이썬 3 버전에서는 사라지고, 대신 정수형의 범위가 무제한으로 늘어났다.
  • 부동소수점형
  • 복소수형
  • 문자형
  • 유니코드 문자형
  • 함수형
  • 논리형(boolean)

2. 집합형 자료형:

  • 리스트형 - 내부의 값을 나중에 바꿀 수 있다.
  • 튜플(tuple)형 - 한 번 값을 정하면 내부의 값을 바꿀 수 없다.
  • 사전형 - 내부의 값을 나중에 바꿀 수 있다.
  • 집합형 - 중복을 허락하지 않는다. 변경 가능하게도, 변경 불가능하게도 만들 수 있다.

또 많은 객체 지향 언어와 같이, 사용자가 새롭게 자신의 형을 정의할 수도 있다.

파이썬은 동적 타이핑의 일종인 덕 타이핑을 사용하는 언어이기 때문에, 변수가 아닌 값이 타입을 가지고 있고, 변수는 모두 값의 참조(C++의 참조)이다.

파이썬3의 내장 자료형 요약 표

종류설명문법
int이뮤터블(immutable)정수로서 크기는 무제한42
float이뮤터블(immutable부동소수점 수 (시스템 정의 정밀도)3.14159265358979
complex이뮤터블(immutable)복소수. (실수와 허수)3+2.7j
bool이뮤터블(immutable)진리값. (불린)True
False
str이뮤터블(immutable)문자열: 일련의 유니코드 코드포인트'Wikipedia'
"Wikipedia"

"""Spanning
multiple
lines"""
bytes이뮤터블(immutable)일련의 바이트.b'Some ASCII'
b"Some ASCII"
bytes([119, 105, 107, 105])
bytearray뮤터블(mutable)일련의 바이트.bytearray(b'Some ASCII')
bytearray(b"Some ASCII")
bytearray([119, 105, 107, 105])
list뮤터블(mutable)목록, 리스트.
혼합 형태를 포함할 수 있다.
[4.0, 'string', True]
tuple이뮤터블(immutable)(불변) 목록.
혼합 형태를 포함할 수 있다.
(4.0, 'string', True)
set,
frozenset
뮤터블(mutable),
이뮤터블(immutable)
순서가 정해지지 않은
집합. 중복 허용 안 함.
{4.0, 'string', True}
frozenset([4.0, 'string', True])
dict뮤터블(mutable)연관 배열 목록. (키와 값 목록){key1: value1, key2: value2}

동작하는 플랫폼


첫 파이썬 버전은 매킨토시에서 사용할 목적으로 개발되었지만, 지금은 다양한 플랫폼에서 동작한다.

  • 마이크로소프트 윈도우(9x/NT 계열은 최신판, 3.1 및 MS-DOS는 옛 버전만)
  • 매킨토시(맥 OS 9 이전, 맥 OS X 이후 포함)
  • 각종 유닉스
  • 리눅스
  • 팜 OS
  • 노키아 시리즈 60

하지만 안드로이드/iOS에서는 동작하지 않는다.
또한 동작이 되도록 만들 가능성도 적어보인다.

사용현황


파이썬은 많은 제품이나 기업 및 연구기관에서 쓰이고 있다. 대표적인 몇 가지는 다음과 같다.

파이썬으로 작성된 자유-오픈 소스 소프트웨어

아나콘다(Anaconda)
비트토렌트(BitTorrent)
모인모인(MoinMoin Wiki)
플러커(Plucker)
포티지(Portage)
파이솔(PySol)
뷰CVS(ViewCVS)
Zope / Plone
Trac
장고 (웹 프레임워크)
드롭박스(Dropbox)

파이썬을 내부적으로 사용하는 소프트웨어

softimage|xsi (3D 애니메이션 소프트웨어)
잉크스케이프(Inkscape)
페인트샵 프로(Paint Shop Pro)
문명 IV
셰이드(Shade)
TRIBON (3D CAD 소프트웨어)
오토데스크 마야 (3D 애니메이션 소프트웨어)
MotionBuilder (3D 애니메이션 소프트웨어)
Softimage (3D 애니메이션 소프트웨어)
Cinema 4D (3D 애니메이션 소프트웨어)
BodyPaint 3D (3D 애니메이션 소프트웨어)
Blender 3D (3D 애니메이션 소프트웨어)
Sidefx Houdini (3D 애니메이션 소프트웨어)
Abaqus (유한요소해석 소프트웨어)
TORRENT (공유프로그램)
Rhino 3D CAD (3D 모델링 소프트웨어)
카카오톡 (모바일/PC 메신저)
MODO 3D (3D 모델링 소프트웨어)

파이썬을 이용하고 있는 기업·정부 기관

야후
구글
유튜브
인더스트리얼 라이트 앤드 매직 (ILM)
미국항공우주국 (NASA)
미국 해양대기청 (NOAA)
카카오

실행 속도 향상 관련


저스트 인 타임 컴파일러: Psyco, PyPy
외부 함수 호출 라이브러리 : ctypes
파이썬 모듈 생성 언어 : 사이썬(Cython), Pyrex
Wrapper 생성 유틸리티 : SWIG, SIP, Boost.Python, F2PY, Pyfort, PyCXX, Babel, Modulator
수치 연산 라이브러리 : NumPy
병렬 처리 모듈: 다중 처리
기타 : PyInline, Weave, Py2Cmod, RPython, Shed Skin, doctest, VPython

출처: 위키피디아_파이썬

profile
Always have hope🍀 & constant passion🔥

0개의 댓글