Skip to content

파이썬 #

Find similar titles

34회 업데이트 됨.

Edit

Structured data

Category
Programming

개요 #

인터프리터식, 객체 지향(Object-oriented), 동적형결정(Dynamic typing) 스크립트 프로그래밍 언어 (Python)

쉽게 객체지향 프로그램을 만들 수 있다. 컴퓨터 과학 전 분야의 성능좋은 라이브러리들을 이용할 수 있다.

"파이썬"에는 두가지 의미가 있다.

  1. 프로그램 언어, 즉 추상적 언어 체계.
  2. 파이썬 언어를 이해하고 실행하는 기계. 이를 구현체(implementation)라고 한다.

다음과 같은 다양한 파이썬 구현체들이 존재한다.

  1. CPython: C로 만들어진 일반적인 파이썬 구현체. 보통의 Python은 CPython을 의미한다.
  2. Jython: 자바(Java)로 만들어진 파이썬 구현체. 자바 class 파일을 임포트하여 쓸 수 있다. 개발은 파이썬으로 하고, 운영환경은 자바로 하고 싶은 경우 유용하다.
  3. IronPython: C#으로 만들어진 파이썬 구현체. 각종 윈도우즈 프로그래밍(win32, .net)을 파이썬으로 할 수 있다.
  4. PyPy: 파이썬으로 만들어진 파이썬 구현체. JIT(Just In Time) 컴파일 기술을 도입하여 일반 CPython 보다 더 빠르게 동작한다. 2014-04-18 현재 CPython에 비해 6.3배 빠르게 동작한다.
  5. Pyston: PyPy가 tracing JIT 이라면 성능이 더 좋은 method-at-a-time JIT 기술을 써서 파이썬을 C++ 수준으로 빠르게 하려는 구현체. 현재 개발초기 단계이며, Dropbox사에서 주도하여 개발하고 있다.

파이썬의 탄생 #

파이썬은 1980년대 말, 네덜란드의 암스테르담 대학 출신의 프로그래머인 귀도 반 로섬에 의해 만들어지기 시작하였다.(파이썬을 발표한 것은 1991년) 많이 알려진 일화로 1989년 12월에 그는 크리스마스를 보낼 취미거리로 파이썬 제작을 시작했다고 전해진다. 네덜란드와 미국의 연구소 등에도 근무했던 그는 2000년대 이후 구글과 드롭박스를 거쳐 현재는 마이크로소프트에 소속되어 있다.

파이썬의 특징 #

다른 언어, 특히 C언어와 달리 자료형을 선언하지 않아도 되고, 포인터를 사용해서 메모리 관리를 하지 않아도 되며 무엇보다 간결하고 평이한 명령어 코드로 구성되어 있고 특유의 들여쓰기(Indentation) 규칙이 있어 개발자가 원하던 원치 않던 제3의 인물이 이해하기에 좋은 깔끔한 코드를 자연스럽게 구성할 수 있는 장점이 있다. 컴퓨터 언어로 활용하기에도 성능이나 기능면에서 손색이 없으면서도 스크립트 수준의 쉬운 문법 덕분에 전문 개발자 뿐만 아니라 컴퓨터가 전문분야가 아닌 사람들에게도 널리 사용되고 있으며, 특히 빅데이터 분석가나 과학자들 사이에서는 필수적인 기술로 자리매김을 하고 있다.

파이썬의 보급 #

2020년 현재 C, JAVA에 이어 세계에서 3번째로 많이 쓰이는 언어이다.

Image

파이썬 설치하기 #

파이썬은 크게 2.X 버전과 3.X 버전으로 나뉘게된다. 이후 언급하게되겠지만 2 버전의 경우 최근 기능에 대한 업데이트가 되지 않으므로 3버전에 대한 설치만 여기서 다룬다.

