{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "*이 노트북은 제이크 반더플라스(Jake VanderPlas)의 [A Whirlwind Tour of Python](http://www.oreilly.com/programming/free/a-whirlwind-tour-of-python.csp)(OReilly Media, 2016)를 기반으로 만들어졌습니다. 이 내용은 [CC0](https://github.com/jakevdp/WhirlwindTourOfPython/blob/master/LICENSE) 라이센스를 따릅니다. 전체 노트북의 목록은 https://github.com/rickiepark/WhirlwindTourOfPython 에서 볼 수 있습니다.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "< [1. 소개](00-소개.ipynb) | [목차](목차.ipynb) | [파이썬 문법 빠르게 훑어 보기](02-파이썬%20문법%20빠르게%20훑어%20보기.ipynb) >" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 파이썬 코드를 실행하는 방법" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "파이썬은 유연한 언어입니다. 작업에 따라 여러가지 사용 방법이 있습니다. 파이썬이 다른 프로그래밍 언어와 구별되는 한가지는 *컴파일*이 아니고 *대화식*이라는 점입니다.\n", "이 말은 한 줄씩 실행된다는 뜻입니다. 포트란, C, 자바같은 컴파일 언어에서는 지원되지 않는 대화식 프로그래밍이 가능합니다. 이 절에서는 파이썬 코드를 실행하는 대표적인 방법을 설명하겠습니다: *파이썬 인터프리터*, *IPython 인터프리터*, *자체 스크립트* 그리고 *주피터 노트북*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 파이썬 인터프리터\n", "\n", "파이썬 코드를 실행하는 가장 기본적인 방법은 *파이썬 인터프리터* 안에서 한 줄씩 실행하는 것입니다.\n", "파이썬 인터프리터를 사용하려면 파이썬을 설치하고(이전 섹션을 참고하세요) 명령 프롬프트에서 ``python``이라고 입력하면 됩니다(macOS와 유닉스/리눅스의 터미널이나 윈도우즈의 명령 프롬프트 애플리케이션을 사용하세요):\n", "```\n", "$ python\n", "Python 3.5.1 |Continuum Analytics, Inc.| (default, Dec 7 2015, 11:24:55)\n", "Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n", ">>>\n", "```\n", "인터프리터가 실행되면 코드를 입력하고 실행시킬 수 있습니다.\n", "다음 코드에서 인터프리터에서 간단한 계산을 하고 변수에 값을 할당해 보겠습니다:\n", "``` python\n", ">>> 1 + 1\n", "2\n", ">>> x = 5\n", ">>> x * 3\n", "15\n", "```\n", "인터프리터는 작은 양의 파이썬 코드를 테스트하고 간단한 명령들을 실험해 보기에 아주 편리합니다." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### IPython 인터프리터\n", "\n", "기본 파이썬 인터프리터로 어느 정도 사용하다 보면 완전한 기능을 갖춘 대화식 개발 환경에 필요한 기능들이 많이 부족하다는 것을 느낄 것입니다.\n", "또 다른 인터프리터로 *IPython*(Iteractive Python의 약자)이 아나콘다 배포판에 포함되어 있고 기본 파이썬 인터프리터에 비해 편리한 기능을 포함하고 있습니다.\n", "명령 프롬프트에서 ``ipython``이라고 입력해서 시작합니다:\n", "```\n", "$ ipython\n", "Python 3.6.3 |Anaconda, Inc.| (default, Dec 5 2017, 17:30:25)\n", "Type 'copyright', 'credits' or 'license' for more information\n", "IPython 6.3.1 -- An enhanced Interactive Python. Type '?' for help\n", "\n", "In [1]: \n", "```\n", "파이썬 인터프리터와 IPython 인터프리터간의 주요한 외관상의 차이점은 명령 프롬프트입니다. 파이썬은 기본적으로 ``>>>``이고 반면에 IPython은 숫자가 부여된 프롬프트입니다(가령 ``In [1]:``).\n", "어쨋든 이전과 동일하게 한 줄씩 코드를 실행시킬 수 있습니다:\n", "``` ipython\n", "In [1]: 1 + 1\n", "Out[1]: 2\n", "\n", "In [2]: x = 5\n", "\n", "In [3]: x * 3\n", "Out[3]: 15\n", "```\n", "입력에 숫자가 부여된 것처럼 각 명령의 출력에도 숫자가 붙어 있습니다.\n", "IPython은 굉장히 많은 편리한 기능을 가지고 있습니다. 조금 더 자세한 내용을 알고 싶다면 [추천 자료](16-Further-Resources.ipynb)를 참고하세요." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 스크립트\n", "\n", "파이썬 코드를 한 줄씩 실행하는 것이 유용한 경우도 있지만 더 복잡한 프로그램들은 파일로 저장해서 한 번에 실행하는 것이 더 편리합니다.\n", "관습적으로 파이썬 스크립트는 *.py* 확장자를 가진 파일로 저장합니다.\n", "예를 들어서 다음 코드를 담은 *test.py*란 스크립트를 만들어 보겠습니다:\n", "``` python\n", "# file: test.py\n", "print(\"Running test.py\")\n", "x = 5\n", "print(\"Result is\", 3 * x)\n", "```\n", "이 파일을 실행하려면 현재 디렉토리에서 명령 프롬프트에 ``python`` *``filename``*을 입력하면 됩니다:\n", "```\n", "$ python test.py\n", "Running test.py\n", "Result is 15\n", "```\n", "복잡한 프로그램일 경우 이와 같은 스크립트는 필수적입니다." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 주피터 노트북\n", "\n", "대화식 터미널과 자체 스크립트의 하이브리드는 *주피터 노트북*입니다. 실행 코드, 서식있는 텍스트, 그래프와 대화식 기능까지 하나의 문서에 결합되어 있습니다.\n", "노트북이 파이썬만의 포맷으로 시작되었지만 많은 프로그래밍 언어와 호환되도록 확장해왔고 [*주피터 프로젝트*](https://jupyter.org/)의 핵심 부분이 되었습니다.\n", "노트북이 개발 환경으로서 뿐만 아니라 풍부한 컴퓨팅 자원과 데이터 주도적인 환경에서 코드, 그림, 데이터, 텍스트가 합쳐진 작업물을 공유하는 도구로도 유용합니다." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "< [1. 소개](00-소개.ipynb) | [목차](목차.ipynb) | [파이썬 문법 빠르게 훑어 보기](02-파이썬%20문법%20빠르게%20훑어%20보기.ipynb) >" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 1 }