{"componentChunkName":"component---src-templates-blog-post-js","path":"/python/2016-06-11-python-guide/","result":{"data":{"site":{"siteMetadata":{"title":"Seungdols Company","author":"[Seungdols]","siteUrl":"https://seungdols.dev","comment":{"disqusShortName":"","utterances":"seungdols/seungdols.dev"},"sponsor":{"buyMeACoffeeId":"seungdols"}}},"markdownRemark":{"id":"040360cf-9665-57cc-a0c1-3fc5b1088c09","excerpt":"Python 설치 anaconda package를 설치하는게 윈도우 환경에서는 수월하다. 혹 python.org에서 설치하고자 하신다면, 수동으로 python path를 잡아줘야 하고, pip 설치도 해야한다. 그런데 이게 여간 까다로운 작업이 아니며, 굉장히 난해하다. 더군다나 이제 막 프로그래밍에 입문했다면 더더욱. 고로, 아나콘다를 이용해 python을 설치하도록 하자. Python 문법 변수 파이썬에서의 변수는 동적 타이핑이므로 할당하면 알아서 Type…","html":"<h3 id=\"python-설치\" style=\"position:relative;\"><a href=\"#python-%EC%84%A4%EC%B9%98\" aria-label=\"python 설치 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Python 설치</h3>\n<p><a href=\"https://www.continuum.io/downloads#34\">anaconda package</a>를 설치하는게 윈도우 환경에서는 수월하다.</p>\n<p>혹 python.org에서 설치하고자 하신다면, 수동으로 python path를 잡아줘야 하고, pip 설치도 해야한다. 그런데 이게 여간 까다로운 작업이 아니며, 굉장히 난해하다. 더군다나 이제 막 프로그래밍에 입문했다면 더더욱. 고로, <strong>아나콘다</strong>를 이용해 python을 설치하도록 하자.</p>\n<h3 id=\"python-문법\" style=\"position:relative;\"><a href=\"#python-%EB%AC%B8%EB%B2%95\" aria-label=\"python 문법 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Python 문법</h3>\n<h4 id=\"변수\" style=\"position:relative;\"><a href=\"#%EB%B3%80%EC%88%98\" aria-label=\"변수 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>변수</h4>\n<p>파이썬에서의 변수는 동적 타이핑이므로 할당하면 알아서 Type을 지정해준다. 우선 파이썬에서 변수명에 사용 가능한 문자는 알파벳 대·소문자, 숫자, 밑줄(_)이다.</p>\n<p>단, 변수명은 숫자로 시작할 수 없다. 특히, 변수명에 파이썬 언어에서 사용하는 Reserved Word의 경우 사용 불가능하다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">userName <span class=\"token operator\">=</span> <span class=\"token string\">'seungdols'</span>\nusername <span class=\"token operator\">=</span> <span class=\"token string\">'seungdols'</span> <span class=\"token comment\">#위 두 변수는 다른 변수이다.`</span></code></pre></div>\n<h4 id=\"할당\" style=\"position:relative;\"><a href=\"#%ED%95%A0%EB%8B%B9\" aria-label=\"할당 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>할당</h4>\n<p>할당은 <code class=\"language-text\">=</code>으로 변수에 값을 대입한다고 생각하면 된다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">userAge <span class=\"token punctuation\">,</span> userName <span class=\"token operator\">=</span> <span class=\"token number\">30</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'seungdols'</span> <span class=\"token comment\">#여러 변수를 한 번에 할당도 가능하다.</span></code></pre></div>\n<h4 id=\"기본-연산자\" style=\"position:relative;\"><a href=\"#%EA%B8%B0%EB%B3%B8-%EC%97%B0%EC%82%B0%EC%9E%90\" aria-label=\"기본 연산자 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>기본 연산자</h4>\n<p>기본 연산자로는 <code class=\"language-+,-,*,/,//,\">,**</code>이 존재한다.\n기본적인 연산자는 기본 수학과 동일하고, <code class=\"language-text\">//</code>의 경우는 정수 나눗셈(내림 나눗셈)이라하고, <code class=\"language-text\">%</code>의 경우 나머지 연산자, <code class=\"language-text\">**</code>의 경우 제곱 연산을 뜻한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token operator\">>></span><span class=\"token operator\">></span> x <span class=\"token punctuation\">,</span> y <span class=\"token operator\">=</span> <span class=\"token number\">5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">7</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">+</span>y\n<span class=\"token number\">12</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">-</span>y\n<span class=\"token operator\">-</span><span class=\"token number\">2</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">/</span>y\n<span class=\"token number\">0.7142857142857143</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">//</span>y\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">**</span>y\n<span class=\"token number\">78125</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">*</span>y\n<span class=\"token number\">35</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span></code></pre></div>\n<p>추가로 += , -=, *= 3가지의 할당 연산자가 더 있다. 각각 의미는 아래 코드로 확인하자. x = x + y와 x+=y와 같은 의미이다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">+</span>y\n<span class=\"token number\">12</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">+=</span>y\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">)</span>\n<span class=\"token number\">12</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x <span class=\"token operator\">-</span> y\n<span class=\"token number\">5</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">-=</span>y\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">)</span>\n<span class=\"token number\">5</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">*</span>y\n<span class=\"token number\">35</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">*=</span>y\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">)</span>\n<span class=\"token number\">35</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x <span class=\"token operator\">=</span> x <span class=\"token operator\">*</span> y\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token keyword\">print</span> <span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">)</span>\n<span class=\"token number\">245</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span></code></pre></div>\n<h4 id=\"데이터-타입\" style=\"position:relative;\"><a href=\"#%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%80%EC%9E%85\" aria-label=\"데이터 타입 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>데이터 타입</h4>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token builtin\">int</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">,</span> <span class=\"token builtin\">float</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token builtin\">str</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token comment\"># 세가지의 타입 변환 내장함수가 존재한다.</span></code></pre></div>\n<h5 id=\"정수\" style=\"position:relative;\"><a href=\"#%EC%A0%95%EC%88%98\" aria-label=\"정수 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>정수</h5>\n<p>정수는 소수부가 없는 숫자를 말한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">+</span>y\n<span class=\"token number\">12</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">+=</span>y\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">)</span>\n<span class=\"token number\">12</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x <span class=\"token operator\">-</span> y\n<span class=\"token number\">5</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">-=</span>y\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">)</span>\n<span class=\"token number\">5</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">*</span>y\n<span class=\"token number\">35</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> x<span class=\"token operator\">*=</span>y\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>x<span class=\"token punctuation\">)</span>\n<span class=\"token number\">35</span></code></pre></div>\n<h3 id=\"부동소수점실수\" style=\"position:relative;\"><a href=\"#%EB%B6%80%EB%8F%99%EC%86%8C%EC%88%98%EC%A0%90%EC%8B%A4%EC%88%98\" aria-label=\"부동소수점실수 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>부동소수점(실수)</h3>\n<p>실수는 소수부가 포함된 수들을 말하며, 정수보다 표현 범위가 크다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token operator\">>></span><span class=\"token operator\">></span> f <span class=\"token operator\">=</span> <span class=\"token number\">1233454.345345345</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token keyword\">print</span> <span class=\"token punctuation\">(</span>f<span class=\"token punctuation\">)</span>\n<span class=\"token number\">1233454.345345345</span></code></pre></div>\n<h3 id=\"문자열\" style=\"position:relative;\"><a href=\"#%EB%AC%B8%EC%9E%90%EC%97%B4\" aria-label=\"문자열 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>문자열</h3>\n<p>문자열은 <code class=\"language-text\">', \"</code>로 감싸진 문자들의 나열을 말한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">a <span class=\"token operator\">=</span> <span class=\"token string\">'seungdols'</span>\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>a<span class=\"token punctuation\">)</span>\nseungdols</code></pre></div>\n<h3 id=\"리스트\" style=\"position:relative;\"><a href=\"#%EB%A6%AC%EC%8A%A4%ED%8A%B8\" aria-label=\"리스트 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>리스트</h3>\n<p>리스트는 보통 서로 연관된 데이터의 모음이다. 비슷한 종류의 데이터를 별도의 변수에 저장하는 대신 리스트에 저장하면 편하다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">userAges <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">23</span><span class=\"token punctuation\">,</span><span class=\"token number\">44</span><span class=\"token punctuation\">,</span><span class=\"token number\">23</span><span class=\"token punctuation\">,</span><span class=\"token number\">45</span><span class=\"token punctuation\">,</span><span class=\"token number\">40</span><span class=\"token punctuation\">,</span><span class=\"token number\">50</span><span class=\"token punctuation\">]</span>\nuserAges <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token comment\">#이렇게 빈 리스트도 생성 가능하다.</span>\n\nuserAges<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token comment\">#index는 0부터 시작한다.</span>\nuserAges<span class=\"token punctuation\">[</span><span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token comment\">#reverse도 지원하며, -1이 가장 마지막 인덱스와 같다.</span></code></pre></div>\n<h3 id=\"리스트-슬라이싱\" style=\"position:relative;\"><a href=\"#%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EC%8A%AC%EB%9D%BC%EC%9D%B4%EC%8B%B1\" aria-label=\"리스트 슬라이싱 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>리스트 슬라이싱</h3>\n<p>list[시작:끝]을 하게 되면 slice라는 기법인데, 시작index부터 끝index까지의 리스트 범위를 사용할 수 있다. 단, 끝 index는 포함하지 않는다. 즉, 마지막 index-1까지만 포함 된다는 의미이다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">userAges<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">:</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">[</span><span class=\"token number\">23</span><span class=\"token punctuation\">,</span> <span class=\"token number\">44</span><span class=\"token punctuation\">,</span> <span class=\"token number\">23</span><span class=\"token punctuation\">,</span> <span class=\"token number\">45</span><span class=\"token punctuation\">,</span> <span class=\"token number\">40</span><span class=\"token punctuation\">]</span></code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">userAges <span class=\"token operator\">*</span> <span class=\"token number\">2</span>\n<span class=\"token punctuation\">[</span><span class=\"token number\">23</span><span class=\"token punctuation\">,</span> <span class=\"token number\">44</span><span class=\"token punctuation\">,</span> <span class=\"token number\">23</span><span class=\"token punctuation\">,</span> <span class=\"token number\">45</span><span class=\"token punctuation\">,</span> <span class=\"token number\">40</span><span class=\"token punctuation\">,</span> <span class=\"token number\">50</span><span class=\"token punctuation\">,</span> <span class=\"token number\">23</span><span class=\"token punctuation\">,</span> <span class=\"token number\">44</span><span class=\"token punctuation\">,</span> <span class=\"token number\">23</span><span class=\"token punctuation\">,</span> <span class=\"token number\">45</span><span class=\"token punctuation\">,</span> <span class=\"token number\">40</span><span class=\"token punctuation\">,</span> <span class=\"token number\">50</span><span class=\"token punctuation\">]</span><span class=\"token comment\">#리스트를 2번 곱한 것도 가능</span>\nuserAges<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> userAges<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> <span class=\"token number\">10</span> <span class=\"token comment\">#리스트 원소내 값 수정도 가능하다.</span>\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>userAges<span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">[</span><span class=\"token number\">33</span><span class=\"token punctuation\">,</span> <span class=\"token number\">44</span><span class=\"token punctuation\">,</span> <span class=\"token number\">23</span><span class=\"token punctuation\">,</span> <span class=\"token number\">45</span><span class=\"token punctuation\">,</span> <span class=\"token number\">40</span><span class=\"token punctuation\">,</span> <span class=\"token number\">50</span><span class=\"token punctuation\">]</span></code></pre></div>\n<h3 id=\"튜플\" style=\"position:relative;\"><a href=\"#%ED%8A%9C%ED%94%8C\" aria-label=\"튜플 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>튜플</h3>\n<p>아래와 처럼 튜플은 ()를 이용하여 생성하고, 리스트와 다른 점은 불변식이라는 점이다. 초기선언 이후 값을 변경 할 수 없다. 원소에 접근하는 것은 리스트와 같이 인덱스로 접근 한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">tup <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span><span class=\"token number\">4</span><span class=\"token punctuation\">,</span><span class=\"token number\">5</span><span class=\"token punctuation\">)</span>\ntup\n<span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span><span class=\"token punctuation\">)</span>\ntup<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span>\n<span class=\"token number\">1</span>\ntup<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">2</span>\nTraceback <span class=\"token punctuation\">(</span>most recent call last<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n  File <span class=\"token string\">\"&lt;pyshell#37>\"</span><span class=\"token punctuation\">,</span> line <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">in</span> <span class=\"token operator\">&lt;</span>module<span class=\"token operator\">></span>\n    tup<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">2</span>\nTypeError<span class=\"token punctuation\">:</span> <span class=\"token string\">'tuple'</span> <span class=\"token builtin\">object</span> does <span class=\"token keyword\">not</span> support item assignment<span class=\"token operator\">>></span><span class=\"token operator\">></span></code></pre></div>\n<h3 id=\"사전\" style=\"position:relative;\"><a href=\"#%EC%82%AC%EC%A0%84\" aria-label=\"사전 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>사전</h3>\n<p>dictionary type의 경우는 Java의 HashMap과 비슷하다고 볼 수 있고, Key : value 형태를 갖는다. 특히 한 사전 데이터 타입 안에 같은 key가 중복 되어서는 안 된다. dict() 메소드로도 생성 할 수 있다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">dic <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span><span class=\"token number\">1</span><span class=\"token punctuation\">:</span><span class=\"token string\">'one'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">:</span><span class=\"token string\">'two'</span><span class=\"token punctuation\">}</span>\ndic<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\n<span class=\"token string\">'one'</span>\ndic<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span>\nTraceback <span class=\"token punctuation\">(</span>most recent call last<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span><span class=\"token comment\"># key 0인 것이 없으니 오류가 난다.</span>\n  File <span class=\"token string\">\"&lt;pyshell#40>\"</span><span class=\"token punctuation\">,</span> line <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">in</span> <span class=\"token operator\">&lt;</span>module<span class=\"token operator\">></span>\n    dic<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span>\nKeyError<span class=\"token punctuation\">:</span> <span class=\"token number\">0</span></code></pre></div>\n<h4 id=\"python-기초\" style=\"position:relative;\"><a href=\"#python-%EA%B8%B0%EC%B4%88\" aria-label=\"python 기초 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Python 기초</h4>\n<p>조건</p>\n<p>기본적인 비교연산자는 다른 언어들과 동일하다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token number\">5</span> <span class=\"token operator\">!=</span> <span class=\"token number\">2</span>\n<span class=\"token boolean\">True</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token number\">5</span><span class=\"token operator\">></span> <span class=\"token number\">2</span>\n<span class=\"token boolean\">True</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token number\">2</span> <span class=\"token operator\">&lt;</span><span class=\"token number\">5</span>\n<span class=\"token boolean\">True</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token number\">5</span><span class=\"token operator\">>=</span> <span class=\"token number\">5</span>\n<span class=\"token boolean\">True</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token number\">2</span> <span class=\"token operator\">&lt;=</span> <span class=\"token number\">5</span>\n<span class=\"token boolean\">True</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token number\">2</span> <span class=\"token operator\">&lt;=</span> <span class=\"token number\">2</span>\n<span class=\"token boolean\">True</span></code></pre></div>\n<h3 id=\"if--elif\" style=\"position:relative;\"><a href=\"#if--elif\" aria-label=\"if  elif permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>if / elif</h3>\n<p>C/C++, Java에서 쓰는 else if를 쓰지 않고, elif를 쓰는 것이 좀 차이가 있다.\n그리고 아시겠지만, 파이썬은 {}를 쓰지 않고, indent 들여쓰기를 가지고 블록을 구분한다.</p>\n<p><code class=\"language-text\">if 조건 : code elif 조건 : code else : code</code></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">if</span> <span class=\"token boolean\">True</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">'a'</span><span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">elif</span> <span class=\"token boolean\">True</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">'b'</span><span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">'c'</span><span class=\"token punctuation\">)</span>\na</code></pre></div>\n<h3 id=\"입력\" style=\"position:relative;\"><a href=\"#%EC%9E%85%EB%A0%A5\" aria-label=\"입력 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>입력</h3>\n<p>input 함수를 쓰면 되고, 2.x 경우 raw_input()을 사용하는 것으로 알고 있다.</p>\n<p><code class=\"language-text\">userInput = input('Input Number : ')</code></p>\n<h3 id=\"인라인-if문\" style=\"position:relative;\"><a href=\"#%EC%9D%B8%EB%9D%BC%EC%9D%B8-if%EB%AC%B8\" aria-label=\"인라인 if문 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>인라인 if문</h3>\n<p><code class=\"language-text\">code A if condition else code B</code> 로 이루어지며, if 조건이 참이면 앞의 코드를 실행하고 그게 아니면 else 문장을 실행한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token operator\">>></span><span class=\"token operator\">></span> a\n<span class=\"token number\">5</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> a <span class=\"token operator\">=</span> <span class=\"token number\">6</span> <span class=\"token keyword\">if</span> a <span class=\"token operator\">==</span> <span class=\"token number\">10</span> <span class=\"token keyword\">else</span> <span class=\"token number\">2</span>\n<span class=\"token number\">2</span></code></pre></div>\n<h3 id=\"반복문\" style=\"position:relative;\"><a href=\"#%EB%B0%98%EB%B3%B5%EB%AC%B8\" aria-label=\"반복문 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>반복문</h3>\n<ul>\n<li>list/tuple을 순회하는 iterator라고 보면 쉽다.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">li <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span><span class=\"token number\">4</span><span class=\"token punctuation\">,</span><span class=\"token number\">5</span><span class=\"token punctuation\">]</span>\n<span class=\"token keyword\">for</span> a <span class=\"token keyword\">in</span> li<span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>a<span class=\"token punctuation\">)</span>\n\n<span class=\"token number\">1</span>\n<span class=\"token number\">2</span>\n<span class=\"token number\">3</span>\n<span class=\"token number\">4</span>\n<span class=\"token number\">5</span></code></pre></div>\n<ul>\n<li>enumerate 함수를 이용하면 index를 추출 할 수 있다.</li>\n<li>range 함수를 이용하면, 자유롭게 반복을 구사할 수 있다.</li>\n<li>range(start, end, [step]) step : 증가치로 볼 수 있다.</li>\n<li>while 문 , 반복문에서 break와 continue를 사용할 수 있다.</li>\n</ul>\n<h3 id=\"tryexcept\" style=\"position:relative;\"><a href=\"#tryexcept\" aria-label=\"tryexcept permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Try/Except</h3>\n<p>기존 코드를 try 영역에 두고, 예외 발생할 경우 처리할 코드를 except영역에 두면 된다. <code class=\"language-text\">try: except:</code> 기본 적인 Error의 경우는 다음과 같다. <code class=\"language-text\">IOError: ImportError: IndexError: KeyError: NameError: TypeError:</code> 자세한 것은 파이썬 홈페이지에서 확인 할 수 있다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"> <span class=\"token keyword\">try</span><span class=\"token punctuation\">:</span>\n    answer <span class=\"token operator\">=</span> <span class=\"token number\">12</span><span class=\"token operator\">/</span><span class=\"token number\">0</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>answer<span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">except</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Error\"</span><span class=\"token punctuation\">)</span>\n\nError</code></pre></div>\n<h3 id=\"함수\" style=\"position:relative;\"><a href=\"#%ED%95%A8%EC%88%98\" aria-label=\"함수 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>함수</h3>\n<p>코드를 함수로 정의 해두고 사용하면 편리해진다. 그리고 코드의 관리 차원에서도 좋고, 호출하기도 쉽다. 그렇지 않으면, 찾을 때도 번거롭고, 사용하기에도 불편함이 따른다. 그래서 보통 함수단위로 작성하는 버릇이 좋다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> 함수명<span class=\"token punctuation\">(</span>매개변수<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n\n\t<span class=\"token keyword\">return</span> <span class=\"token punctuation\">[</span>표현식<span class=\"token punctuation\">]</span>\n\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">hello</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">'hello'</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> hello<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\nhello</code></pre></div>\n<h3 id=\"모듈-추가하기\" style=\"position:relative;\"><a href=\"#%EB%AA%A8%EB%93%88-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0\" aria-label=\"모듈 추가하기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>모듈 추가하기</h3>\n<p><code class=\"language-text\">import module name</code> 이렇게 한다면 모듈명.함수명으로 호출을 해야 하지만 <code class=\"language-text\">from module name import function name</code> 이렇게 하면 아래와 같이 randint를 바로 사용할 수 있게 된다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> os\n<span class=\"token keyword\">from</span> random <span class=\"token keyword\">import</span> randint\na <span class=\"token operator\">=</span> randint<span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span><span class=\"token number\">5</span><span class=\"token punctuation\">)</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> a\n<span class=\"token number\">4</span>\nos<span class=\"token punctuation\">.</span>path</code></pre></div>\n<h3 id=\"파일-입·출력\" style=\"position:relative;\"><a href=\"#%ED%8C%8C%EC%9D%BC-%EC%9E%85%C2%B7%EC%B6%9C%EB%A0%A5\" aria-label=\"파일 입·출력 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>파일 입·출력</h3>\n<p>파일 쓰기모드 ‘w’ - 파일이 존재하지 않으면, 생성한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token builtin\">file</span> <span class=\"token operator\">=</span> <span class=\"token builtin\">open</span><span class=\"token punctuation\">(</span><span class=\"token string\">'text.txt'</span><span class=\"token punctuation\">,</span><span class=\"token string\">'w'</span><span class=\"token punctuation\">)</span>\n<span class=\"token builtin\">file</span><span class=\"token punctuation\">.</span>write<span class=\"token punctuation\">(</span><span class=\"token string\">'File IO Test'</span><span class=\"token punctuation\">)</span>\n<span class=\"token number\">12</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token builtin\">file</span><span class=\"token punctuation\">.</span>close<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p>파일 읽기 모드 ‘r’ - 파일이 없으면, 오류를 발생한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token builtin\">file</span> <span class=\"token operator\">=</span> <span class=\"token builtin\">open</span><span class=\"token punctuation\">(</span><span class=\"token string\">'text.txt'</span><span class=\"token punctuation\">,</span><span class=\"token string\">'r'</span><span class=\"token punctuation\">)</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> line <span class=\"token operator\">=</span> <span class=\"token builtin\">file</span><span class=\"token punctuation\">.</span>read<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token operator\">>></span><span class=\"token operator\">></span> line\n<span class=\"token string\">'File IO Test'</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token builtin\">file</span><span class=\"token punctuation\">.</span>close<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p>파일 추가모드 ‘a’ - 파일의 끝부터 차례로 추가시킨다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token builtin\">file</span> <span class=\"token operator\">=</span> <span class=\"token builtin\">open</span><span class=\"token punctuation\">(</span><span class=\"token string\">'text.txt'</span><span class=\"token punctuation\">,</span><span class=\"token string\">'a'</span><span class=\"token punctuation\">)</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token keyword\">for</span> line <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token builtin\">file</span><span class=\"token punctuation\">.</span>write<span class=\"token punctuation\">(</span><span class=\"token string\">'\\n line '</span><span class=\"token operator\">+</span><span class=\"token builtin\">str</span><span class=\"token punctuation\">(</span>line<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token builtin\">file</span><span class=\"token punctuation\">.</span>close<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p>위 코드의 파일 다시 읽기</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token builtin\">file</span> <span class=\"token operator\">=</span> <span class=\"token builtin\">open</span><span class=\"token punctuation\">(</span><span class=\"token string\">'text.txt'</span><span class=\"token punctuation\">,</span><span class=\"token string\">'r'</span><span class=\"token punctuation\">)</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token keyword\">for</span> line <span class=\"token keyword\">in</span> <span class=\"token builtin\">file</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>line<span class=\"token punctuation\">)</span>\n\nFile IO Test\n\n line <span class=\"token number\">1</span>\n\n line <span class=\"token number\">2</span>\n\n line <span class=\"token number\">3</span>\n\n line <span class=\"token number\">4</span>\n\n line <span class=\"token number\">5</span>\n\n line <span class=\"token number\">6</span>\n\n line <span class=\"token number\">7</span>\n\n line <span class=\"token number\">8</span>\n\n line <span class=\"token number\">9</span><span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token builtin\">file</span><span class=\"token punctuation\">.</span>close<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p><code class=\"language-text\">파일 읽기/쓰기 모드 'r+'가 존재한다. 바이너리의 경우 'rb' , 'wb'가 존재한다.</code></p>\n<p>버퍼를 이용하여 파일 읽기</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token builtin\">file</span> <span class=\"token operator\">=</span> <span class=\"token builtin\">open</span> <span class=\"token punctuation\">(</span><span class=\"token string\">'text.txt'</span><span class=\"token punctuation\">,</span><span class=\"token string\">'r'</span><span class=\"token punctuation\">)</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> data <span class=\"token operator\">=</span> <span class=\"token builtin\">file</span><span class=\"token punctuation\">.</span>read<span class=\"token punctuation\">(</span><span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token comment\">#10글자씩만 읽어들인다고 지정한다.</span>\n<span class=\"token operator\">>></span><span class=\"token operator\">></span> <span class=\"token keyword\">while</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>data<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    \t<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>data<span class=\"token punctuation\">)</span>\n    \tdata <span class=\"token operator\">=</span> <span class=\"token builtin\">file</span><span class=\"token punctuation\">.</span>read<span class=\"token punctuation\">(</span><span class=\"token number\">10</span><span class=\"token punctuation\">)</span></code></pre></div>","frontmatter":{"title":"Python Guide","date":"June 11, 2016"}}},"pageContext":{"slug":"/python/2016-06-11-python-guide/","previous":{"fields":{"slug":"/java/2016-05-28-java-obj-equality-and-obj-identity/"},"frontmatter":{"title":"Java-Obj Equality and Obj Identity"}},"next":{"fields":{"slug":"/programming/2016-06-11-type-system/"},"frontmatter":{"title":"programming language type system - 타입 시스템 (Type System)"}}}}}