파이썬 설치는 기본적으로 공식 홈페이지 (https://www.python.org/) 에서 확인 할 수 있다.

아나콘다를 이용한 파이썬 설치 #

파이썬은 단독으로 패키지를 다운로드하여 사용할 수도 있지만, 최근에는 아나콘다라고 하는 통합 패키지로 다운로드 받아 사용하는 경우가 많다. 아나콘다를 활용할 경우 많이 사용되는 파이썬 라이브러리들을 기본으로 탑재하여 제공하고 파이썬 개발을 웹에서 할 수 있는 주피터(Jupyter) 프로그램을 제공하는 등, 파이썬을 더 편리하게 사용할 수 있는 여러 환경을 제공해준다. 아나콘다는 파이썬 뿐만이 아닌 R을 위한 환경도 지원하며, 파이썬과 R 개발 시 UI부분을 편리하게 구성할 수 있는 다양한 도구를 제공하기도 한다. 특히 최근 몇 년 사이 머신러닝 붐이 일어나면서, 파이썬을 이용한 머신러닝 개발 환경을 손쉽게 구축할 수 있다는 장점 때문에 아나콘다의 사용자는 계속 증가하고 있는 추세이다.

Image

운영체제와 CPU 별로 다양한 버전의 패키지를 지원한다.

Image

Windows #

Windows의 경우 웹페이지에서 설치 패키지를 제공한다. 파이썬 공식 홈페이지(https://www.python.org/) 에서 Stable 버전중 가장 최신의 exe 파일을 다운로드 받은 후 실행한다.

Image

실행하면 위와 같이 프로그램이 실행되며 각 단계에 따라 설치를 진행하면 된다. 다만 설치를 시작할때 아래 "Add Python 3.6 to PATH" 에 꼭 체크를 하여야하며 만약 체크를 하지 않고 설치한다면 수동으로 설치 경로를 잡아줘야하는 번거로움이 있다.

Linux #

공식 홈페이지(http://www.python.org/download)에서 Linux 용 파이썬 파일(3.X.X.tar.gz)파일을 다운로드 받는다.

파일을 다운로드 받은후 압축을 풀고 컴파일을 실행하여야 한다.

 $ tar xvzf Python-3.x.x.tgz
 $ cd Python-3.x.x
 $ ./configure
 $ make

위와 같이하면 파이썬 설치를 할 수 있는 파일들이 컴파일 되며 아래명령어를 입력하여 파이썬을 설치하면 된다.

 $ sudo make install

Mac OS #

Mac에서 설치는 기본적으로 공식 홈페이지(https://www.python.org/)에서 패키지를 다운로드 받아 설치하는 방법과 Homebrew를 이용하여 설치하는 방법이 있다. 패키지 다운로드를 받아 설치하는 방법은 윈도우에서 설치하는 방법과 유사하니 윈도우 설치방법을 참고한다.

Homebrew를 이용하여 파이썬을 설치하기 위해서는 우선적으로 Homebrew가 맥에 설치가 되어 있어야 한다. 먼저 응용프로그램>유틸리티>터미널 로 터미널을 실행하거나 본인이 사용하는 터미널을 실행한다. 이후 터미널에서 아래 명령어를 이용하여 Homebrew를 설치한다.

       $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

설치가 모두 완료되면 설치된 경로를 수동으로 설정해주어야 한다. 경로 설정은 ~/.bash_profile 의 맨 하단에 아래 경로를 입력하여 설정 할 수 있다.

export PATH=/usr/local/bin:/usr/local/sbin:$PATH

Homebrew가 모두 설치되면 아래와 같은 간단한 명령어를 통해 파이썬을 설치 할 수 있다.

brew install python3

파이썬 시작하기 #

파이썬은 귀도 반 로섬이 1991년 발표한 언어로써 대화 기능의 인터프리터 언어, 동적인 데이터 타입 결정, 플랫폼 독립적, 객체지향적 성격을 지니고 있다. 과학에 관련된 라이브러리가 많이 발전해 있으며 최근 머신러닝등에서 각광받고 있는 언어이다. 꾸준히 사용자 층이 증가하고 있으며 최근 java보다 많은 사용자 층을 가질 정도로 사랑받고 있다.

파이썬 사용자층 변화

출처 : https://twitter.com/drob/status/905476230832693248

파이썬 특성 #

인터프리터 언어 #

파이썬은 대화형 인터프리터 언어이다. 인터프리터 언어란 프로그래밍 언어를 바로 실행하는 것을 말한다. 파이썬은 명시적으로 컴파일 할 필요가 없으며 코드를 작성한 후 바로 실행하면 된다.

동적인 데이터 타입 결정 #

파이썬은 동적으로 데이터 타입을 결정하므로 데이터 타입에 상관없이 일반화된 코드를 작성하기 쉽다.

플랫폼 독립적 #

파이썬은 Windows, Linux, Unix, Mac OS 등 대부분의 운영체제에서 동작한다. 플랫폼에 구애받지 않고 별도로 컴파일 하지 않고도 코드를 실행하는데 문제가 없다.

배우기 쉬우며 팀 워크에 유용 #

파이썬은 간단한 문법과 들여쓰기로 각 문단을 구분함에 따라 깨끗하고 깔끔한 소스코드를 만들기 쉽다.

프로그래밍을 처음 접하는 사람이라도 하루 이틀 정도만 투자해도 기본적인 프로그래밍이 가능할 정도로 쉬운 문법을 제공한다. 또한 들여쓰기로 블럭을 구분하기 때문에 프로그래머들에게 강제적으로 줄을 맞추게 한다. 이러한 파이썬의 특성은 프로그램의 가독성과 이해도를 높인다.

파이썬은 모듈 단위의 코드를 쉽게 작성할 수 있다. 각자가 만든 스크립트를 쉽게 라이브러리로 활용할 수 있으며 독립적으로 만들어진 모듈을 모아 하나의 큰 프로그램을 만들 수 있다.

쉽게 모듈화가 가능하고 깔끔한 코드는 이해하기도 쉬워 유지 보수가 쉬우며 팀원이 함께 개발하기 좋다.

파이썬의 철학 #

파이썬에서 this 라는 라이브러리를 import 하면 아래와 같은 메시지를 볼 수 있다. 파이썬의 추구하는 바를 볼 수 있다.

$ python
iPython 3.6.1 (default, Apr  2 2017, 16:37:36)
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

파이썬의 다양한 버전들 중 어느 버전을 사용해야 할까? #

아직도 많은 서버에는 파이썬 2 버전이 기본적으로 설치되어 있다. 그러나 파이썬 2는 곧 지원이 끊길예정이며 비동기 같은 최신 기술들은 파이썬 3 버전에 적용되고 있다. 가능하다면 파이썬 3을 사용하도록 하자.

대화형 모드로 파이썬 실행해보기(인터프리터 모드) #

Windows 는 cmd, Linux 나 Mac OS는 터미널을 실행하고 python 이라고 타이핑 후 엔터를 누르면 아래처럼 대화형 모드로 파이썬을 실행할 수 있다.

$ python
Python 3.6.1 (default, Apr  2 2017, 16:37:36)
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Hello, Python!! #

>>> print("Hello, Python!!")
Hello, Python!!

사칙연산 #

계산기가 없을 때 파이썬 대화형 모드를 통해 간단하게 계산을 할 수 있다.

>>> 10 + 17
27
>>> 5 * 8
40
>>> 3 + 7 * 9
66
>>> 974520320 / 1024
951680.0
>>> 2 ** 4
16
>>> 10 // 3
3

변수 #

파이썬에서 변수를 만드는 방법은 대체로 다른 언어와 유사하다. 첫 문자는 영문자 또는 언더스코어(_)이어야 하고 두 번째 문자부터는 영문자, 숫자, 언더스코어(_)가 가능하며 대 소문자를 구별하며 길이 제한은 없다.

파이썬에서 이미 사용중인 예약어는 변수명으로 사용할 수 없다. 아래와 같이 예약어를 확인 가능하다.

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

변수명을 만들 때는 내장 함수 이름이나 라이브러리 이름 등은 피하는 것이 좋다. 변수명으로 지정할 경우 그 함수나 라이브러리는 사용이 불가능 해진다.

파이썬 스크립트를 만들고 실행해보기 #

대화형 모드에서 실행 한 스크립트는 저장되지 않는다. 계속 사용해야하는 프로그램이라면 스크립트로 작성하여 실행할 수 있다.

파이썬 스크립트는 콘솔 이나 터미널 창에서 python [스크립트 파일] 입력하여 실행할 수 있다.

$ python simple.py

파이썬 스크립트는 보통 .py 확장자를 사용하지만 python 명령어를 통해 실행할 경우 꼭 확장자가 .py 가 아니더라도 파이썬으로 실행된다.

파이썬을 다루다 보면 .pyc 확장자를 가끔 보게 되는데 이는 컴파일된 바이트코드로 모듈로써 호출할 때 보통 생성된다.

입력한 이름에 인사해주기 #

내장 함수 input은 사용자가 입력하는 문자열을 받아들이는 함수이다. 파이썬 2 버전에서는 문자열을 받아들이는 raw_input과 숫자를 받아들이는 input으로 나누어져 있었지만 3 버전에 오면서 input으로 통합되었다.

텍스트 편집기로 아래와 같은 내용을 담고 있는 파일을 만들어 보자. 파일명은 name.py 로 작성한다. input 으로 사용자가 입력하는 문자열을 입력 받아 name이라는 변수에 저장 후 출력하는 스크립트 이다.

name = input("What's Your Name? ")
print("Hello, ", name)

python name.py 과 같이 실행하면 What's Your Name?가 출력이 되고 커서가 깜빡이며 사용자의 입력을 기다린다.

$ python name.py
What's Your Name?

텍스트를 입력 후 엔터키를 누르게 되면 Hello, 문장과 함께 입력한 텍스트를 아래처럼 출력해준다.

$ python name.py
What's Your Name? Python
Hello,  Python

출생년도를 입력 받아 현재 나이 출력해주기 #

텍스트 편집기로 아래와 같은 내용을 담고 있는 파일을 만들어 보자. 파일명은 age.py 로 작성한다.

birth 라는 변수에 사용자가 입력한 숫자를 저장한다. 문자열로 저장이 되므로 내장 함수 int를 사용하여 숫자형으로 변경해준다. 그 후 현재년도에서 출생년도를 뺀 값을 age라는 변수에 저장한다.

파이썬에서 변수를 출력할때는 위에처럼 print에 바로 써도 되지만 일정한 형식으로 이쁘게 출력하고 싶을 때는 abcd {} {} {}.format(변수1, 변수2, 변수3) 과 같은 형식을 사용하면 된다.

birth = input("출생년도를 입력하여주세요. 1986 처럼 4자리 연도로 입력하세요.")
birth = int(birth)
current_year = 2017
age = current_year - birth
print("당신의 나이는 {} 살입니다.".format(age))

python age.py 과 같이 실행하면 출생년도를 입력하여주세요. 1986 처럼 4자리 연도로 입력하세요.가 출력이 되고 커서가 깜빡이며 사용자의 입력을 기다린다.

$ python age.py
출생년도를 입력하여주세요. 1986 처럼 4자리 연도로 입력하세요.

출생년도를 입력 후 엔터키를 누르면 나이를 계산하여 출력해준다.

$ python age.py
출생년도를 입력하여주세요. 1986 처럼 4자리 연도로 입력하세요.1986
당신의 나이는 31 살입니다.

최근 많이 사용되는 파이썬 라이브러리 #

머신러닝의 붐과 함께 파이썬으로 데이터를 처리/분석하거나 머신러닝을 구현할 수 있도록 도와주는 라이브러리도 많이 각광을 받고 있다. 대표적인 라이브러리들은 다음과 같다.

Pandas #

데이터 처리와 분석을 하기위한 라이브러리이다. 테이블 형태의 데이터를 편리하게 다룰 수 있는 DataFrame 자료형을 제공한다. 파이썬이 가지고 있던 아쉬운 부분이었던 데이터 모델링에 대한 부분은 Pandas 라이브러리가 채워주는 역할을 하였다. 데이터를 행렬형태로 다룰 수 있게 해주는 DataFrame 외에도 선형분석과 회귀분석 기능을 제공한다.

Numpy #

Numpy는 Numerical Python의 줄임말로 통계나 선형대수, 행렬 계산 등 수학적인 작업을 쉽게 해주는 기능을 제공한다. 다차원 배열 클래스와 벡터화 연산을 지원하는데 다차원 배열 클래스(n-dimensional array)의 경우 많은 연산작업에서 필수적인 요소로 자리잡고 있다.

Matplotlib #

그래프 시각화를 위해 많이 사용되는 라이브러리이다. 파이썬의 여러 그래픽 엔진(Tkinter, wxPython, Qt 등)을 사용할 수 있고 pylab이라는 서브 페키지를 사용하면 수학/과학 분야에서 널리 사용되는 프로그램인 MATLAB의 그래프 기능을 유사하게 사용할 수도 있다. 특히 간단한 시각화 프로그램을 만드는 경우라면 Matplotlib의 서브 패키지인 pylab을 이용해 모든 작업을 처리할 수도 있다.

Scipy #

Scipy는 과학기술계산을 위한 라이브러리로, 수학적인 알고리즘 기능을 제공한다. 위에서 나온 Pandas, Numpy, Matplotlib와 연계되어 있으며, 특히 Numpy의 기능을 확장할 수 있게 도움을 주는 역할을 하고 있다.

TensorFlow #

TensorFlow는 머신러닝을 위한 라이브러리로, 근본적으로는 단순 라이브러리가 아니라 도구와 라이브러리, 커뮤니티 리소스를 모두 제공하는 통합 플랫폼이라고 할 수 있다. 파이썬에서는 TensorFlow의 라이브러리를 통해 머신러닝을 위한 각종 작업들을 손쉽게 진행할 수 있다.

Incoming Links #

Related Data Sciences #

Related Etcs #

Related Articles #

Related Bioinformaticses #

Suggested Pages #

0.0.1_20230725_7_v68