tag:blogger.com,1999:blog-42603876373838819182024-02-08T15:23:37.424+09:00DevStarSJ.github.io 으로 이사했습니다.더이상 이곳에는 새로운 내용을 업데이트 하지 않습니다. DevStarSJ.github.io 으로 접속해주세요.Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.comBlogger486125tag:blogger.com,1999:blog-4260387637383881918.post-87364927909185708952016-07-31T21:57:00.002+09:002016-08-01T08:14:48.663+09:00Doing Math with Python. Chapter 07 미적분 문제 풀기<h1 style="background-color: white; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; position: relative; text-rendering: optimizeLegibility;">
<span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">이 포스팅은 </span><b style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; line-height: 18.48px;"><span style="color: blue;">Jupiter Notebook</span></b><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">로 작성되었습니다.</span><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">그러니 직접 </span><span style="color: blue; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;"><b>Python</b></span><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;"> 코드를 실행시키고 싶으신 분은 아래 Link에서 다운로드 받으셔서 실행할 수 있습니다.</span><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><a href="https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython" style="color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px; text-decoration: none;">https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython</a></h1>
<div>
<br /></div>
<div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h1 style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
파이썬으로 풀어보는 수학<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EB%8A%94-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h1>
<h1 style="color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
<ul style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">원서명 : Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (ISBN 9781593276409)</li>
<li style="margin: 0px; padding: 0px;">지은이 : 아미트 사하(Amit Saha)</li>
<li style="margin: 0px; padding: 0px;">원서 및 관련자료 : <a href="https://www.nostarch.com/doingmathwithpython" style="color: #0088cc; margin: 0px; padding: 0px;">https://www.nostarch.com/doingmathwithpython</a></li>
<li style="margin: 0px; padding: 0px;">번역서 : <a href="http://www.acornpub.co.kr/book/doing-math-with-python" style="color: #0088cc; margin: 0px; padding: 0px;">http://www.acornpub.co.kr/book/doing-math-with-python</a></li>
</ul>
<div style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="책표지" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/cover.jpg" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EB%8A%94-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h1>
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 1.27em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
7장 미적분 문제 풀기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#7%EC%9E%A5-%EB%AF%B8%EC%A0%81%EB%B6%84-%EB%AC%B8%EC%A0%9C-%ED%92%80%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 함수란 무엇인가 ?<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#1.--%ED%95%A8%EC%88%98%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-?" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">함수</code>란 입력집합과 출력집합 간의 관계(mapping)를 얘기합니다. 유요한 입력값의 집합을 함수 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">도메인(Domain)</code>이라 하고, 결과집합을 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">범위(Range)</code>라고 합니다. 예를 들어서 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-1-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-1" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 4.943em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 4.11em;"><span style="border: 0px; clip: rect(1.67em 1000em 3.277em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.735em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-2" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-3" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">f<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.063em;"></span></span><span class="mo" id="MathJax-Span-4" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span><span class="mi" id="MathJax-Span-5" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-6" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span><span class="mo" id="MathJax-Span-7" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">=</span><span class="mfrac" id="MathJax-Span-8" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.539em;"><span style="border: 0px; clip: rect(3.336em 1000em 4.17em -999.997em); left: 4.51563px; margin: 0px 0px 0px -0.176em; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-9" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.515em 1000em 4.17em -999.997em); left: 4.51563px; margin: 0px 0px 0px -0.176em; padding: 0px; position: absolute; top: -3.628em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-10" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.539em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span></span><span style="border: 0px; display: inline-block; height: 2.741em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.646em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.496em; width: 0px;"></span></span></nobr></span> 라는 함수가 있는 경우 x의 값은 0이 될 수 없습니다. 그러므로 이 함수의 도메인은 0이 아닌 모든 실수와 복소수 입니다. 결과집합인 범위도 0이 아닌 모든 실수와 복소수 입니다. <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-2-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-11" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 5.241em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 4.348em;"><span style="border: 0px; clip: rect(1.729em 1000em 3.158em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.735em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-12" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-13" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">f<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.063em;"></span></span><span class="mo" id="MathJax-Span-14" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span><span class="mi" id="MathJax-Span-15" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-16" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span><span class="mo" id="MathJax-Span-17" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">=</span><span class="msubsup" id="MathJax-Span-18" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-19" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-20" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-21" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-22" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-23" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-24" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span></span><span style="border: 0px; display: inline-block; height: 2.741em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.432em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.354em; width: 0px;"></span></span></nobr></span>에 대해서는 도메인은 모든 양수와 음수이지만, 범위는 양수만 해당합니다.</div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 가정(assumptions)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#2.-%EA%B0%80%EC%A0%95(assumptions)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">sympy</code>의 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Symbol</code>객체를 이용를 생성한 다음 해당 변수의 값을 가정하고 판단하는 것이 가능합니다. <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-3-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-25" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 2.86em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 2.384em;"><span style="border: 0px; clip: rect(1.908em 1000em 2.979em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.735em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-26" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-27" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-28" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-29" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">5</span></span><span style="border: 0px; display: inline-block; height: 2.741em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.075em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.139em; width: 0px;"></span></span></nobr></span> 값이 0보다 큰지 여부를 확인하는 코드를 작성해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">></span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Positive'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Negative'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_text output_error" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="ansi-red-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">---------------------------------------------------------------------------</span>
<span class="ansi-red-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">TypeError</span> Traceback (most recent call last)
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;"><ipython-input-1-e885da2fb212></span> in <span class="ansi-cyan-fg" style="margin: 0px; padding: 0px;"><module></span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">()</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 2</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 3</span> x <span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">=</span> Symbol<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">'x'</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span>
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">----> 4</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;"> </span><span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">if</span> x <span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">+</span> <span class="ansi-cyan-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">5</span> <span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">></span> <span class="ansi-cyan-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">0</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">:</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 5</span> print<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">'Positive'</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 6</span> <span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">else</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">:</span>
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">C:\Python\Anaconda3\lib\site-packages\sympy\core\relational.py</span> in <span class="ansi-cyan-fg" style="margin: 0px; padding: 0px;">__nonzero__</span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(self)</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 193</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 194</span> <span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">def</span> __nonzero__<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span>self<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">:</span>
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">--> 195</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;"> </span><span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">raise</span> TypeError<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">"cannot determine truth value of Relational"</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 196</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 197</span> __bool__ <span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">=</span> __nonzero__
<span class="ansi-red-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">TypeError</span>: cannot determine truth value of Relational</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">TypeError: cannot determine truth value of Relational</code>라는 오류가 발생합니다. 왜냐면 x의 값이 범위를 알 수 없으므로 해당 식이 0보다 큰지 작은지 추론을 할 수가 없기 때문입니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Symbol</code> 객체를 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">positive=True</code>로 설정하면 해당 식은 항상 0보다 클 것입니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">positive</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">></span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Positive'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Negative'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Positive
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">negative=True</code>로 선택하면 참, 거짓이 모두 가능하기 때문에 처음과 같은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">TypeError: cannot determine truth value of Relational</code> 오류가 발생합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">negative</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">></span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Positive'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Negative'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_text output_error" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="ansi-red-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">---------------------------------------------------------------------------</span>
<span class="ansi-red-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">TypeError</span> Traceback (most recent call last)
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;"><ipython-input-3-a822b37a7734></span> in <span class="ansi-cyan-fg" style="margin: 0px; padding: 0px;"><module></span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">()</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 1</span> x <span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">=</span> Symbol<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">'x'</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">,</span> negative<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">=</span><span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">True</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span>
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">----> 2</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;"> </span><span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">if</span> x <span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">+</span> <span class="ansi-cyan-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">5</span> <span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">></span> <span class="ansi-cyan-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">0</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">:</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 3</span> print<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">'Positive'</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 4</span> <span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">else</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">:</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 5</span> print<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">'Negative'</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span>
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">C:\Python\Anaconda3\lib\site-packages\sympy\core\relational.py</span> in <span class="ansi-cyan-fg" style="margin: 0px; padding: 0px;">__nonzero__</span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(self)</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 193</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 194</span> <span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">def</span> __nonzero__<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span>self<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">:</span>
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">--> 195</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;"> </span><span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">raise</span> TypeError<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">"cannot determine truth value of Relational"</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 196</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 197</span> __bool__ <span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">=</span> __nonzero__
<span class="ansi-red-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">TypeError</span>: cannot determine truth value of Relational</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
앞에서 살펴본 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">positive</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">negative</code> 외에도 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">real</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">integer</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">complex</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">imaginary</code> 등으로 설정이 가능합니다.</div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 함수의 극한<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#3.-%ED%95%A8%EC%88%98%EC%9D%98-%EA%B7%B9%ED%95%9C" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
미적분 계산의 기본은 변수의 값이 어떤값에 근접할 때의 함수의 극한값을 찾는 것입니다. <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-4-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-30" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 4.943em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 4.11em;"><span style="border: 0px; clip: rect(1.67em 1000em 3.277em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.735em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-31" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-32" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">f<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.063em;"></span></span><span class="mo" id="MathJax-Span-33" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span><span class="mi" id="MathJax-Span-34" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-35" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span><span class="mo" id="MathJax-Span-36" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">=</span><span class="mfrac" id="MathJax-Span-37" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.539em;"><span style="border: 0px; clip: rect(3.336em 1000em 4.17em -999.997em); left: 4.51563px; margin: 0px 0px 0px -0.176em; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-38" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.515em 1000em 4.17em -999.997em); left: 4.51563px; margin: 0px 0px 0px -0.176em; padding: 0px; position: absolute; top: -3.628em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-39" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.539em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span></span><span style="border: 0px; display: inline-block; height: 2.741em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.646em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.496em; width: 0px;"></span></span></nobr></span> 함수의 경우 x가 증가할수록 0에 가까워 집니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식 추의주기" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch07.equation.01.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">sympy</code>에서는 극한을 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Limit</code> 객체를 이용해서 생성이 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">S</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">L</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">S</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Infinity</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">L</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[5]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Limit(1/x, x, oo, dir='-')</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
극한값 계산에는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">doit()</code>함수를 사용합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">L</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
0의 방향으로 극한값은 양의 방향에서 0으로 접근을하면 양의 무한대 값이 되며, 음의 방향에서 0으로 접근하면 양의 무한대 값이 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [7]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dir</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'-'</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[7]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-oo</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [8]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dir</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'+'</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[8]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">oo</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
정해지지 않은 극한값도 다룰수 있습니다. ( 0/0 = Inf/Inf = 1 )</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [9]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span>
<span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[9]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
4. 연속 복리<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#4.-%EC%97%B0%EC%86%8D-%EB%B3%B5%EB%A6%AC" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이자율 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">r</code>에 대해서 기간 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">n</code> 동안의 복리이자를 계산하는 수식은 다음과 같습니다.</div>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">A = (1+r)^n</code></pre>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
여기에서 <em style="margin: 0px; padding: 0px;">r</em>을 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-5-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-40" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.836em;"><span style="border: 0px; clip: rect(1.134em 1000em 2.741em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.199em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-41" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mfrac" id="MathJax-Span-42" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.539em;"><span style="border: 0px; clip: rect(3.336em 1000em 4.17em -999.997em); left: 4.51563px; margin: 0px 0px 0px -0.176em; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-43" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.515em 1000em 4.17em -999.997em); left: 4.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.628em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-44" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">n</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.539em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span></span><span style="border: 0px; display: inline-block; height: 2.205em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.646em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.496em; width: 0px;"></span></span></nobr></span>로 치환을 한 후 <em style="margin: 0px; padding: 0px;">n</em>값을 무한대 값으로 극한을 취하면 <em style="margin: 0px; padding: 0px;">e</em>값에 접근합니다.(<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-6-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-45" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 4.884em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 4.051em;"><span style="border: 0px; clip: rect(1.074em 1000em 2.741em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.199em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-46" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-47" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 3.991em;"><span style="border: 0px; clip: rect(2.92em 1000em 4.527em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-48" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-49" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-50" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-51" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span></span><span class="mn" id="MathJax-Span-52" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span class="mo" id="MathJax-Span-53" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-54" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.539em;"><span style="border: 0px; clip: rect(3.336em 1000em 4.17em -999.997em); left: 4.51563px; margin: 0px 0px 0px -0.176em; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-55" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.515em 1000em 4.17em -999.997em); left: 4.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.628em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-56" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">n</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.539em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-57" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 3.455em; margin: 0px; padding: 0px; position: absolute; top: -4.58em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-58" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-59" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-60" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">n</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span></span><span style="border: 0px; display: inline-block; height: 2.205em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.718em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.496em; width: 0px;"></span></span></nobr></span>)</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbols</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">S</span>
<span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'n'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">S</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Infinity</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[3]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">E</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
원금 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">P</code>, 이자율 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">r</code>, 기간 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">t</code>에 대한 복리이자는 다음 공식을 이용합니다.</div>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">A = P(1+r/n)^nt</code></pre>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">r</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">symbols</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'p,r,t'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">A</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="n" style="margin: 0px; padding: 0px;">r</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">S</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Infinity</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">A</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">p*exp(r*t)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
저 수식이 맞는지 계산해보겠습니다. 100만원을 복리 3% 이자 10년동안 예치한 경우 수령액을 계산해 보겠습니다. 저 수식이 맞는지 우리가 일반적으로 알고있는 수식으로 계산한 값과 비교해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [12]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">A</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1000000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">r</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.03</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[12]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1349858.80757600</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [14]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">A2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="n" style="margin: 0px; padding: 0px;">r</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="n" style="margin: 0px; padding: 0px;">t</span>
<span class="n" style="margin: 0px; padding: 0px;">A2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1000000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">r</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.03</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[14]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1343916.37934412</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
완벽하게 일치하지는 않지만 큰 차이는 없습니다.</div>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
실시간 변화율<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#%EC%8B%A4%EC%8B%9C%EA%B0%84-%EB%B3%80%ED%99%94%EC%9C%A8" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
어떤 자동차의 이동거리를 계산하는 수식이 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">S(t)=5t^2 + 2t + 8</code>라고 가정을 해봅시다. 시간의 제곱에 비례를 한다는 것을 보면 시간이 지날수록 점점 속도가 빨라지고 있다고 생각할 수 있습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이 함수의 독립변수는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">t</code>입니다. 특정 시간동안 (<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">t1</code>시간에서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">t2</code>시간까지)의 단위시간당 이동한 거리를 다음 수식으로 계산이 가능합니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch07.equation.02.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
여기서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">t2</code>와 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">t1</code>간의 시간차이를 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">∂</code>라 할경우 수식을 다음과 같이 표현이 가능하며,</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch07.equation.03.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
여기서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">∂</code>를 0에 근접시키는 극한값은 다음과 같습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch07.equation.04.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">sympy</code>를 이용해서 극한값을 구해보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [21]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">t1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">delta_t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">symbols</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'t,t1,delta_t'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">S</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">8</span>
<span class="n" style="margin: 0px; padding: 0px;">L</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">S</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">t1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">delta_t</span><span class="p" style="margin: 0px; padding: 0px;">})</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">S</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">t1</span><span class="p" style="margin: 0px; padding: 0px;">}))</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">delta_t</span>
<span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">L</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">delta_t</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[21]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">10*t1 + 2</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
극한 계산 결과는 특정시간 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">t1</code>에 대한 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">S(t)</code>의 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">변화율</code>입니다. 즉, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">t</code>에 대한 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">가속도</code>라 할 수 있으며, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">S(t)=5t^2 + 2t + 8</code> 함수의 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">미분</code>값이 됩니다.</div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
5. 함수의 미분(differential) 계산<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#5.-%ED%95%A8%EC%88%98%EC%9D%98-%EB%AF%B8%EB%B6%84(differential)-%EA%B3%84%EC%82%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
함수 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">y=f(x)</code>의 미분은 독립변수 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">x</code>에 대한 종속변수 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">y</code>의 변화율을 계산하는 식입니다. 미분은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">f'(x)</code>나 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-7-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-61" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 3.158em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 2.622em;"><span style="border: 0px; clip: rect(1.789em 1000em 3.158em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.735em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-62" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-63" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">d<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mi" id="MathJax-Span-64" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="texatom" id="MathJax-Span-65" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-66" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-67" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">/</span></span></span><span class="mi" id="MathJax-Span-68" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">d<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mi" id="MathJax-Span-69" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span></span><span style="border: 0px; display: inline-block; height: 2.741em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.361em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.354em; width: 0px;"></span></span></nobr></span>로 표현합니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">sympy</code>의 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Derivative</code> 객체를 이용하여 미분을 계산 할 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [23]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span>
<span class="n" style="margin: 0px; padding: 0px;">D</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">S</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">D</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[23]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Derivative(5*t**2 + 2*t + 8, t)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [25]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Sd</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">D</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">Sd</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[25]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">10*t + 2</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [26]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Sd</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">t1</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[26]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">10*t1 + 2</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [27]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Sd</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[27]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">12</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
사용자에게 수식을 입력받아서 해당 수식의 미분을 출력하는 프로그램을 작성해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">pprint</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy.core.sympify</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">SympifyError</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetDifferential</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">f</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">f</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">DifferentialCalcuator</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="n" style="margin: 0px; padding: 0px;">f</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter a function :'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter the variable to differentiate with respect to:'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">try</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">f</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">f</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">except</span> <span class="n" style="margin: 0px; padding: 0px;">SympifyError</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Invalid Input'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">GetDifferential</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">f</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [4]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">DifferentialCalcuator</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter a function :2*x**2 + 3*x + 1
Enter the variable to differentiate with respect to:x
4⋅x + 3
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
변수가 2개 이상인 경우에도 정상적으로 동작하는지 확인해 보겠습니다. 다중 변수로 이루어진 함수에서 특정 한 개의 변수만을 대상으로 미분을 하는 것을 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">편미분(partial differentiation)</code>이라 합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">DifferentialCalcuator</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter a function :2*x**2 + 3*y**2 + 6*x*y + 3
Enter the variable to differentiate with respect to:x
4⋅x + 6⋅y
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
6. 고차 미분과 최대, 최소값 구하기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#6.-%EA%B3%A0%EC%B0%A8-%EB%AF%B8%EB%B6%84%EA%B3%BC-%EC%B5%9C%EB%8C%80,-%EC%B5%9C%EC%86%8C%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Derivative</code> 클래스를 이용하면 기본적으로는 1차 미분의 결과가 생성됩니다. 고차 미분을 계싼하려면 3번째 인자의 값으로 미분차수를 설정하면 됩니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이번에는 특정 함수에서 어떤 구간에서의 최대, 최소값을 계산하기 위해서 1차와 2차 미분을 사용하는 방법을 알아보겠습니다.</div>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">x^5 - 30x^3 + 50x</code></pre>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
위 함수에서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">[-5, 5]</code> 영역에서의 최대값과 최소값을 구해보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy.plotting</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">plot</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">30</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">50</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span>
<span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[5]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><sympy.plotting.plot.Plot at 0x23b4db60898></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch07.01.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
그래프를 참고하면 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-8-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-70" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 6.193em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 5.122em;"><span style="border: 0px; clip: rect(1.908em 1000em 3.039em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.735em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-71" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-72" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mn" id="MathJax-Span-73" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span class="mo" id="MathJax-Span-74" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">≤</span><span class="mi" id="MathJax-Span-75" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-76" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">≤</span><span class="mn" id="MathJax-Span-77" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">0</span></span><span style="border: 0px; display: inline-block; height: 2.741em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.146em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.211em; width: 0px;"></span></span></nobr></span>에서 지역최소값(<strong style="margin: 0px; padding: 0px;">B</strong>), <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-9-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-78" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 5.241em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 4.348em;"><span style="border: 0px; clip: rect(1.908em 1000em 3.039em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.735em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-79" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-80" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">0</span><span class="mo" id="MathJax-Span-81" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">≤</span><span class="mi" id="MathJax-Span-82" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-83" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">≤</span><span class="mn" id="MathJax-Span-84" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">2</span></span><span style="border: 0px; display: inline-block; height: 2.741em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.146em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.211em; width: 0px;"></span></span></nobr></span>에서 지역최대값(<strong style="margin: 0px; padding: 0px;">C</strong>)을 가지며, <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-10-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-85" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 6.193em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 5.122em;"><span style="border: 0px; clip: rect(1.908em 1000em 3.039em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.735em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-86" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-87" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mn" id="MathJax-Span-88" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">5</span><span class="mo" id="MathJax-Span-89" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">≤</span><span class="mi" id="MathJax-Span-90" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-91" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">≤</span><span class="mn" id="MathJax-Span-92" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">5</span></span><span style="border: 0px; display: inline-block; height: 2.741em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.146em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.211em; width: 0px;"></span></span></nobr></span>에서는 전역 최대값, 최소값을 가집니다. (물론 전체 그래프 영역에서의 전역 최대/최소값은 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-11-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-93" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 3.932em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 3.277em;"><span style="border: 0px; clip: rect(2.146em 1000em 3.098em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.735em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-94" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-95" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">∞</span><span class="mo" id="MathJax-Span-96" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">,</span><span class="mo" id="MathJax-Span-97" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;">−</span><span class="mi" id="MathJax-Span-98" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">∞</span></span><span style="border: 0px; display: inline-block; height: 2.741em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 0.932em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.282em; width: 0px;"></span></span></nobr></span> 입니다.)</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<strong style="margin: 0px; padding: 0px;">극값(extremum)</strong>이란 대상 함수가 해당 지역 (또는 전역)에서 최대값(<strong style="margin: 0px; padding: 0px;">A</strong>)이나 최소값(<strong style="margin: 0px; padding: 0px;">D</strong>)을 갖는 지점을 의미합니다. 그림으로 보면 극값에서의 기울기는 <em style="margin: 0px; padding: 0px;">0</em>입니다. 즉, 해당 함수의 미분값 <em style="margin: 0px; padding: 0px;">f'(x) = 0</em> 을 풀면 됩니다. 이러한 해를 해당 함수의 <strong style="margin: 0px; padding: 0px;">임계점</strong>이라 합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [12]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">pprint</span>
<span class="n" style="margin: 0px; padding: 0px;">dy</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">dy</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[12]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">5*x**4 - 90*x**2 + 50</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [14]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">extrema</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">dy</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">extrema</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[14]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[-sqrt(-sqrt(71) + 9),
sqrt(-sqrt(71) + 9),
-sqrt(sqrt(71) + 9),
sqrt(sqrt(71) + 9)]</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위 4개의 점은 각각 4개의 극값이 됩니다. 위에서 언급한 포인트(<strong style="margin: 0px; padding: 0px;">A,B,C,D</strong>)로 대입해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [15]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">A</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">extrema</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">B</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">extrema</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">C</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">extrema</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">D</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">extrema</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
2차 미분을 하면 해당 임계점이 전역 최대값, 최소값인지 판단이 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [16]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">d2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">d2</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[16]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">20*x*(x**2 - 9)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
여기에 <strong style="margin: 0px; padding: 0px;">A,B,C,D</strong> 값을 대입해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [18]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">d2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">B</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[18]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">127.661060789073</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [19]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">d2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">C</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[19]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-127.661060789073</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [20]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">d2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">D</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[20]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">703.493179468151</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [21]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">d2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">A</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[21]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-703.493179468151</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
모든 임계점을 알고 있는 상태에서 전역 최대값, 최소값은 임계점(A,B,C,D)이나 영역의 끝점(5, -5) 중 한 곳에 존재합니다. 그중 지역 최대값인 A,C는 전역 최소값이 될 수 없으며, 같은 논리로 지역 최소값인 B,D는 전역 최대값이 될 수 없습니다. 이제 도메인 경계값인 (5,-5)를 포함하여 최대,최소값을 구해보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [22]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">A</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[22]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">705.959460380365</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [23]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">B</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[23]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-25.0846626340294</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [24]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">C</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[24]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">25.0846626340294</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [25]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">D</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[25]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-705.959460380365</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [26]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[26]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">375.000000000000</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [27]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[27]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-375.000000000000</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위 결과로 봐서 A에서 전역 최대값을 가지며, D에서 전역 최소값을 가집니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이 방법은 도메인 내 모든 지점에서 1,2차 미분이 가능한 경우 사용이 가능합니다. <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-12-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-99" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 1.253em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(1.372em 1000em 2.384em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.199em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-100" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-101" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.955em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-102" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-103" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-104" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">e</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.479em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-105" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-106" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-107" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span></span><span style="border: 0px; display: inline-block; height: 2.205em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.004em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.068em; width: 0px;"></span></span></nobr></span>의 경우에는 임계점은 없지만, 1,2차 미분이 가능하므로 극한값은 도메인 경계에서 발생합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
7. 그레디언트 상승을 이용한 전역 최대값 알아내기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#7.-%EA%B7%B8%EB%A0%88%EB%94%94%EC%96%B8%ED%8A%B8-%EC%83%81%EC%8A%B9%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%A0%84%EC%97%AD-%EC%B5%9C%EB%8C%80%EA%B0%92-%EC%95%8C%EC%95%84%EB%82%B4%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
특정 도메인 내가 아닌 해당 함수 전역에 대해서 최대값을 알아보고 싶을 경우가 있습니다. 예를 들어 공을 던졌을 경우 최대 수평거리에 도착시키기 위한 공의 투척각도를 알고 싶을 경우를 가정해 보겠습니다. 그레디언트 상승 메소드를 이용하면 전역 최대값을 찾아 낼 수 있습니다. 이 방법은 1차 미분만을 이용하며 전역 최대값을 찾아내기 위해서 반복적으로 계산을 해서 접근하는 방법입니다. 그러므로 사람이 수작업으로 계산하는 것보다는 프로그램적으로 해결하기에 좋은 방법입니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
앞서 투척운동에 관련된 수식은 많이 봤으므로 유도과정은 생략하고 바로 수식을 보도록 하겠습니다. 먼저 최대비행시간에 대한 수식입니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="최대비행시간" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch02.equation.04.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
수평이동 거리는 속도 X 시간 이므로,</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch07.equation.05.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
에 대해서 0 ~ 90도 사이에 값에 대해서 계산을 하면 됩니다. 계산상 편의를 위해서 던진 속도 <em style="margin: 0px; padding: 0px;">u</em>와 중력값 <em style="margin: 0px; padding: 0px;">g</em>를 1값으로 고정하도록 하겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [36]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy.plotting</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">plot</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">math</span>
<span class="n" style="margin: 0px; padding: 0px;">deg0</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">math</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">radians</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">deg90</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">math</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">radians</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">90</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">theta</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'theta'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">R</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">R</span><span class="p" style="margin: 0px; padding: 0px;">,(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">deg0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">deg90</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[36]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><sympy.plotting.plot.Plot at 0x23b509c7438></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch07.02.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
눈으로 봤을 경우 45에서 최대도달거리가 최고점인 것을 확인 할 수 있습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이를 그레디어느 상승 메서드 방식으로 풀어보도록 하겠습니다. 초기 <em style="margin: 0px; padding: 0px;">theta</em> 값을 0.001로 하고 다음 단계의 값은 다음과 같이 계산합니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch07.equation.06.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-13-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-108" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.717em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.598em;"><span style="border: 0px; clip: rect(1.61em 1000em 2.682em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.497em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-109" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-110" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">λ</span></span><span style="border: 0px; display: inline-block; height: 2.503em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.004em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.068em; width: 0px;"></span></span></nobr></span>(람다)는 단계의 크기이며, <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-14-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-111" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 1.61em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.313em;"><span style="border: 0px; clip: rect(1.074em 1000em 2.801em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.199em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-112" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mfrac" id="MathJax-Span-113" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.336em 1000em 4.17em -999.997em); left: 8.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-114" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-115" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">d<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mi" id="MathJax-Span-116" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">R</span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.336em 1000em 4.17em -999.997em); left: 8.51563px; margin: 0px 0px 0px -0.354em; padding: 0px; position: absolute; top: -3.568em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-117" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-118" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">d<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mi" id="MathJax-Span-119" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">θ</span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.015em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span></span><span style="border: 0px; display: inline-block; height: 2.205em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.789em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.568em; width: 0px;"></span></span></nobr></span>는 R을 <em style="margin: 0px; padding: 0px;">theta</em>에 대해 미분한 값입니다. 이렇게 계산한 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-15-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-120" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 2.265em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.848em;"><span style="border: 0px; clip: rect(1.313em 1000em 2.562em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.199em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-121" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-122" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.789em;"><span style="border: 0px; clip: rect(3.098em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-123" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-124" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-125" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">θ</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.479em; margin: 0px; padding: 0px; position: absolute; top: -3.807em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-126" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-127" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-128" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">n</span><span class="mi" id="MathJax-Span-129" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">e</span><span class="mi" id="MathJax-Span-130" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">w</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span></span><span style="border: 0px; display: inline-block; height: 2.205em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.146em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.282em; width: 0px;"></span></span></nobr></span>값과 원래값인 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-16-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-131" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 1.908em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.551em;"><span style="border: 0px; clip: rect(1.313em 1000em 2.562em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.199em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-132" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-133" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.491em;"><span style="border: 0px; clip: rect(3.098em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-134" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-135" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-136" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">θ</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.479em; margin: 0px; padding: 0px; position: absolute; top: -3.807em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-137" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-138" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-139" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">o</span><span class="mi" id="MathJax-Span-140" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">l</span><span class="mi" id="MathJax-Span-141" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">d<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span></span><span style="border: 0px; display: inline-block; height: 2.205em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.146em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.282em; width: 0px;"></span></span></nobr></span>값의 차이가 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-17-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-142" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.598em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.479em;"><span style="border: 0px; clip: rect(1.848em 1000em 2.682em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.497em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-143" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-144" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">ε</span></span><span style="border: 0px; display: inline-block; height: 2.503em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 0.718em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.068em; width: 0px;"></span></span></nobr></span>(epsilon)보다 크면 계속해서 반복수행하고, 작으면 이 값에 대해 <em style="margin: 0px; padding: 0px;">R</em>에서의 최대값으로 계산합니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이를 프로그램으로 구현해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [53]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">grad_ascent_unsafe</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">start</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">step</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">epsilon</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">df</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">oldValue</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">start</span>
<span class="n" style="margin: 0px; padding: 0px;">newValue</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">oldValue</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">step</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">df</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">oldValue</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">abs</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">newValue</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">oldValue</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">></span> <span class="n" style="margin: 0px; padding: 0px;">epsilon</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">oldValue</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">newValue</span>
<span class="n" style="margin: 0px; padding: 0px;">newValue</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">oldValue</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">step</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">df</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">oldValue</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">newValue</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [43]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">m</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">grad_ascent_unsafe</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">R</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">math</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">degrees</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">m</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">44.85681745360614
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
거의 45도에 가까운 값이 나옵니다. 초기속도 u = 25 m/s 이며, 중력값 g= 9.8인 경우에서의 최대 거리를 구해보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [46]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">25</span>
<span class="n" style="margin: 0px; padding: 0px;">g</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span>
<span class="n" style="margin: 0px; padding: 0px;">R</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">u</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">g</span>
<span class="n" style="margin: 0px; padding: 0px;">m</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">grad_ascent_unsafe</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">R</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">math</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">degrees</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">m</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">R</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">m</span><span class="p" style="margin: 0px; padding: 0px;">})</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">44.997815081691805
</pre>
</div>
</div>
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[46]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">63.7755100185965</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
주의점 1. f'(x)의 해가 여러개 존재할 경우<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#%EC%A3%BC%EC%9D%98%EC%A0%90-1.-f'(x)%EC%9D%98-%ED%95%B4%EA%B0%80-%EC%97%AC%EB%9F%AC%EA%B0%9C-%EC%A1%B4%EC%9E%AC%ED%95%A0-%EA%B2%BD%EC%9A%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
그런데 앞서 살펴본 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-18-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-145" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 3.693em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 3.039em;"><span style="border: 0px; clip: rect(3.396em 1000em 7.146em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-146" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 3.039em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-147" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-148" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-149" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-150" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-151" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-152" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-153" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">5</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.735em; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-154" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mn" id="MathJax-Span-155" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">30</span><span class="msubsup" id="MathJax-Span-156" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-157" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-158" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-159" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-160" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-161" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-162" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.229em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.485em; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-163" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-164" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">50</span><span class="mi" id="MathJax-Span-165" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 4.408em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 4.218em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -3.139em; width: 0px;"></span></span></nobr></span> 함수에 대해서 그레디언트 상승 메서드를 적용하면 어떻게 될까요 ? 얼핏 생각하더라도 초기값, 진행방향에 따라 각각 다른 결과가 나오리란걸 예상할수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [47]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">grad_ascent_unsafe</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[47]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-4.17446382061392</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [48]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">grad_ascent_unsafe</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[48]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-0.757522804632242</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [49]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">grad_ascent_unsafe</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[49]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.757522804632242</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [50]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">grad_ascent_unsafe</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[50]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">4.17446382061392</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
사실상 step 값을 음수(-)로 넣는 다는건 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">그레디언트 상승</code>이 아닌 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">그레디언트 하강</code>이 됩니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이 경우에는 함수 전역의 최대값이 아니라 1차미분 값의 크기가 0에 가까운 지점인 지역 최대값,최소값에서도 멈추게 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
주의점 2. f'(x)의 해가 없는 경우<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#%EC%A3%BC%EC%9D%98%EC%A0%90-2.-f'(x)%EC%9D%98-%ED%95%B4%EA%B0%80-%EC%97%86%EB%8A%94-%EA%B2%BD%EC%9A%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<em style="margin: 0px; padding: 0px;">log(x)</em> 나 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-19-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-166" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 1.253em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(1.372em 1000em 2.384em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.199em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-167" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-168" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.955em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-169" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-170" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-171" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">e</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.479em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-172" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-173" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-174" style="border: 0px; display: inline; font-family: MathJax_Math-italic; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span></span><span style="border: 0px; display: inline-block; height: 2.205em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.004em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.068em; width: 0px;"></span></span></nobr></span>와 같이 f'(x)의 해가 없는 경우에는 무한루프에 빠져서 프로그램이 종료하지 않을 것입니다. 이런 경우를 판단하여 오류를 발생해 주도록 함수를 수정하겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [51]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">grad_ascent</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">start</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">step</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">epsilon</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">df</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">not</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">df</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">raise</span> <span class="ne" style="color: #d2413a; font-weight: bold; margin: 0px; padding: 0px;">ValueError</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Solution for this function does not exist.'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">grad_ascent_unsafe</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">start</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">step</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">epsilon</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [54]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">grad_ascent</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[54]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-4.17446382061392</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [56]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">log</span>
<span class="n" style="margin: 0px; padding: 0px;">grad_ascent</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">log</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_text output_error" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="ansi-red-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">---------------------------------------------------------------------------</span>
<span class="ansi-red-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">ValueError</span> Traceback (most recent call last)
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;"><ipython-input-56-86876c9993c9></span> in <span class="ansi-cyan-fg" style="margin: 0px; padding: 0px;"><module></span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">()</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 1</span> <span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">from</span> sympy <span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">import</span> log
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">----> 2</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;"> </span>grad_ascent<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span>log<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span>x<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">,</span> x<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">,</span> <span class="ansi-cyan-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">0</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">,</span> <span class="ansi-cyan-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">1e-3</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">,</span> <span class="ansi-cyan-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">1e-6</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span>
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;"><ipython-input-51-03c15b41cd62></span> in <span class="ansi-cyan-fg" style="margin: 0px; padding: 0px;">grad_ascent</span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(func, symbol, start, step, epsilon)</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 2</span> df <span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">=</span> Derivative<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span>func<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">,</span> symbol<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">.</span>doit<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 3</span> <span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">if</span> <span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">not</span> solve<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span>df<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">:</span>
<span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">----> 4</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;"> </span><span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">raise</span> ValueError<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span><span class="ansi-blue-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">'Solution for this function does not exist.'</span><span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span>
<span class="ansi-green-fg" style="margin: 0px; padding: 0px;"> 5</span> <span class="ansi-green-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">return</span> grad_ascent_unsafe<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">(</span>func<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">,</span> symbol<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">,</span> start<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">,</span> step<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">,</span> epsilon<span class="ansi-yellow-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">)</span>
<span class="ansi-red-intense-fg ansi-bold" style="margin: 0px; padding: 0px;">ValueError</span>: Solution for this function does not exist.</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
8. 함수의 적분 계산<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#8.-%ED%95%A8%EC%88%98%EC%9D%98-%EC%A0%81%EB%B6%84-%EA%B3%84%EC%82%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
적분은 미분의 반대입니다. 함수 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">f(x)</code>의 적분을 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">F(x)</code>로 표현합니다. 특정함수의 미분 결과를 적분하면 원래 함수가 됩니다. 무한적분은 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-20-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-175" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 3.812em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 3.158em;"><span style="border: 0px; clip: rect(4.051em 1000em 8.396em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -4.997em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-176" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 3.158em;"><span style="border: 0px; clip: rect(3.039em 1000em 4.408em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-177" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">F<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.122em;"></span></span><span class="mo" id="MathJax-Span-178" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span><span class="mi" id="MathJax-Span-179" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-180" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span><span class="mo" id="MathJax-Span-181" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">=</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(2.979em 1000em 4.467em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.497em; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-182" style="border: 0px; display: inline; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;">∫<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.122em;"></span></span><span class="texatom" id="MathJax-Span-183" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-184" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-185" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">f<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.063em;"></span></span><span class="mo" id="MathJax-Span-186" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span><span class="mi" id="MathJax-Span-187" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.039em 1000em 4.408em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.009em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-183-MathJax-Continue-1" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-184-MathJax-Continue-1" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-188" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span></span><span class="mi" id="MathJax-Span-189" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">d<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mi" id="MathJax-Span-190" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 5.003em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 4.932em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -3.925em; width: 0px;"></span></span></nobr></span>로 표시합니다. 하지만 실제로 사용할때는 정적분(difinite integral)로 사용하며 이 값은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">F(b)-F(a)</code>와 같이 특정 범위내의 적분값을 구해서 계산합니다. python에서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Integral</code> 객체를 이용해서 적분을 계산할 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbols</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">k</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">symbols</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x,k'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">fx</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">k</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span>
<span class="n" style="margin: 0px; padding: 0px;">Fx</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">Fx</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[2]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">k*x**2/2</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
정적분을 계산하려면 두번째 인자로 적분할 심볼과 그 범위를 튜플로 전달하면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Fx0_2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx</span><span class="p" style="margin: 0px; padding: 0px;">,(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">))</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">Fx0_2</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[3]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">2*k</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위 결과는 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-21-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-191" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 4.229em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 3.515em;"><span style="border: 0px; clip: rect(2.801em 1000em 4.527em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-192" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 3.515em;"><span style="border: 0px; clip: rect(2.801em 1000em 4.527em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-193" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.467em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-194" style="border: 0px; display: inline; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;">∫<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.122em;"></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.336em 1000em 4.17em -999.997em); left: 0.717em; margin: 0px; padding: 0px; position: absolute; top: -4.521em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-195" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-196" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-197" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.336em 1000em 4.17em -999.997em); left: 0.479em; margin: 0px; padding: 0px; position: absolute; top: -3.628em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-198" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-199" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-200" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">0</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="texatom" id="MathJax-Span-201" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-202" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-203" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">k</span><span class="mi" id="MathJax-Span-204" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mi" id="MathJax-Span-205" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">d<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mi" id="MathJax-Span-206" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.789em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.496em; width: 0px;"></span></span></nobr></span>의 결과입니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
기하학적 측면에서 생각을 해보자면 정적분은 함수에 대한 해당 영역의 넓이를 뜻합니다. 쉽게 손으로 계산이 가능하도록 하기 위해 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">f(x)=x</code>라는 그래프를 생각해 보겠습니다. 이 그래프에서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">x=2</code> 에서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">x=4</code>영역의 넓이를 구하려면 해당영역 아래 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">2 x 2</code> 크기의 사각형 1개와 삼각형 1개의 넓이를 더하면 됩니다. 즉 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">2 x 2 + 2 x 2 / 2 = 6</code>이 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy.plotting</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">plot</span>
<span class="n" style="margin: 0px; padding: 0px;">fx</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span>
<span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx</span><span class="p" style="margin: 0px; padding: 0px;">,(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[5]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><sympy.plotting.plot.Plot at 0x26c298b1b00></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch07.03.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이 것을 정적분을 이용해서 풀어보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx</span><span class="p" style="margin: 0px; padding: 0px;">,(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">))</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">6</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
9. 확률밀도함수<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#9.-%ED%99%95%EB%A5%A0%EB%B0%80%EB%8F%84%ED%95%A8%EC%88%98" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
어떤 과목의 점수를 0 ~ 20 으로 매긴다고 할 경우, 그 과목 학생이 11 ~ 12 사이의 성적을 얻을 확률을 계산해보겠습니다. 일반적인 확률공식으로는 계산이 힘듭니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">P(11< x < 12) = n(E) / n(S)</code> 수식으로 표현을 해보자면 그 경우의 수가 거의 무한대에 가까울 정도로 힘듭니다. 학생 수가 10명만 된다고 하더라도 각 10명이 얻을 수 있는 점수의 범위는 0 ~ 20 이며 이 모든 경우에 수를 다 구해서 그 중 특정 한 명이 11 ~ 12인 경우만 추출해서 계산해야 합니다. 학생 수가 100명만 되어도 상상하기도 싫어집니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
만약 확률밀도함수 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">P(x)</code>를 알고 있다면 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">P(11< x < 12)</code>를 계산하는 것은 x=11과 x=12 사이의 영역입니다. 이는 정적분값인 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-22-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-207" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 4.11em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 3.396em;"><span style="border: 0px; clip: rect(2.801em 1000em 5.955em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-208" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 3.396em;"><span style="border: 0px; clip: rect(2.801em 1000em 4.527em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-209" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.491em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.467em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-210" style="border: 0px; display: inline; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;">∫<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.122em;"></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.336em 1000em 4.17em -999.997em); left: 0.717em; margin: 0px; padding: 0px; position: absolute; top: -4.521em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-211" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-212" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-213" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">12</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.336em 1000em 4.17em -999.997em); left: 0.479em; margin: 0px; padding: 0px; position: absolute; top: -3.628em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-214" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-215" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-216" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">11</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="texatom" id="MathJax-Span-217" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-218" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-219" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">P<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.122em;"></span></span><span class="mo" id="MathJax-Span-220" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span><span class="mi" id="MathJax-Span-221" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.039em 1000em 4.408em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.438em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-217-MathJax-Continue-1" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-218-MathJax-Continue-1" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-222" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span><span class="mi" id="MathJax-Span-223" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">d<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mi" id="MathJax-Span-224" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 3.504em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -2.211em; width: 0px;"></span></span></nobr></span>와 같습니다. 이 경우의 확률밀도 함수는 다음과 같습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch07.equation.07.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이 식의 정적분을 계산하면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [9]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">exp</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">sqrt</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">pi</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">S</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">exp</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="n" style="margin: 0px; padding: 0px;">sqrt</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">pi</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">,(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">11</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">12</span><span class="p" style="margin: 0px; padding: 0px;">))</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[9]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.135905121983278</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
확률밀도 함수는 특징을 가집니다.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">확률은 절대 0보다 작을수 없으므로 모든 영역에서의 결과값은 항상 0보다 크거나 같습니다.</li>
<li style="margin: 0px; padding: 0px;">전체영역(-Inf ~ Inf)에서의 정적분 값은 1이 됩니다.</li>
<li style="margin: 0px; padding: 0px;">연속형 랜덤 변수의 특성상 정확한 한 지점의 확률값은 언제나 0 입니다.</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [10]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">,(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">S</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">NegativeInfinity</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">S</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Infinity</span><span class="p" style="margin: 0px; padding: 0px;">))</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[10]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1.00000000000000</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
확률밀도 함수는 연속형 랜덤 변수를 이용하기 때문에 조금은 상식에 맞지 않는 계산결과가 나옵니다. 실제로 가능한 일이더라도 특정한 한 지점에 대한 확률값은 0이 됩니다. 왜냐면 전제 자체가 경우의 수를 무한대로 놓고서 계산을 하기 때문에 계산 결과는 결국 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-23-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-225" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 1.372em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(1.134em 1000em 2.741em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.199em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-226" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mfrac" id="MathJax-Span-227" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.836em;"><span style="border: 0px; clip: rect(3.336em 1000em 4.17em -999.997em); left: 7.01563px; margin: 0px 0px 0px -0.176em; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-228" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.515em 1000em 4.17em -999.997em); left: 7.01563px; margin: 0px 0px 0px -0.354em; padding: 0px; position: absolute; top: -3.628em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-229" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">∞</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.836em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span></span><span style="border: 0px; display: inline-block; height: 2.205em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.646em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.496em; width: 0px;"></span></span></nobr></span>이 됩니다. 정적분으로 계산을 하더라도 특정한 지점에 대한 정적분값은 0이 됩니다. (<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">F(a) - F(a) = 0</code>)</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [11]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">,(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">11.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">11.5</span><span class="p" style="margin: 0px; padding: 0px;">))</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[11]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 0.636em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
프로그래밍 연습<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%97%B0%EC%8A%B5" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 한 점에서 함수의 연속 검증<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#1.--%ED%95%9C-%EC%A0%90%EC%97%90%EC%84%9C-%ED%95%A8%EC%88%98%EC%9D%98-%EC%97%B0%EC%86%8D-%EA%B2%80%EC%A6%9D" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">입력된 함수의 한 점에 대해서 연속인지 아닌지를 검증하는 프로그램을 작성하세요.</code></pre>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
함수가 특정한 한 점에서 연속이 되려면 해당 지점에서의 미분값이 존재해야합니다. 이를 극한으로 생각하자면 양쪽방향에서 해당 지점으로 접근한 경우의 값이 같아야 한다는 뜻도 됩니다. 예를 들어서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">1/x</code>함수에 대해서 2 에서는 연속이지만, 0 에서는 연속적이지 않습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [24]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Limit</span>
<span class="n" style="margin: 0px; padding: 0px;">fx</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="n" style="margin: 0px; padding: 0px;">x</span>
<span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dir</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'+'</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[24]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1/2</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [25]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dir</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'-'</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[25]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1/2</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [26]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dir</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'+'</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[26]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">oo</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [27]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dir</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'-'</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[27]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-oo</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위 특징을 이용해서 함수를 만들어 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [34]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">IsContinuous</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">value</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">rightApproch</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">value</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dir</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'-'</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">leftApproch</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Limit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">value</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dir</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'+'</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">rightApproch</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="n" style="margin: 0px; padding: 0px;">leftApproch</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Console_IsContinuous</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="n" style="margin: 0px; padding: 0px;">fx</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter a function:'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter the variale:'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">v</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter the point to check the continuity at:'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">IsContinuous</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">v</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [35]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Console_IsContinuous</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter a function:1/x
Enter the variale:x
Enter the point to check the continuity at:1
True
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [36]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Console_IsContinuous</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter a function:1/x
Enter the variale:x
Enter the point to check the continuity at:0
False
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 그레디언트 하강 구현<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#2.-%EA%B7%B8%EB%A0%88%EB%94%94%EC%96%B8%ED%8A%B8-%ED%95%98%EA%B0%95-%EA%B5%AC%ED%98%84" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이미 앞에서 그레디언트 상승 구현을 구현하였습니다. (<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">grad_ascent</code> 함수 참조) 그곳에 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">step</code>값을 음수로 넣어주면 그레디언트 하강으로 동작하게 됩니다. 이미 구현된 내용이므로 생략하겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 두 곡선 간 면적<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#3.--%EB%91%90-%EA%B3%A1%EC%84%A0-%EA%B0%84-%EB%A9%B4%EC%A0%81" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">입력 받은 단일 변수 2개의 함수에 대해서 둘러쌓인 면적을 계산하세요.</code></pre>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
그 동안 배운 수학공식을 이용하면 쉽게 해결이 가능합니다.</div>
<ol style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">두 곡선을 입력받음</li>
<li style="margin: 0px; padding: 0px;">공통해를 구함</li>
<li style="margin: 0px; padding: 0px;">공통해를 순서대로 정렬</li>
<li style="margin: 0px; padding: 0px;">각 공통해 구간에서의 각각의 곡선에 대한 적분값을 계산</li>
<li style="margin: 0px; padding: 0px;">두 적분값의 차를 구함 (한 값에서 다른 값을 뺀 후 절대값으로 표현)</li>
<li style="margin: 0px; padding: 0px;">모든 공통해 사이를 다 계산할때까지 4번부터의 과정을 반복</li>
<li style="margin: 0px; padding: 0px;">모든 공통해 사이의 공간들에 대한 계산 결과를 더함</li>
</ol>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
차례대로 하나씩 해보겠습니다. 예제로 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">f(x) = x</code> , <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">f(x) = x^2</code>을 이용해서 풀어보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [73]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Integral</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">fx1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span>
<span class="n" style="margin: 0px; padding: 0px;">fx2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [38]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># 공통해를 구하는 함수</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">SolveSimultaneousEquations</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">func2</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">func</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">func1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">func2</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [41]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">result</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">SolveSimultaneousEquations</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">fx2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">result</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[41]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[0, 1]</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [51]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;">#입력된 숫자들의 연속된 범위를 Tuple로 리턴하는 함수</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetContinuousRanges</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">sort</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">ranges</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">ranges</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">ranges</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [54]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">ranges</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetContinuousRanges</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">result</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">ranges</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[54]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[(0, 1)]</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [53]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;">#주어진 범위내의 두 함수 사이의 면적를 계산하는 함수</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetArea</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">func2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ranges</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">s1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func1</span><span class="p" style="margin: 0px; padding: 0px;">,(</span><span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">ranges</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">ranges</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]))</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">s2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func2</span><span class="p" style="margin: 0px; padding: 0px;">,(</span><span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">ranges</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">ranges</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]))</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">abs</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">s2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [55]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">GetArea</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">fx2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ranges</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">])</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[55]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.166666666666667</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [56]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;">#여러 범위를 입력받아서 그 사이의 면적들의 합을 계산하는 함수</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetSumAreas</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">func2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ranges</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">acc</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">r</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">ranges</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">acc</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">GetArea</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">func2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">r</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">acc</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [57]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">GetSumAreas</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">fx2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ranges</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[57]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.166666666666667</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [60]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;">#입력된 두 함수 사이의 면적을 계산하는 함수</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetAreaOfTwoFunc</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">func2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">result</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">SolveSimultaneousEquations</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">func2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">ranges</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetContinuousRanges</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">result</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">GetSumAreas</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">func2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ranges</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [61]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">GetAreaOfTwoFunc</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">fx2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[61]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.166666666666667</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [64]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">fx3</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span>
<span class="n" style="margin: 0px; padding: 0px;">GetAreaOfTwoFunc</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">fx3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[64]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.500000000000000</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
4. 곡선 길이 계산<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=a55a19bacb6c2d4755e0a3640ced682f3e726d82&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f613535613139626163623663326434373535653061333634306365643638326633653732366438322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830372e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch07.ipynb&repository_id=44855550#4.-%EA%B3%A1%EC%84%A0-%EA%B8%B8%EC%9D%B4-%EA%B3%84%EC%82%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">f(x) = 2x^2 + 3x + 1 이라는 곡선 방정식에서 A(-5,36) 에서 B(10,231)까지의 호의 길이를 구하세요.</code></pre>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이를 계산하기 위해서는 다음 적분을 계산하면 됩니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식" src="https://github.com/DevStarSJ/Study/raw/a55a19bacb6c2d4755e0a3640ced682f3e726d82/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch07.equation.08.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
자세한 증명방법은 <a href="http://cronix.tistory.com/44" style="color: #0088cc; margin: 0px; padding: 0px;">http://cronix.tistory.com/44</a> 링크를 참조하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [100]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">sqrt</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetLengthInCurve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">start</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">end</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">dy</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Derivative</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">sqrt</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">dy</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">Integral</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">start</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">end</span><span class="p" style="margin: 0px; padding: 0px;">))</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">doit</span><span class="p" style="margin: 0px; padding: 0px;">()</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">evalf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [101]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">fx</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">GetLengthInCurve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fx</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[101]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">268.372650946022</pre>
</div>
</div>
</div>
</div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-26308719689775398752016-07-29T09:16:00.003+09:002016-08-01T08:14:19.221+09:00Doing Math with Python. Chapter 06 기하학적 형상과 프랙탈 그리기<h1 style="background-color: white; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; position: relative; text-rendering: optimizeLegibility;">
<span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">이 포스팅은 </span><b style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; line-height: 18.48px;"><span style="color: blue;">Jupiter Notebook</span></b><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">로 작성되었습니다.</span><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">그러니 직접 </span><span style="color: blue; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;"><b>Python</b></span><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;"> 코드를 실행시키고 싶으신 분은 아래 Link에서 다운로드 받으셔서 실행할 수 있습니다.</span><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><a href="https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython" style="color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px; text-decoration: none;">https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython</a></h1>
<div>
<br /></div>
<div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h1 style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
파이썬으로 풀어보는 수학<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EB%8A%94-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h1>
<h1 style="color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
<ul style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">원서명 : Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (ISBN 9781593276409)</li>
<li style="margin: 0px; padding: 0px;">지은이 : 아미트 사하(Amit Saha)</li>
<li style="margin: 0px; padding: 0px;">원서 및 관련자료 : <a href="https://www.nostarch.com/doingmathwithpython" style="color: #0088cc; margin: 0px; padding: 0px;">https://www.nostarch.com/doingmathwithpython</a></li>
<li style="margin: 0px; padding: 0px;">번역서 : <a href="http://www.acornpub.co.kr/book/doing-math-with-python" style="color: #0088cc; margin: 0px; padding: 0px;">http://www.acornpub.co.kr/book/doing-math-with-python</a></li>
</ul>
<div style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="책표지" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/cover.jpg" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EB%8A%94-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h1>
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 1.27em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
6장 기하학적 형상과 프랙탈 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#6%EC%9E%A5-%EA%B8%B0%ED%95%98%ED%95%99%EC%A0%81-%ED%98%95%EC%83%81%EA%B3%BC-%ED%94%84%EB%9E%99%ED%83%88-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. MatPlotLib의 패치(patches)로 기하학적 형상 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#1.-MatPlotLib%EC%9D%98-%ED%8C%A8%EC%B9%98(patches)%EB%A1%9C-%EA%B8%B0%ED%95%98%ED%95%99%EC%A0%81-%ED%98%95%EC%83%81-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
앞장에서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">matplotlib</code>을 사용하여 그래프를 그리는 것은 많이 해봤습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib.pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">plt</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.01.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
우리가 명시적으로 생성하지는 않았지만 그래프를 위해 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Figure</code>객체와 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Axes</code>객체를 내부적으로 자동생성하여서 그 위에 그래프를 작성한 것입니다. 명시적으로 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Figure</code>와 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Axes</code>객체를 생성 할 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">fig</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">figure</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">fig</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[3]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><matplotlib.figure.Figure at 0x2ae4677c9e8></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [4]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">ax</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">axes</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[4]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><matplotlib.axes._subplots.AxesSubplot at 0x2ae46a59668></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
명시적 생성뿐 아니라 현재 객체에 대한 참조를 가져오는 함수도 존재합니다. 만약 해당 객체가 존재하지 않는 상태에서는 생성을 합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">gcf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[5]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><matplotlib.figure.Figure at 0x2ae4677c9e8></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">gca</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><matplotlib.axes._subplots.AxesSubplot at 0x2ae46a59668></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이 얘기를 한 이유는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">matplotlib</code>에 도형(기하학적 형상)을 그리는데 필요하기 때문입니다.</div>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
원 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#%EC%9B%90-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
원을 생성하여 축(axes)에 추가하는 방법으로 그릴 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [12]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">circle</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Circle</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">radius</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">gca</span><span class="p" style="margin: 0px; padding: 0px;">()</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">add_patch</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">circle</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">axis</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'scaled'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="원" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.02.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
패치의 색상을 변경하려면 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">fc</code>(채우기)와 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">ec</code>(테두리)에 색상을 전달하면 됩니다. 원(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Circle</code>) 이외에 타원(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Ellipse</code>), 다각형(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Polygon</code>), 직사각형(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Rectangle</code>) 등의 여러가지 다른 패치도 지원합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [20]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">circle</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Rectangle</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">height</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">width</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">fc</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'r'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ec</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'g'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">gca</span><span class="p" style="margin: 0px; padding: 0px;">()</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">add_patch</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">circle</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">axis</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'scaled'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="사각형" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.03.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 움직이는 그림 만들기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#2.-%EC%9B%80%EC%A7%81%EC%9D%B4%EB%8A%94-%EA%B7%B8%EB%A6%BC-%EB%A7%8C%EB%93%A4%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">matplotlib</code>의 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">animation</code>기능을 이용하면 움직이는 그림을 만들 수 있습니다. 윈도우를 닫을때까지 반지름이 무한대로 커지는 원을 그려보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [25]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">animation</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span>
<span class="n" style="margin: 0px; padding: 0px;">circle</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Circle</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.05</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">update_radius</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">circle</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">circle</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">radius</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">circle</span>
<span class="n" style="margin: 0px; padding: 0px;">fig</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">gcf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">axes</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xlim</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">ylim</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">set_aspect</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'equal'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">add_patch</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">circle</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">ani</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">animation</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">FuncAnimation</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fig</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">update_radius</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">fargs</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">circle</span><span class="p" style="margin: 0px; padding: 0px;">,),</span> <span class="n" style="margin: 0px; padding: 0px;">frames</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">30</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">interval</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">50</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">title</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Simple Circle Animation'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="원 애니메이션" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.04.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
중심에서부터 원이 점점 커지는 애니메이션이 30 프레임만큼 진행된 후 후 다시 처음부터 시작하는 것을 확인할 수 있습니다.<br />
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">animation.FuncAnimation</code>에 전달되는 인자들의 목록을 살펴보겠습니다.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">fig</code> : 현 그림의 객체</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">update_radius</code> : 프레임 번호와 프레임마다 갱신하기를 바라는 패치 객체가 전달되어서 원하는 모양으로 변경한 뒤 패치 객체를 리턴</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">fargs</code> : <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">update_radius()</code>에게 전달되는 인자들의 목록 (프레임 번호는 제외)</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">frames</code> : 애니메이션의 프레임 개수. 여기에 적힌 수 만큼 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">update_radius()</code>를 호출하게 됨</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">interval</code> : 프레임 간의 시간 간격 (밀리미터 단위)</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">repeat</code> : <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">True</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">False</code> 값을 가질 수 있으며 애니메이션의 반복 유무를 결정. (default는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">True</code>)</li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">animation.FuncAnimation</code> 객체를 사용하지 않으면서 변수로 저장한 이유는 가비지 컬렉터에 의해서 해제되지 않게하기 위함입니다.</div>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
투사체의 포물선 애니메이션<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#%ED%88%AC%EC%82%AC%EC%B2%B4%EC%9D%98-%ED%8F%AC%EB%AC%BC%EC%84%A0-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
2장에서 던진 공에 대한 포물선 운동 궤적을 그래프로 표시해보았습니다. 이번에는 이를 애니메이션으로 구현해 보겠습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
먼저 2장에서 배운 내용에 대해서 간략하게 복습해 보겠습니다.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">초기속도 : u</li>
<li style="margin: 0px; padding: 0px;">초기던진 각도 : theta</li>
<li style="margin: 0px; padding: 0px;">x방향 속도 : u * cos(theta)</li>
<li style="margin: 0px; padding: 0px;">y방향 속도 : u * sin(theta) - gt</li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
비행시간은 y방향으로 최고점에 도달하는 시간의 2배입니다. 최고점에 도달하는 시간은 y방향의 속도가 0이 되는 시점입니다. 이를 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">sympy</code>를 이용해서 풀어보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">symbols</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">cos</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">pprint</span>
<span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">g</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">time</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">symbols</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'u,theta,g,t'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">xSpeed</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">cos</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">ySpeed</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">g</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">time</span>
<span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">ySpeed</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-g⋅t + u⋅sin(θ)
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">ySpeed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">time</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">flightTime</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
<span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">flightTime</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">2⋅u⋅sin(θ)
──────────
g
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<ul style="margin: 0px 2em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">비행시간 : 2 <em style="margin: 0px; padding: 0px;">u </em>sin(theta) / g</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [4]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">xDistance</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">xSpeed</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">time</span>
<span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xDistance</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">t⋅u⋅cos(θ)
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">expand</span>
<span class="n" style="margin: 0px; padding: 0px;">yDistance</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">expand</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">ySpeed</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">time</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">g</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">time</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">yDistance</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"> 2
g⋅t
- ──── + t⋅u⋅sin(θ)
2
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">y</code>방향 이동거리는 적분을 통해서 계산을 해야하므로 유도과정은 생략하겠습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
그럼 위 수식을 이용해서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">u</code>와 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">theta</code>값이 주어졌을 경우 최대 비행시간을 구하고 그것으로 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">x</code>축 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">y</code>축의 최대이동 거리를 구하는 함수를 만들어 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">math</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetFlightTime</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">radian</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">math</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">radians</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">flightTime</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">g</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
<span class="n" style="margin: 0px; padding: 0px;">GetFlightTime</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">45</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.721537531823008</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [7]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetFlightDistance</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetFlightTime</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">radian</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">math</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">radians</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">xDist</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">xDistance</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">time</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
<span class="n" style="margin: 0px; padding: 0px;">yDist</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">yDistance</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">time</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">g</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">xDist</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yDist</span>
<span class="n" style="margin: 0px; padding: 0px;">GetFlightDistance</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">45</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[7]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(2.55102040816327, 0.637755102040816)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">y</code>축은 전체시간으로 이동거리를 계산하면 0에 가까운 수가 나옵니다. 그러니 최고 높이인 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">t/2</code>만큼의 시간동안의 이동거리로 계산해서 화면에 표시할 최대 크기를 구해냅니다. 이제 포물선 그래프를 그리는데 필요한 모든 계산은 끝났습니다. 위 계산식을 이용해서 실제 비행동안의 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">x</code>,<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">y</code>좌표들을 계산해주는 함수를 작성해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [8]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetProjectilePoints</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">step</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.001</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetFlightTime</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">radian</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">math</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">radians</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">currentTime</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">xList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="n" style="margin: 0px; padding: 0px;">yList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="n" style="margin: 0px; padding: 0px;">currentTime</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><=</span> <span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xDistance</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">time</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">currentTime</span><span class="p" style="margin: 0px; padding: 0px;">}))</span>
<span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">yDistance</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">time</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">currentTime</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">g</span><span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span><span class="p" style="margin: 0px; padding: 0px;">}))</span>
<span class="n" style="margin: 0px; padding: 0px;">currentTime</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">step</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
그냥 위 함수의 결과에 대해서 그림만 그려주면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [14]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">DrawPlot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">DrawProjectile</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">step</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.001</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetProjectilePoints</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawPlot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawProjectile</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">45</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.05.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">plot</code>상에 그려보니 계산 과정은 제대로 되었다는 것을 확인할 수 있습니다. 그럼 이제 원래 목적인 애니메이션으로 표현해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [21]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">animation</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">update_position</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">circle</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">circle</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">center</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">circle</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">AnimateProjectile</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">step</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.005</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetFlightTime</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">xDist</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yDist</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetFlightDistance</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">circle</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Circle</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">fig</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">gcf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">axes</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xlim</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xDist</span><span class="p" style="margin: 0px; padding: 0px;">)),</span> <span class="n" style="margin: 0px; padding: 0px;">ylim</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">yDist</span><span class="p" style="margin: 0px; padding: 0px;">)))</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">set_aspect</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'equal'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">add_patch</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">circle</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetProjectilePoints</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">speed</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radian</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">gravity</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">step</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">maxFrame</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">step</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">ani</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">animation</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">FuncAnimation</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fig</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">update_position</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">fargs</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">circle</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">frames</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">maxFrame</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">interval</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">title</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Projectile'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">AnimateProjectile</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">45</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="투사체 애니메이션" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.06.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 프랙탈 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#3.-%ED%94%84%EB%9E%99%ED%83%88-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<blockquote style="border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 5px; margin: 1em 2em; padding: 0px 0px 0px 15px;">
<div style="font-size: 16.25px; line-height: 1.25; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">프랙탈</code> 이란 단순한 구조가 끊임없이 반복되면서 복잡하고 묘한 전체 구조를 만드는 것으로, 즉<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">자기유사성(self-similarity)</code>와 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">순환성(recursiveness)</code>라는 특징을 가지고 있다.<br />
우리 생활 속 프랙탈 by 희훈 박 (<a href="https://prezi.com/gffdwoyxj7qd/presentation/" style="color: #0088cc; margin: 0px; padding: 0px;">https://prezi.com/gffdwoyxj7qd/presentation/</a>)</div>
</blockquote>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
여기서는 대표적인 <strong style="margin: 0px; padding: 0px;">프랙탈</strong> 중 3개 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">반즐리의 고사리(Barnsley fern)</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">시어핀스키의 삼각형(Sierpinski triangle)</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">만델브로트 집합(Mandelbrot set)</code>을 그려보겠습니다.</div>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
평면상의 점 변환 (단순한 프랙탈 예제)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#%ED%8F%89%EB%A9%B4%EC%83%81%EC%9D%98-%EC%A0%90-%EB%B3%80%ED%99%98-(%EB%8B%A8%EC%88%9C%ED%95%9C-%ED%94%84%EB%9E%99%ED%83%88-%EC%98%88%EC%A0%9C)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
프랙탈의 개념을 이해하기 위해서 가장 단순한 형식으로 프랙탈을 설명해 드리고자 합니다. 평면상의 어떤 점 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">P(x,y)</code>가 있을 경우 이것을 다른 임의의 점 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Q(x+1, y+1)</code>로 변환을 시킬 경우, 이 과정을 계속해서 반복하면 우측상단 방향으로 점이 1개씩 생성될 것입니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">animation</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">SimplePoint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">DrawFractal</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">maxStep</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">drawStyle</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">startX</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">startY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># drawStyle: [1] plot with marker, [2] plot without marker, [3] scatter</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">startX</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">startY</span>
<span class="n" style="margin: 0px; padding: 0px;">xList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">yList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">maxStep</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">func</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">drawStyle</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">marker</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'o'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">elif</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">drawStyle</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">scatter</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawFractal</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">SimplePoint</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="한방향 포인트" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.07.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
여기서 조금의 변화를 줘보겠습니다. 이동하는 룰을 하나가 아닌 두 개의 룰을 줄고 랜덤으로 추출하게 하겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">random</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">SimpleTwoPoint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">rand</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">random</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">randint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">rand</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawFractal</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">SimpleTwoPoint</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="두방향 랜덤 포인트" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.08.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
교제에서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">random.choice()</code>를 사용하여 구현을 하였습니다. 이 함수는 입력된 리스트 중 동일한 확률로 랜덤으로 선택된 결과를 리턴합니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">random.choice()</code>를 사용한 방법으로 구현해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Trans0</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Trans1</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">transList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">Trans0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Trans1</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">SimpleTwoPoint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">random</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">choice</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">transList</span><span class="p" style="margin: 0px; padding: 0px;">)(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawFractal</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">SimpleTwoPoint</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="두방향 랜덤 포인트" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.09.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
일반적으로 이러한 지그재그 경로를 라인상에서 움직이는 모양을 랜덤워크라고 합니다. 이런 것이 프랙탈을 생성하기 위한 기초 아이디어입니다.</div>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
반즐리의 고사리<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#%EB%B0%98%EC%A6%90%EB%A6%AC%EC%9D%98-%EA%B3%A0%EC%82%AC%EB%A6%AC" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
영국수학자 마이클 반즐리(Michael Barnsley)는 점으로 간단한 변환을 반복 적용해 고사리와 같은 구조를 만드는 방법을 설명했습니다.</div>
<blockquote style="border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 5px; margin: 1em 2em; padding: 0px 0px 0px 15px;">
<div style="font-size: 16.25px; line-height: 1.25; padding: 0px; text-align: justify;">
<strong style="margin: 0px; padding: 0px;">변환 1</strong>(0.85%)<br />
x = 0.85x + 0.4y<br />
y = -0.04x + 0.85y + 1.6</div>
<div style="font-size: 16.25px; line-height: 1.25; margin-top: 1em; padding: 0px; text-align: justify;">
<strong style="margin: 0px; padding: 0px;">변환 2</strong>(0.07%)<br />
x = 0.2x - 0.26y<br />
y = 0.23x + 0.22y + 1.6</div>
<div style="font-size: 16.25px; line-height: 1.25; margin-top: 1em; padding: 0px; text-align: justify;">
<strong style="margin: 0px; padding: 0px;">변환 3</strong>(0.07%)<br />
x = -0.15x + 0.28x<br />
y = 0.26x + 0.24y + 0.44</div>
<div style="font-size: 16.25px; line-height: 1.25; margin-top: 1em; padding: 0px; text-align: justify;">
<strong style="margin: 0px; padding: 0px;">변환 4</strong>(0.01%)<br />
x = 0<br />
y = 0.16y</div>
</blockquote>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
먼저 앞장(ch.05)에서 생성한 비균일 확률에서의 index를 구하는 함수를 재사용하도록 가져오겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">random</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">get_index</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">max</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">sum</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">acc</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">rand</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">random</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">random</span><span class="p" style="margin: 0px; padding: 0px;">()</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">max</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">idx</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">percent</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">enumerate</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">acc</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">percent</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">rand</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="n" style="margin: 0px; padding: 0px;">acc</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">idx</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이제 위 반즐리의 수식을 이용해서 그려보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Barnsley1</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.85</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.04</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.04</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.85</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.6</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Barnsley2</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.26</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.23</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.22</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.6</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Barnsley3</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.15</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.28</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.26</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.24</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.44</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Barnsley4</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span> <span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.16</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span>
<span class="n" style="margin: 0px; padding: 0px;">barnsleyList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">Barnsley1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Barnsley2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Barnsley3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Barnsley4</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">barnsleyPercent</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.85</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.07</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.07</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.01</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">BarnsleyFractal</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">barnsleyList</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">get_index</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">barnsleyPercent</span><span class="p" style="margin: 0px; padding: 0px;">)](</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawFractal</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">BarnsleyFractal</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="반즐리의 고사리" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.12.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
프로그래밍 연습<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%97%B0%EC%8A%B5" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 사각형 내에 원을 포함시키기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#1.-%EC%82%AC%EA%B0%81%ED%98%95-%EB%82%B4%EC%97%90-%EC%9B%90%EC%9D%84-%ED%8F%AC%ED%95%A8%EC%8B%9C%ED%82%A4%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">먼저 큰 사각형을 하나 그린 다음,
그 사각형 내에 반지름 0.5인 원을 사각형 내에 채워넣으세요.
(단 사격형의 변의 길이가 1 단위로 소숫점이 없는 길이로 해야만 정확하게 원을 채울 수가 있습니다.)</code></pre>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
먼저 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">사각형</code>을 그리는 함수를 생성하겠습니다. 나중에 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">원</code>도 그려야 하니 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">plot</code>에 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">패치</code>를 전달하여 그리는 함수와 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">사각형 패치</code>를 전달하는 함수로 분리하겠습니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Rectangle</code>로 그리는 방법은 앞에서 살펴봤으니 이번에는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Polygon</code>을 이용해서 그려보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [19]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetSquare</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">height</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Polygon</span><span class="p" style="margin: 0px; padding: 0px;">([(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="n" style="margin: 0px; padding: 0px;">height</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="n" style="margin: 0px; padding: 0px;">height</span><span class="p" style="margin: 0px; padding: 0px;">)],</span> <span class="n" style="margin: 0px; padding: 0px;">closed</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">fc</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'r'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">DrawPatches</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">patches</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">height</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">axes</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xlim</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">),</span><span class="n" style="margin: 0px; padding: 0px;">ylim</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">height</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">set_aspect</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'equal'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">patch</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">patches</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">add_patch</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">patch</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위에 만든 함수들이 제대로 동작하는지 테스트해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [13]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetSquare</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetSquare</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawPatches</span><span class="p" style="margin: 0px; padding: 0px;">([</span><span class="n" style="margin: 0px; padding: 0px;">s1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">s2</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="사각형 2개" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.13.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
잘 그려지는군요. 그럼 원을 그리는 함수를 추가해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [14]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetCircle</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">r</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Circle</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">radius</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">r</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">fc</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'b'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
원을 그리는 함수도 테스트 해보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [21]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">c1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetCircle</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">c2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetCircle</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">2.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">2.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawPatches</span><span class="p" style="margin: 0px; padding: 0px;">([</span><span class="n" style="margin: 0px; padding: 0px;">c1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">c2</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">3.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">3.5</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="원 2개" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.14.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
잘 그려지는군요. 그럼 이제 크기를 입력 받아서 해당 영역에 원으로 채우는 로직만 구현해주면 문제가 끝나겠군요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [29]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">MakeCirclesInArea</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">height</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">r</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">cx</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">cy</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">r</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">r</span>
<span class="n" style="margin: 0px; padding: 0px;">ex</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ey</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">height</span>
<span class="n" style="margin: 0px; padding: 0px;">circles</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="n" style="margin: 0px; padding: 0px;">cx</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">r</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><=</span> <span class="n" style="margin: 0px; padding: 0px;">ex</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="n" style="margin: 0px; padding: 0px;">cy</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">r</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><=</span> <span class="n" style="margin: 0px; padding: 0px;">ey</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">circles</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">GetCircle</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">cx</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">cy</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">r</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">cy</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">r</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
<span class="n" style="margin: 0px; padding: 0px;">cx</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">r</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
<span class="n" style="margin: 0px; padding: 0px;">cy</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">r</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">circles</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위 함수가 제대로 동작하는지 테스트 해보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [30]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">DrawPatches</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">MakeCirclesInArea</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">),</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="내접한 원들" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.15.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이제 위에서 생성한 함수들을 하나로 합쳐서 문제를 해결하는 함수를 만들어 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [32]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">DrawSquareAndCircles</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">height</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">r</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">square</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetSquare</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">height</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">circles</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">MakeCirclesInArea</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">height</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">patches</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">square</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">patches</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">extend</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">circles</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawPatches</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">patches</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="n" style="margin: 0px; padding: 0px;">height</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawSquareAndCircles</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="내접한 원들" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.16.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 시어핀스키의 삼각형 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#2.-%EC%8B%9C%EC%96%B4%ED%95%80%EC%8A%A4%ED%82%A4%EC%9D%98-%EC%82%BC%EA%B0%81%ED%98%95-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
폴란드 수학자 바츌라프 시어핀스키(Waclaw Sierpinski)의 정삼각형을 그리는 프랙탈 규칙은 다음과 같습니다.</div>
<blockquote style="border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 5px; margin: 1em 2em; padding: 0px 0px 0px 15px;">
<div style="font-size: 16.25px; line-height: 1.25; padding: 0px; text-align: justify;">
<strong style="margin: 0px; padding: 0px;">변환 1</strong><br />
x = 0.5x<br />
y = 0.5y<br />
<strong style="margin: 0px; padding: 0px;">변환 2</strong><br />
x = 0.5x + 0.5<br />
y = 0.5y + 0.5<br />
<strong style="margin: 0px; padding: 0px;">변환 3</strong><br />
x = 0.5x + 1 y = 0.5y</div>
</blockquote>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
모든 확률은 1/3으로 동일합니다.</div>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">시어펀스키의 삼각형을 그리는 프로그램을 작성하세요.</code></pre>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
반즐리의 고사리 그리기에 생성한 함수들을 재사용하여 위 수식과 확률만 새로 입력해주면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [8]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Sierpinski1</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Sierpinski2</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Sierpinski3</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span>
<span class="n" style="margin: 0px; padding: 0px;">SierpinskiList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">Sierpinski1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Sierpinski2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Sierpinski3</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">SierpinskiPercent</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">SierpinskiFractal</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">SierpinskiList</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">get_index</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">SierpinskiPercent</span><span class="p" style="margin: 0px; padding: 0px;">)](</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawFractal</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">SierpinskiFractal</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="시어핀스키 삼각형" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.17.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 헤논 함수 탐색<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#3.-%ED%97%A4%EB%85%BC-%ED%95%A8%EC%88%98-%ED%83%90%EC%83%89" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
1976년 마이클 헤논(Michael Henon)은 헤논 함수를 소개하였습니다.</div>
<blockquote style="border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 5px; margin: 1em 2em; padding: 0px 0px 0px 15px;">
<div style="font-size: 16.25px; line-height: 1.25; padding: 0px; text-align: justify;">
P(x,y) -> Q(y + 1 - 1.4x^2, 0,3x)</div>
</blockquote>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">(1,1)에서 시작해 2만번 수행하는 그래프를 만들어 보세요.
애니메이션으로 작성하는 경우 추가 점수가 있습니다.</code></pre>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
먼저 그래프로 작성해보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [9]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">HenonFunction</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.4</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.3</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span>
<span class="n" style="margin: 0px; padding: 0px;">HenonList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">HenonFunction</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">HenonPercent</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">HenonFractal</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">HenonList</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">get_index</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">HenonPercent</span><span class="p" style="margin: 0px; padding: 0px;">)](</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawFractal</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">HenonFractal</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="헤논 함수" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.18.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
책 문제대로 시작점을 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">1,1</code>에서 하면 이상한 곳에 점이 찍힙니다. 그냥 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">0,0</code>부터 하면 올바르게 됩니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이제 추가 점수를 받기 위해 애니메인션으로 작성해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [21]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">animation</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetHenonResult</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">step</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">startX</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">startY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">startX</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">startY</span>
<span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[],</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">step</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">HenonFunction</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">update_HenonPosition</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">ax</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">circle</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Circle</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">]),</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.01</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">add_patch</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">circle</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">ax</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">AnimateHenon</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">maxFrame</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetHenonResult</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">maxFrame</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">circle</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Circle</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.01</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">fig</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">gcf</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">axes</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xlim</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.5</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">ylim</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">ax</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">set_aspect</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'equal'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">ani</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">animation</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">FuncAnimation</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">fig</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">update_HenonPosition</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">fargs</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">ax</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">xList</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yList</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">frames</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">maxFrame</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">interval</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">title</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Henon Function'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">AnimateHenon</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20000</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="헤논 함수" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.19.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
기존에는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">circle</code>의 위치를 업데이트하여 해당 객체를 리턴했는데, 이번에는 그렇게 하면 점들이 계속 움직이기 때문에, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">ax</code>를 전달하여 거기에 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">circle</code>을 추가하고 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">ax</code>를 리턴받는 식으로 구현하였습니다.</div>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
4. 만델브로트(Mandelbrot) 집합 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#4.-%EB%A7%8C%EB%8D%B8%EB%B8%8C%EB%A1%9C%ED%8A%B8(Mandelbrot)-%EC%A7%91%ED%95%A9-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
본 문제를 풀기전에 화면에 이미지를 출력하는 예제가 있습니다.</div>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">x,y 가 모두 0에서 5까지인 카르테지안 평면에서 각 축을 따라 5개의 동일한 지점을 고려하여 25개의 영역에 흰색부터 검은색까지의 색분포를 갖는 점들을 색칠하는 프로그램을 작성하도록 합시다. 각각의 점의 색은 검정색을 0, 흰색을 10으로 설정하여 그 사이값을 가집니다.</code></pre>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
먼저 2차원 List를 생성하는 함수를 작성해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [89]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Get2DList</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xSize</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ySize</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">list2D</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">ySize</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">list2D</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">([])</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xSize</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">list2D</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">]</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">list2D</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이제 2차원 공간에 색상을 칠한후 이미지로 출력(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">imshow</code>)을 해보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [90]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib.pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">plt</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib.cm</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">cm</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">random</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">MakeRandomColors</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xSize</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ySize</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">colorSize</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">list2D</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Get2DList</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xSize</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ySize</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xSize</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">ySize</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">list2D</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">][</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">]</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">random</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">randint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">colorSize</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">list2D</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">DrawImage</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">list2D</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">imshow</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">list2D</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">origin</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'lower'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">extent</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">cmap</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="n" style="margin: 0px; padding: 0px;">cm</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Greys_r</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">interpolation</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'nearest'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">colorbar</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">DrawImage</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">MakeRandomColors</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="imshow 실습" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.20.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">imshow</code>의 주요 인자에 대한 설명입니다.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">origin</code> : <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">lower</code>인 경우 입력된 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">list2D[0][0]</code> 값이 이미지 상 (0,0)으로 매칭</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">extent</code> : 이미지 좌측하단을 (0,0), 우측상단을 (5, 5)로 설정</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">cmap=cm.Greys_r</code> : 회색스케일의 이미지를 생성</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">interpolation='nearest</code> : 가장 인접한 점과는 같은 색상으로 그리지 않도록 설정</li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
위 예제를 20 x 20 사이즈의 20 color로 표시해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [91]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">DrawImage</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">MakeRandomColors</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="imshow 실습" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.21.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이제 본 문제로 들어가겠습니다.</div>
<h5 style="color: inherit; font-family: inherit; font-size: 14px; font-style: italic; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
만델브로트 집합 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=b425f3c2660bcf25d8066b683c1fc301b7e630bb&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f623432356633633236363062636632356438303636623638336331666333303162376536333062622f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830362e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch06.ipynb&repository_id=44855550#%EB%A7%8C%EB%8D%B8%EB%B8%8C%EB%A1%9C%ED%8A%B8-%EC%A7%91%ED%95%A9-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h5>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">(-2.5, -1.0) ~ (1.0, 1.0) 사이의 x-y평면 영역에 각 축을 400개의 동일한 공간의 점으로 나눕니다.
다음에 순서대로 2D List를 채웁니다.
1. 2개의 복소수를 생성 (j는 -1**0.5)
z1 = 0 + 0j
c = xi + ykj
2. 레이블 iteration을 생성하고 0으로 설정 (iteration = 0)
3. 복소수 z1 = z1^2 + c 생성
4. itertation 값을 1증가
5. abs(z1) < 2 이며 iteration < max_iteration 이면 3단계로 이동, 그렇지 않으면 6단계로 이동 (여기서는 max_teration을 1,000으로 설정 : 값이 클수록 더 복잡한 이미지가 생성되나 더 복잡해짐)
6. 점(xi, yk)의 색상은 iteration 값으로 설정</code></pre>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
문제만 봐서는 무슨 그림이 나올지 감이 안옵니다. 한 단계씩 구현해 보도록 하겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [92]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">MakeMandelbrotSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">size</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">max_iteration</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">list2D</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Get2DList</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">size</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">size</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">x0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">xn</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">2.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">y0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yn</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">dx</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xn</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">x0</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">size</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">dy</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">yn</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">y0</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">size</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">size</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">size</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">iteration</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">z</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">complex</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">c</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">complex</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x0</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">dx</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y0</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">dy</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">abs</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">z</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">and</span> <span class="n" style="margin: 0px; padding: 0px;">iteration</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="n" style="margin: 0px; padding: 0px;">max_iteration</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">z</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">z</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">c</span>
<span class="n" style="margin: 0px; padding: 0px;">iteration</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">list2D</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">][</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">]</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">iteration</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">list2D</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [93]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">imshow</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">MakeMandelbrotSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">400</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1000</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">origin</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'lower'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">extent</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">2.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">cmap</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="n" style="margin: 0px; padding: 0px;">cm</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Greys_r</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">interpolation</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'nearest'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">colorbar</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="imshow 실습" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.22.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
아래 위키에 가시면 자세한 설명과 재밌는 그림을 볼 수 있습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<a href="https://ko.wikipedia.org/wiki/%EB%A7%9D%EB%8D%B8%EB%B8%8C%EB%A1%9C_%EC%A7%91%ED%95%A9" style="color: #0088cc; margin: 0px; padding: 0px;">https://ko.wikipedia.org/wiki/%EB%A7%9D%EB%8D%B8%EB%B8%8C%EB%A1%9C_%EC%A7%91%ED%95%A9</a></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
점 갯수를 증가하면 더 이미지가 선명해지고, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">max_iteration</code>을 증가하면 더 복잡한 그림이 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [94]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">imshow</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">MakeMandelbrotSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">600</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2000</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">origin</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'lower'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">extent</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">2.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">cmap</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="n" style="margin: 0px; padding: 0px;">cm</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">Greys_r</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">interpolation</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'nearest'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">colorbar</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="imshow 실습" src="https://github.com/DevStarSJ/Study/raw/b425f3c2660bcf25d8066b683c1fc301b7e630bb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch06.23.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
시간만 오래 걸리지 별차이 없어 보이네요.</div>
</div>
</div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-55688683511640560272016-07-24T16:45:00.000+09:002016-08-01T08:13:43.034+09:00Doing Math with Python. Chapter 05 집합과 확률<h1 style="background-color: white; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; position: relative; text-rendering: optimizeLegibility;">
<span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">이 포스팅은 </span><b style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; line-height: 18.48px;"><span style="color: blue;">Jupiter Notebook</span></b><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">로 작성되었습니다.</span><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">그러니 직접 </span><span style="color: blue; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;"><b>Python</b></span><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;"> 코드를 실행시키고 싶으신 분은 아래 Link에서 다운로드 받으셔서 실행할 수 있습니다.</span><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><a href="https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython" style="color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px; text-decoration: none;">https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython</a></h1>
<div>
<br /></div>
<div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h1 style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
파이썬으로 풀어보는 수학<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EB%8A%94-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h1>
<h1 style="color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
<ul style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">원서명 : Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (ISBN 9781593276409)</li>
<li style="margin: 0px; padding: 0px;">지은이 : 아미트 사하(Amit Saha)</li>
<li style="margin: 0px; padding: 0px;">원서 및 관련자료 : <a href="https://www.nostarch.com/doingmathwithpython" style="color: #0088cc; margin: 0px; padding: 0px;">https://www.nostarch.com/doingmathwithpython</a></li>
<li style="margin: 0px; padding: 0px;">번역서 : <a href="http://www.acornpub.co.kr/book/doing-math-with-python" style="color: #0088cc; margin: 0px; padding: 0px;">http://www.acornpub.co.kr/book/doing-math-with-python</a></li>
</ul>
<div style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="책표지" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/cover.jpg" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EB%8A%94-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h1>
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 1.27em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
5장 집합과 확률<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#5%EC%9E%A5-%EC%A7%91%ED%95%A9%EA%B3%BC-%ED%99%95%EB%A5%A0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 집합은 무엇인가 ?<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#1.-%EC%A7%91%ED%95%A9%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-?" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
집합(set)은 개별 객체의 모음(collection)입니다. 통상 객체를 원소(element)나 구성원(member)라고 부릅니다. 집합과 모음의 다른점으로는 집합은 동일한 2개의 원소를 가질 수 없습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">SymPy</code>를 사용해 파이썬에서 집합으로 작업하는 방법에 대해서 살펴보겠습니다.</div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 집합 생성<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#2.-%EC%A7%91%ED%95%A9-%EC%83%9D%EC%84%B1" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
수학기호로 집합을 표현할 때는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">{ 2, 4, 6 }</code>와 같이 중괄호를 사용합니다. 파이썬에서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">FiniteSet</code> 클래스를 사용하여 표현할 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[3]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{2, 4, 6}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [4]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="nb" style="color: green; margin: 0px; padding: 0px;">type</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[4]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">sympy.sets.sets.FiniteSet</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
동일한 집합에 정수, 분수, 부동소수점수를 같이 저장할 수도 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">fractions</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Fraction</span>
<span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Fraction</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{1/5, 1, 1.5}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">카디널리티(cardinality)</code>란 집합의 구성원 수를 의미합니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">len()</code>함수를 이용해 계산이 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [7]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[7]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">대상 집합에 숫자가 존재하는지 여부</code>는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">in</code>연산자를 사용해 알 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [8]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">s</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[8]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">False</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [9]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">s</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[9]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">True</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">공집합(empty set)</code>을 생성하기 위해서는 인자가 없이 생성하면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [10]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[10]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">EmptySet()</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">리스트</code>나 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">튜플</code>을 인자로 전달해서 집합을 생성할 수도 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [12]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">members</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">members</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[12]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{1, 2, 3}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
앞서 언급했듯이 집합 내에는 중복된 값을 허용하지 않습니다. 같은 값을 여러번 넣어도 한 번만 추가되고 나머지는 모두 무시됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [16]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[16]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{1, 2, 3}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
그리고, 입력 순서와 저장되는 순서는 무관합니다. 집합 내의 구성원에 대한 순서는 별도로 저장하고 있지 않기 때문입니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [18]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">m</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">m</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1
2
3
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
두 집합의 구성원이 서로 다른 순서로 저장되더라도, 모든 요소들이 같다면 두 집합은 같은 집합으로 취급합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [19]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">7</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="n" style="margin: 0px; padding: 0px;">t</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[19]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">True</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 부분집합, 초집합, 파워집합<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#3.-%EB%B6%80%EB%B6%84%EC%A7%91%ED%95%A9,-%EC%B4%88%EC%A7%91%ED%95%A9,-%ED%8C%8C%EC%9B%8C%EC%A7%91%ED%95%A9" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
집합 s의 모든 구성원이 집합 t의 구성원일 경우 s는 t의 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">부분집합(subset)</code>이라고 정의합니다. 파이썬에서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">is_subset()</code> 함수를 사용해서 확인이 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [20]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_subset</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[20]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">True</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [21]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_subset</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[21]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">False</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [22]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_subset</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[22]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">True</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
공집합은 모든 집합의 부분집합이며, 모든 집합은 자기 자신이 부분집합입니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">초집합(superset)</code>은 부분집합의 반대 개념으로 집합t가 집합s의 모든 구성원을 포함할 경우 집합t는 집합s의 초집합이라고 부릅니다. 파이썬에서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">is_superset()</code> 함수를 사용해서 확인이 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [23]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_superset</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[23]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">False</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [24]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_superset</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[24]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">True</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [25]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_superset</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[25]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">True</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">파워집합(powerset)</code>은 모든 가능한 부분집합입니다. 모든 집합은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">2 ** cadinality</code> 만큼의 부분집합을 가집니다. (공집합, 자기자신을 포함) 파이썬에서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">powerset()</code> 함수를 사용해 찾아낼 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [26]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">ps</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">powerset</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">ps</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[26]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{EmptySet(), {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [27]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">ps</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[27]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">8</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
동일하지 않은 집합t와 집합s가 있을 경우, 집합s가 집합t의 부분 집합일 경우 집합t는 집합s의 초집합이라고 할 수 있습니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">is_proper_subset()</code> , <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">is_proper_superset()</code> 함수를 사용해서 부분집합, 초집합 관계를 확인 할 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [28]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_proper_subset</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[28]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">True</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [29]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_proper_superset</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[29]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">True</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [30]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_proper_subset</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[30]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">False</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [31]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_proper_superset</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[31]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">False</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
4. 집합 연산<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#4.-%EC%A7%91%ED%95%A9-%EC%97%B0%EC%82%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
합집합<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#%ED%95%A9%EC%A7%91%ED%95%A9" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
두 집합의 모든 구성원을 포함하는 집합입니다. (중복된 구성원은 하나만 포함됩니다.)</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">union</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[1]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{1, 2, 3, 4, 6}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
교집합<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#%EA%B5%90%EC%A7%91%ED%95%A9" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
두 집합에 공통적으로 존재하는 구성원들로만 이루어진 집합입니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">intersect</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[2]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{2}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
카르테지안 곱<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#%EC%B9%B4%EB%A5%B4%ED%85%8C%EC%A7%80%EC%95%88-%EA%B3%B1" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
두 집합의 구성원들을 택해 모든 가능한 쌍으로 구성된 집합입니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
카르테지안 곱의 카디널리티는 개별 집합의 카디널리티의 곱입니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [4]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[4]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{1, 2, 3} x {2, 4, 6}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">e</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(1, 2)
(1, 4)
(1, 6)
(2, 2)
(2, 4)
(2, 6)
(3, 2)
(3, 4)
(3, 6)
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">True</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
지수연산자를 이용해서 설정한 횟수만큼의 곱도 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [7]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">u</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[7]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{1, 2} x {1, 2} x {1, 2}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [8]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">e</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(1, 1, 1)
(1, 1, 2)
(1, 2, 1)
(1, 2, 2)
(2, 1, 1)
(2, 1, 2)
(2, 2, 1)
(2, 2, 2)
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
다중변수 집합에 공식 적용<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#%EB%8B%A4%EC%A4%91%EB%B3%80%EC%88%98-%EC%A7%91%ED%95%A9%EC%97%90-%EA%B3%B5%EC%8B%9D-%EC%A0%81%EC%9A%A9" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
다음 수식은 추의 길이별 주기값을 구하는 수식입니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식 추의주기" src="https://github.com/DevStarSJ/Study/raw/04b2549cd8f9d70098d7b391e727f38b561da80e/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch05.equation.01.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">T : 추가 한번 왕복하는데 소요되는 시간</li>
<li style="margin: 0px; padding: 0px;">L : 추의 길이</li>
<li style="margin: 0px; padding: 0px;">상수값 : pi, g(지역의 중력가속도 : 대략 9.8 m/s^2)</li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
길이에 따라 추의 주기가 어떻게 변하는지 알고 싶다면 위 수식에 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">L</code>값을 변경해가면서 입력해보면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [10]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">pi</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">time_period</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">length</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">g</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span>
<span class="n" style="margin: 0px; padding: 0px;">T</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">pi</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">length</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">g</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">T</span>
<span class="n" style="margin: 0px; padding: 0px;">L</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">15</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">18</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">21</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">22.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">25</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">e</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">L</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">time_period</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Length: {0} cm Time Period: {1:.3f} s'</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">format</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Length: 15.0 cm Time Period: 0.777 s
Length: 18.0 cm Time Period: 0.852 s
Length: 21.0 cm Time Period: 0.920 s
Length: 22.5 cm Time Period: 0.952 s
Length: 25.0 cm Time Period: 1.004 s
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
입력으로 사용된 집합의 값이 cm 단위이기 때문에 함수에 전달시 100으로 나누어서 전달하였습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
서로 다른 3곳(중력이 다른 곳)에서 실험을 한다고 가정해 보겠습니다. (적도 : 9.78 , 북극 9.83, 호주 9.8)</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [14]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">time_period</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">length</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">g</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">pi</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">length</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">g</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span>
<span class="n" style="margin: 0px; padding: 0px;">L</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">15</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">18</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">21</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">22.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">25</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">G</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.78</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.83</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'{0:^15}{1:^15}{2:^15}'</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">format</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Length(cm)'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Gravity(m/m^2)'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Time Period(s)'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">e</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">L</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">G</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">time_period</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">])</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'{0:^15}{1:^15}{2:^15.3f}'</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">format</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]),</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]),</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"> Length(cm) Gravity(m/m^2) Time Period(s)
15.0 9.78 0.778
15.0 9.8 0.777
15.0 9.83 0.776
18.0 9.78 0.852
18.0 9.8 0.852
18.0 9.83 0.850
21.0 9.78 0.921
21.0 9.8 0.920
21.0 9.83 0.918
22.5 9.78 0.953
22.5 9.8 0.952
22.5 9.83 0.951
25.0 9.78 1.005
25.0 9.8 1.004
25.0 9.83 1.002
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
5. 확률<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#5.-%ED%99%95%EB%A5%A0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">실험</strong>(experiment) : 각각 가능한 확률에 대한 테스트, 실험을 한 번 실행하는 것을 시도(trial)이라고 함. 예를 들어 주사위 던지기, 카드 뽑기</li>
<li style="margin: 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">표본공간</strong>(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">S</code>) : 모든 가능한 실험 결과들의 집합. 예를 들어 6면 주사위를 한 번 던진 경우 표본공간 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">S = {1, 2, 3, 4, 5, 6}</code></li>
<li style="margin: 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">사건</strong>(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">E</code>) : 표본공간의 부분집합. 예를 들어 6면 주사위의 표본공간 중 숫자 3이 나올 확률</li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식 확률" src="https://github.com/DevStarSJ/Study/raw/04b2549cd8f9d70098d7b391e727f38b561da80e/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch05.equation.02.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
특정 사건이 일어날 확률(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">P(E)</code>)는 해당 사건의 개수(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">n(E)</code>)를 전체 표본공간의 개수(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">n(S)</code>)로 나눈 값입니다. 주사위를 던져서 3이 나올 확률은 다음과 같습니다.</div>
<blockquote style="border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 5px; margin: 1em 2em; padding: 0px 0px 0px 15px;">
<div style="font-size: 16.25px; line-height: 1.25; padding: 0px; text-align: justify;">
S = { 1, 2, 3, 4, 5, 6 } E = { 3 } n(S) = 6 n(E) = 1 P(E) = 1 / 6</div>
</blockquote>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이를 함수로 작성해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [23]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">probability</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">space</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">event</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">event</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">space</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위 함수를 이용해서 1 ~ 20 사이의 숫자 중 소수(Prime number)일 확률을 구해보도록 하겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [31]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">check_prime</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">number</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">number</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">!=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">factor</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">number</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">number</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">%</span> <span class="n" style="margin: 0px; padding: 0px;">factor</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">get_primes</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">number</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">primes</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">number</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">check_prime</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">primes</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">space</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">21</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">event</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">get_primes</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">probability</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">space</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">event</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[31]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.4</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [32]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">event</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[32]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{2, 3, 5, 7, 11, 13, 17, 19}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
사건A나 사건B의 확률<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#%EC%82%AC%EA%B1%B4A%EB%82%98-%EC%82%AC%EA%B1%B4B%EC%9D%98-%ED%99%95%EB%A5%A0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
A 사건과 B 사건의 집합을 합집합(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">union</code>)한 다음에 확률을 계산하면 됩니다.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">S : 6면주사위를 1번 던짐 -> { 1, 2, 3, 4, 5, 6 }</li>
<li style="margin: 0px; padding: 0px;">A : 소수 -> { 2, 3, 5 }</li>
<li style="margin: 0px; padding: 0px;">B : 홀수 -> { 1, 3, 5 }</li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
일 경우의 사건 A나 B일 확률은 다음과 같습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [19]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">S</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">7</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">A</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">B</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">A</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">union</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">B</span><span class="p" style="margin: 0px; padding: 0px;">))</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">S</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[19]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.6666666666666666</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
사건 A 이면서 사건 B일 확률<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#%EC%82%AC%EA%B1%B4-A-%EC%9D%B4%EB%A9%B4%EC%84%9C-%EC%82%AC%EA%B1%B4-B%EC%9D%BC-%ED%99%95%EB%A5%A0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
두 집합의 교집합(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">intersect</code>)의 확률을 계산하면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [20]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">A</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">intersect</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">B</span><span class="p" style="margin: 0px; padding: 0px;">))</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">S</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[20]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.3333333333333333</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
6. 랜덤 숫자 생성<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#6.-%EB%9E%9C%EB%8D%A4-%EC%88%AB%EC%9E%90-%EC%83%9D%EC%84%B1" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
파이썬에서 랜덤숫자를 생성하려면 먼저 표준 라이브러리 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">random</code>을 포함시켜야 합니다. 주로 사용되는 랜덤함수는 다음의 2가지 정도만 알아도 됩니다.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">randint(from, to) : from 에서 to 사이의 숫자를 리턴합니다. int값을 넣어줘야 합니다.</li>
<li style="margin: 0px; padding: 0px;">random() : 0에서 1사이의 부동소수점 숫자를 생성합니다.</li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
주사위를 굴려서 총합이 20될 때까지 몇 번을 던져야 하는지를 랜덤을 통해서 구현해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [24]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">random</span>
<span class="n" style="margin: 0px; padding: 0px;">target_score</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">roll</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">random</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">randint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">play_game</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="n" style="margin: 0px; padding: 0px;">score</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">num_rolls</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="n" style="margin: 0px; padding: 0px;">score</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="n" style="margin: 0px; padding: 0px;">target_score</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">dice</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">roll</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">num_rolls</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Rolled: {0}'</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">format</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">dice</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">score</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">dice</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Score of {0} reached in {1} rolls'</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">format</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">score</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">num_rolls</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">play_game</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Rolled: 6
Rolled: 6
Rolled: 1
Rolled: 5
Rolled: 2
Score of 20 reached in 5 rolls
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [25]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">play_game</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Rolled: 6
Rolled: 4
Rolled: 3
Rolled: 1
Rolled: 5
Rolled: 6
Score of 25 reached in 6 rolls
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
목표점수 달성이 가능한가 ?<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#%EB%AA%A9%ED%91%9C%EC%A0%90%EC%88%98-%EB%8B%AC%EC%84%B1%EC%9D%B4-%EA%B0%80%EB%8A%A5%ED%95%9C%EA%B0%80-?" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이번에는 목표로 한 점수가 최대던지기 횟수 내에 달성이 가능한지 그 여부 및 확률을 계산해주는 프로그램을 작성해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">random</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">randint</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">find_prob</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">target_score</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">max_rolls</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">dice</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">7</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">space</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">dice</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="n" style="margin: 0px; padding: 0px;">max_rolls</span>
<span class="n" style="margin: 0px; padding: 0px;">eventNum</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">e</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">space</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">sum</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">>=</span> <span class="n" style="margin: 0px; padding: 0px;">target_score</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">eventNum</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">eventNum</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">space</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">find_prob</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[1]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.16666666666666666</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [7]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">find_prob</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[7]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
주사위를 3번 던져서 최고값은 18이므로 20이 나올 수 있는 확률은 0% 입니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
위에서 사용한 랜덤은 균일 랜덤 숫자(uniform random number)였습니다. 비균일 랜덤을 생성하려면 어떻게 해야 할까요 ? 가장 간단하게 생각해 볼 수 있는 방법은 높은 확률에 더 넓은 영역을 지정하여 랜덤을 수행하는 것입니다.</div>
<blockquote style="border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 5px; margin: 1em 2em; padding: 0px 0px 0px 15px;">
<div style="font-size: 16.25px; line-height: 1.25; padding: 0px; text-align: justify;">
동전을 던졌을 때 앞면(True)이 나올 확률이 2/3이고, 뒷면(False)가 나올 확률이 1/3일 경우</div>
</blockquote>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [9]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">random</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">nonUniformToss</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">random</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">random</span><span class="p" style="margin: 0px; padding: 0px;">()</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span>
<span class="n" style="margin: 0px; padding: 0px;">trueNum</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10000</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">nonUniformToss</span><span class="p" style="margin: 0px; padding: 0px;">()</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">trueNum</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">trueNum</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[9]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">6657</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위 함수를 조금 더 일반적으로 구현하여 재사용 가능하도록 해보겠습니다. 인자로 확률값을 넣은 리스트를 전달받아서 호출시 마다 해당 <strong style="margin: 0px; padding: 0px;">index</strong>를 리턴받도록 하겠습니다</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [19]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">random</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">get_index</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">max</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">sum</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">acc</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">rand</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">random</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">random</span><span class="p" style="margin: 0px; padding: 0px;">()</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">max</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">idx</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">percent</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">enumerate</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">acc</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">percent</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">rand</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="n" style="margin: 0px; padding: 0px;">acc</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">idx</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이 함수를 이용해서 다음의 경우에 대해서 시뮬레이션 해보겠습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
다음 확률로 지폐를 배분하는 ATM기의 경우 만번의 지폐를 배분했을 때 각각 몇회 배분되었는지를 구해보겠습니다.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">$5 : 1/6</li>
<li style="margin: 0px; padding: 0px;">$10 : 1/6</li>
<li style="margin: 0px; padding: 0px;">$20 : 1/3</li>
<li style="margin: 0px; padding: 0px;">$50 : 1/3</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [20]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">collections</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">defaultdict</span>
<span class="n" style="margin: 0px; padding: 0px;">d</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">defaultdict</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">keys</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'$5'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'$10'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'$20'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'$50'</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">probabilities</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10000</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">d</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">keys</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">get_index</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">)]]</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">d</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[20]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">defaultdict(int, {'$10': 1639, '$20': 3322, '$5': 1733, '$50': 3306})</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
프로그래밍 연습<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%97%B0%EC%8A%B5" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 벤다이어그램을 사용하여 집합 간의 관계를 가시화<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#1.-%EB%B2%A4%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EC%A7%91%ED%95%A9-%EA%B0%84%EC%9D%98-%EA%B4%80%EA%B3%84%EB%A5%BC-%EA%B0%80%EC%8B%9C%ED%99%94" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">matplotlib_venn</code> 패키지를 이용하여 벤다이어그램을 그릴 수 있습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
예를 들어서 20이하의 소수와 홀수를 그리는 벤다이어그램을 구현한 코드를 살펴보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [35]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">get_odds</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">number</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">odds</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">number</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">%</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">odds</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">odds</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">get_odds</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">odds</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[35]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{1, 3, 5, 7, 9, 11, 13, 15, 17, 19}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [36]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">primes</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">get_primes</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">primes</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[36]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">{2, 3, 5, 7, 11, 13, 17, 19}</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [40]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib_venn</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">venn2</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib.pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">plt</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">draw_venn</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">sets</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">lables</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">venn2</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">subsets</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="n" style="margin: 0px; padding: 0px;">sets</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">set_labels</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="n" style="margin: 0px; padding: 0px;">lables</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_venn</span><span class="p" style="margin: 0px; padding: 0px;">([</span><span class="n" style="margin: 0px; padding: 0px;">odds</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">primes</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'odds'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'primes'</span><span class="p" style="margin: 0px; padding: 0px;">])</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="벤다이어그램" src="https://github.com/DevStarSJ/Study/raw/04b2549cd8f9d70098d7b391e727f38b561da80e/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch05.01.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">(학번, 축구를 좋아하는지 여부, 다른 운동을 좋아하는지 여부)</code>의 3개의 컬럼을 가진 csv 파일을 읽어서 그 결과를 보여주는 벤다이어그램을 출력하세요. 좋아한다는 것은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">1</code>, 안 좋아한다는 것은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">0</code>으로 표시하도록 하겠습니다. (<strong style="margin: 0px; padding: 0px;">csv</strong>를 읽어서 <strong style="margin: 0px; padding: 0px;">list</strong>를 리턴하는 함수는 Ch.03에서 작성해 놓은 함수를 재사용 하겠습니다.)</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [43]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">csv</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">CsvToList</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">filename</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">colHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">rowHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">reader</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">csv</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">reader</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">open</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">filename</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">columns</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">next</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">reader</span><span class="p" style="margin: 0px; padding: 0px;">))</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># pass column header</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">colHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">next</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">reader</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">data</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">rowHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">columns</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">data</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">([])</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">row</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">reader</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">rowHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">columns</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">rowHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">]</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">row</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">]))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">data</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [69]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">lists</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">CsvToList</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'files/ch05.venn.data.csv'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">lists</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">footballs</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">id</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">id</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">football</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">zip</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">lists</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">lists</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">])</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">football</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span> <span class="p" style="margin: 0px; padding: 0px;">])</span>
<span class="n" style="margin: 0px; padding: 0px;">others</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">FiniteSet</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">id</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">id</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">other</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">zip</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">lists</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">lists</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">])</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">other</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span> <span class="p" style="margin: 0px; padding: 0px;">])</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_venn</span><span class="p" style="margin: 0px; padding: 0px;">([</span><span class="n" style="margin: 0px; padding: 0px;">footballs</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">others</span><span class="p" style="margin: 0px; padding: 0px;">],[</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Football'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Other'</span><span class="p" style="margin: 0px; padding: 0px;">])</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="벤다이어그램2" src="https://github.com/DevStarSJ/Study/raw/04b2549cd8f9d70098d7b391e727f38b561da80e/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch05.02.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [70]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="nb" style="color: green; margin: 0px; padding: 0px;">sum</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">lists</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">])</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[70]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1452.0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [72]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="nb" style="color: green; margin: 0px; padding: 0px;">sum</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">lists</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">])</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[72]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1551.0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 대수의 법칙 (기대값 계산)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#2.-%EB%8C%80%EC%88%98%EC%9D%98-%EB%B2%95%EC%B9%99-(%EA%B8%B0%EB%8C%80%EA%B0%92-%EA%B3%84%EC%82%B0)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
기대값은 모든 경우의 수의 값에 그 확률을 곱한 값을 의미합니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식 기대값" src="https://github.com/DevStarSJ/Study/raw/04b2549cd8f9d70098d7b391e727f38b561da80e/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch05.equation.03.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
그럼 주사위를 던졌을 경우의 기대값은 다음과 같습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [73]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">e</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">e</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[73]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3.5</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
주사위를 던지는 회수를 늘려가면서 기대값대로 나오는지를 입증하는 프로그램을 작성하세요.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
먼저, 재사용 가능한 형태로 기대값을 구하는 함수부터 구하는 만들어 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [75]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetExpectedValue</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">events</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">elements</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">zip</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">events</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">)]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">sum</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">elements</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위 함수가 제대로 동작하는지 앞에서 직접 계산해본 주사위를 던졌을 경우의 기대값을 함수를 통해서 구해보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [76]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">events</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">probabilities</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">GetExpectedValue</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">events</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[76]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3.5</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
그럼 이제 주사위를 던지를 횟수를 늘려가면서 실제로 비슷하게 나오는지 살펴보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [79]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetExpectedValueInMultipleDrawing</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">num</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">acc</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">num</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">acc</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">events</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">get_index</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">)]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">acc</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">num</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [84]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">GetExpectedValueInMultipleDrawing</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[84]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3.42</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [83]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">GetExpectedValueInMultipleDrawing</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10000</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[83]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3.4688</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [82]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">GetExpectedValueInMultipleDrawing</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100000</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[82]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3.50564</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 돈이 떨어지기 전에 토스 시도 횟수는 ?<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#3.-%EB%8F%88%EC%9D%B4-%EB%96%A8%EC%96%B4%EC%A7%80%EA%B8%B0-%EC%A0%84%EC%97%90-%ED%86%A0%EC%8A%A4-%EC%8B%9C%EB%8F%84-%ED%9A%9F%EC%88%98%EB%8A%94-?" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
동전을 던져서 앞면이 나오면 <span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><span class="MathJax" id="MathJax-Element-1-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; text-align: left; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-1" role="math" style="border: 0px; display: inline-block; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 3.574em;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 2.979em;"><span style="border: 0px; clip: rect(3.039em 1000em 5.777em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-2" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 2.979em;"><span style="border: 0px; clip: rect(3.039em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-3" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span class="texatom" id="MathJax-Span-4" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-5" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-6" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "stixgeneral" , "arial unicode ms" , serif; font-size: 13.944px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">를</span></span></span></span><span class="texatom" id="MathJax-Span-7" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-8" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-9" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "stixgeneral" , "arial unicode ms" , serif; font-size: 13.944px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">얻</span></span></span></span><span class="texatom" id="MathJax-Span-10" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-11" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-12" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "stixgeneral" , "arial unicode ms" , serif; font-size: 13.944px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">고</span></span></span></span><span class="mo" id="MathJax-Span-13" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">,</span><span class="texatom" id="MathJax-Span-14" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-15" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-16" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "stixgeneral" , "arial unicode ms" , serif; font-size: 13.944px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">뒷</span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.039em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -2.557em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-17" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-18" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-19" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "stixgeneral" , "arial unicode ms" , serif; font-size: 13.944px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">면</span></span></span></span><span class="texatom" id="MathJax-Span-20" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-21" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-22" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "stixgeneral" , "arial unicode ms" , serif; font-size: 13.944px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">이</span></span></span></span><span class="texatom" id="MathJax-Span-23" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-24" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-25" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "stixgeneral" , "arial unicode ms" , serif; font-size: 13.944px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">나</span></span></span></span><span class="texatom" id="MathJax-Span-26" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-27" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-28" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "stixgeneral" , "arial unicode ms" , serif; font-size: 13.944px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">오</span></span></span></span><span class="texatom" id="MathJax-Span-29" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-30" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-31" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "stixgeneral" , "arial unicode ms" , serif; font-size: 13.944px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">면</span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 3.075em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -1.996em; width: 0px;"></span></span></nobr></span>1.5를 잃는 게임이 있습니다. (누가봐도 불공평한 이딴 겜을 누가 할지는 모르겠습니다만... 어쨌든 하는 사람이 있다고 합시다.) 잔고가 0이 되면 게임이 끝납니다. 이 게임을 시뮬레이션하는 코드를 작성하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [94]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">events</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.5</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">probabilities</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">PlayDrawGame</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">balances</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">cnt</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="n" style="margin: 0px; padding: 0px;">balances</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">></span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">index</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">get_index</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">probabilities</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">balances</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">events</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">index</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">cnt</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'{0:3} {1} ! Current amount: {2:.1f}'</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">format</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">cnt</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Heads'</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">index</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Tails'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">balances</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Game Over ! Coin tosses {0:3} times'</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">format</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">cnt</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [100]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">PlayDrawGame</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"> 1 Tails ! Current amount: 8.5
2 Tails ! Current amount: 7.0
3 Tails ! Current amount: 5.5
4 Heads ! Current amount: 6.5
5 Tails ! Current amount: 5.0
6 Tails ! Current amount: 3.5
7 Tails ! Current amount: 2.0
8 Tails ! Current amount: 0.5
9 Heads ! Current amount: 1.5
10 Heads ! Current amount: 2.5
11 Tails ! Current amount: 1.0
12 Tails ! Current amount: -0.5
Game Over ! Coin tosses 12 times
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
4. 카드뭉치 섞기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#4.-%EC%B9%B4%EB%93%9C%EB%AD%89%EC%B9%98-%EC%84%9E%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
52장의 트럼프카드를 섞는(shuffling)하는 프로그램을 작성하세요.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
먼저 파이썬 표준라이브러리의 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">random</code> 모듈에 있는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">shuffle()</code>함수에 대해 살펴보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [109]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">random</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">random</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">shuffle</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[109]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[4, 2, 3, 1]</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
트럼프에는 총 52장의 카드가 있으니 숫자 1 ~ 52를 이용해서 셔플을 한 후에 해당 숫자를 트럼프 카드와 매핑을 해주는 클래스를 이용하는 방식으로 구현해 보겠습니다. 먼저 1 ~ 52까지의 숫자를 트럼프 카드로 매핑하는 클래스를 만들어 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [114]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">class</span> <span class="nc" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">Trump</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">suits</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'spades'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'diamonds'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'clubs'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'hearts'</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">ranks</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'ace'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'two'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'three'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'four'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'five'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'six'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'seven'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'eight'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'nine'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'ten'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'jack'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'queen'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'king'</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">__init__</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="bp" style="color: green; margin: 0px; padding: 0px;">self</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">idx</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="bp" style="color: green; margin: 0px; padding: 0px;">self</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">suit</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="bp" style="color: green; margin: 0px; padding: 0px;">self</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">suits</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">idx</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">//</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">13</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="bp" style="color: green; margin: 0px; padding: 0px;">self</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">rank</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="bp" style="color: green; margin: 0px; padding: 0px;">self</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">ranks</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">idx</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">%</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">13</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="bp" style="color: green; margin: 0px; padding: 0px;">self</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'{0} of {1}'</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">format</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="bp" style="color: green; margin: 0px; padding: 0px;">self</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">rank</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="bp" style="color: green; margin: 0px; padding: 0px;">self</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">suit</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이제 위 클래스를 이용해서 카드를 셔플해 보겠습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
먼저 0 ~ 52 사이의 숫자를 셔플하겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [112]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">random</span>
<span class="n" style="margin: 0px; padding: 0px;">cards</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">list</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">52</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">random</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">shuffle</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">cards</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">cards</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[36, 5, 51, 37, 9, 25, 1, 33, 34, 40, 7, 43, 21, 48, 17, 50, 42, 49, 16, 15, 12, 23, 29, 27, 41, 35, 22, 4, 44, 19, 32, 13, 8, 2, 11, 39, 14, 0, 46, 10, 6, 38, 26, 24, 31, 20, 3, 28, 47, 45, 30, 18]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이 결과를 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Trump</code> 클래스를 이용해서 출력해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [118]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">trumps</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">Trump</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">card</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">card</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">cards</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">trump</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">trumps</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">trump</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">jack of clubs
six of spades
king of hearts
queen of clubs
ten of spades
king of diamonds
two of spades
eight of clubs
nine of clubs
two of hearts
eight of spades
five of hearts
nine of diamonds
ten of hearts
five of diamonds
queen of hearts
four of hearts
jack of hearts
four of diamonds
three of diamonds
king of spades
jack of diamonds
four of clubs
two of clubs
three of hearts
ten of clubs
ten of diamonds
five of spades
six of hearts
seven of diamonds
seven of clubs
ace of diamonds
nine of spades
three of spades
queen of spades
ace of hearts
two of diamonds
ace of spades
eight of hearts
jack of spades
seven of spades
king of clubs
ace of clubs
queen of diamonds
six of clubs
eight of diamonds
four of spades
three of clubs
nine of hearts
seven of hearts
five of clubs
six of diamonds
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
5. 원의 면적 추정<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=04b2549cd8f9d70098d7b391e727f38b561da80e&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f303462323534396364386639643730303938643762333931653732376633386235363164613830652f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830352e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch05.ipynb&repository_id=44855550#5.-%EC%9B%90%EC%9D%98-%EB%A9%B4%EC%A0%81-%EC%B6%94%EC%A0%95" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
원의 면적은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">pi * r^2</code>이라는 공식이라는 것을 알고 있습니다만, 이것이 정말로 맞는지를 다른 방법으로 추정해 보고자 합니다. 한쪽면의 길이가 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">2r</code>인 정사각형 안에 반지름 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">r</code>인 원으로 구성된 다트보드가 있다고 생각해 봅시다. 여기에 다트를 던졌을 경우 원 안에 명중한 갯수를 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">N</code>개라고 하고 나머지는 원 안이 아닌 정사각형 보드위에 맞췄다고 가정하겠습니다. (M) 정사각형 보드 밖으로 나가는 경우는 생각하지 않겠습니다. 이럴 경우 원안에 명중할 확률은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">f = N / (N + M)</code>이 됩니다. 정사각형의 면적이 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">A</code>일 경우 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">A * f</code>는 원의 면적과 같을 것입니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이것을 직접 프로그램으로 구현하여 던지는 횟수를 다르게 하여 실제 원의 면적과 얼마나 차이가 나는지를 살펴보세요.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
먼저 실제 원의 면적을 구해보겠습니다. (반지름이 2이라 가정하겠습니다.)</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [122]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">pi</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">N</span>
<span class="n" style="margin: 0px; padding: 0px;">r</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
<span class="n" style="margin: 0px; padding: 0px;">N</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">pi</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">r</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[122]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">12.5663706143592</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이제 다트를 던졌을 때 원안에 맞은 확률을 구해야 합니다. 이 확률을 구하기 위해서 다트를 던지는 것의 시뮬레이션 결과 중 명중한 것을 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">1</code>, 그렇지 않은 것을 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">0</code>으로 하겠습니다. 그 결과에 정사각형의 면접과 곱한한 결과가 위에 계산결과와 맞는지를 비교해 보겠습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
원 안에 맞았다는 것을 어떻게 구현해야 할까요 ? 다트가 명중한 곳과 원의 중심간의 거리가 반지름(2)보다 작은 경우 명중했다고 생각하겠습니다. 계산상 편의를 위해 원의 중심을 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">(0, 0)</code>으로 생각하고 좌표를 랜덤으로 생성하겠습니다. (<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">-2 ~ 2</code>)</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [131]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">random</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">Dart</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">random</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">uniform</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">random</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">uniform</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">dist</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">dist</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">ProbabilityOfDart</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">number</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">shootings</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">Dart</span><span class="p" style="margin: 0px; padding: 0px;">()</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">number</span><span class="p" style="margin: 0px; padding: 0px;">)]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">sum</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">shootings</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">number</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetExpectedOfDart</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">number</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">length</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">ProbabilityOfDart</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">number</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">length</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">length</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [135]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">GetExpectedOfDart</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[135]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">11.68</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [136]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">GetExpectedOfDart</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[136]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">12.592</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [137]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">GetExpectedOfDart</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[137]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">12.6848</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [138]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">GetExpectedOfDart</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[138]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">12.56928</pre>
</div>
</div>
</div>
</div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-33558896616401455612016-07-18T21:10:00.000+09:002016-08-01T08:13:14.432+09:00 Doing Math with Python. Chapter 04 SymPy를 이용한 대수와 부호 수학<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h1 style="color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
<span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">이 포스팅은 </span><b style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; line-height: 18.48px;"><span style="color: blue;">Jupiter Notebook</span></b><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">로 작성되었습니다.</span><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;">그러니 직접 </span><span style="color: blue; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;"><b>Python</b></span><span style="color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;"> 코드를 실행시키고 싶으신 분은 아래 Link에서 다운로드 받으셔서 실행할 수 있습니다.</span><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><br style="color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px;" /><a href="https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython" style="color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; font-weight: normal; line-height: 18.48px; text-decoration: none;">https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython</a></h1>
<h1 style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
파이썬으로 풀어보는 수학<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EB%8A%94-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h1>
<h1 style="color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
<ul style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">원서명 : Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (ISBN 9781593276409)</li>
<li style="margin: 0px; padding: 0px;">지은이 : 아미트 사하(Amit Saha)</li>
<li style="margin: 0px; padding: 0px;">원서 및 관련자료 : <a href="https://www.nostarch.com/doingmathwithpython" style="color: #0088cc; margin: 0px; padding: 0px;">https://www.nostarch.com/doingmathwithpython</a></li>
<li style="margin: 0px; padding: 0px;">번역서 : <a href="http://www.acornpub.co.kr/book/doing-math-with-python" style="color: #0088cc; margin: 0px; padding: 0px;">http://www.acornpub.co.kr/book/doing-math-with-python</a></li>
</ul>
<div style="font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="책표지" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/cover.jpg" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EB%8A%94-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h1>
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 1.27em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
4장 SymPy를 이용한 대수와 부호 수학<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#4%EC%9E%A5-SymPy%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%8C%80%EC%88%98%EC%99%80-%EB%B6%80%ED%98%B8-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
지금까지는 수학문제와 풀이에 직접 숫자를 대입하여 풀었습니다.<br />
하지만 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">SymPy</code>를 이용하여 대수(Algebra)문제를 부호(Symbolic) 수학으로 풀이하는 것이 가능합니다.</div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 부호와 부호 연산 정의<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#1.-%EB%B6%80%ED%98%B8%EC%99%80-%EB%B6%80%ED%98%B8-%EC%97%B0%EC%82%B0-%EC%A0%95%EC%9D%98" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[1]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
SymPy는 수학 수식을 표현하고 계산할 수 있는 기능을 제공해 줍니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[3]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">2*x + 1</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [4]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">expr</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">expr</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[4]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Symbol</code> 클래스의 인자로 문자열을 전달하여 심볼을 생성합니다.<br />
심볼을 이용한 수식 과 방정식을 정의 할 수 있습니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">subs()</code> 함수의 인자로 각 심볼별 값을 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Dictionary</code>로 전달하면 계산을 해 줍니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [4]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'y'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">z</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'z'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
심볼을 하나씩 만들어 줄 수도 있지만, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Symbols()</code> 함수를 사용하여 한 번에 생성할 수도 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [45]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">symbols</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">z</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">symbols</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x,y,z'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">z</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">z</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[45]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-1-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-1" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 7.801em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.039em 1000em 4.408em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-2" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.039em 1000em 4.408em -999.997em); left: 407.734px; margin: 0px 0px 0px -3.211em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-3" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span class="mi" id="MathJax-Span-4" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mi" id="MathJax-Span-5" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mo" id="MathJax-Span-6" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">−</span><span class="mi" id="MathJax-Span-7" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">z<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mrow" id="MathJax-Span-8" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-9" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span><span class="mi" id="MathJax-Span-10" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">z<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mo" id="MathJax-Span-11" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-12" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">1</span><span class="mo" id="MathJax-Span-13" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.361em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.354em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
조금 복잡한 수식을 입력하면 정리하지 않은체 그대로 둡니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [7]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[7]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(x + 2)*(x + 3)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 수식 계산<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#2.-%EC%88%98%EC%8B%9D-%EA%B3%84%EC%82%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2.1 수식을 요소화, 전개화<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#2.1-%EC%88%98%EC%8B%9D%EC%9D%84-%EC%9A%94%EC%86%8C%ED%99%94,-%EC%A0%84%EA%B0%9C%ED%99%94" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
수식을 요소화(인수분해) 하고 전개하는 방법을 제공합니다.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">factor()</code> : 수식을 요소화(인수분해)를 합니다.</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">expand()</code> : 수식을 전개합니다.</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [8]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">x**2 - y**2
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [9]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">factor</span>
<span class="n" style="margin: 0px; padding: 0px;">factor</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[9]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(x - y)*(x + y)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [13]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">factor</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[13]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(x - y)*(x**2 + x*y + y**2)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [21]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">expand</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">expand</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[21]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-2-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-14" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 0.598em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-15" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 407.734px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-16" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 0.932em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.068em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2.2 보기 좋게 출력<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#2.2-%EB%B3%B4%EA%B8%B0-%EC%A2%8B%EA%B2%8C-%EC%B6%9C%EB%A0%A5" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">pprint()</code> : 수식을 보기좋게 출력해 줍니다.</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [28]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">pprint</span>
<span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[28]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-3-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-17" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 4.824em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-18" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.348em -999.997em); left: 407.734px; margin: 0px 0px 0px -2.021em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-19" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="msubsup" id="MathJax-Span-20" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.955em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-21" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.539em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-22" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-23" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-24" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-25" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="msubsup" id="MathJax-Span-26" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-27" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-28" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-29" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-30" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.432em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.282em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [29]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[29]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-4-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-31" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 12.682em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.527em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-32" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.527em -999.997em); left: 407.734px; margin: 0px 0px 0px -5.295em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-33" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-34" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span><span class="mo" id="MathJax-Span-35" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mi" id="MathJax-Span-36" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mo" id="MathJax-Span-37" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mi" id="MathJax-Span-38" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-39" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span><span class="mrow" id="MathJax-Span-40" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-41" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span></span><span class="msubsup" id="MathJax-Span-42" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.955em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-43" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.539em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-44" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-45" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-46" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-47" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mi" id="MathJax-Span-48" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">x</span><span class="mi" id="MathJax-Span-49" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mo" id="MathJax-Span-50" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="msubsup" id="MathJax-Span-51" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-52" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-53" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-54" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-55" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-56" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.646em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.496em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
기본적으로는 높은 자승 순서부터 정렬을 합니다.<br />
반대로 출력하기 위해서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">init_printing()</code> 함수를 이용하여 변경이 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [12]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">init_printing</span>
<span class="n" style="margin: 0px; padding: 0px;">init_printing</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">order</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'rev-lex'</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># reverse lexicographical order</span>
<span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[12]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-5-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-57" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 6.372em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.324em 1000em 4.884em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-58" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.324em 1000em 4.884em -999.997em); left: 407.734px; margin: 0px 0px 0px -2.676em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-59" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span class="mo" id="MathJax-Span-60" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-61" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.717em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 6.01563px; margin: 0px 0px 0px -0.295em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-62" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 6.01563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-63" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.717em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-64" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-65" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-66" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-67" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-68" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-69" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-70" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-71" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 2.789em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.925em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
order에 입력가능한 값들에 대해서는 아래 Link를 참조하시면 됩니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<a href="http://docs.sympy.org/dev/modules/physics/vector/api/printing.html" style="color: #0088cc; margin: 0px; padding: 0px;">http://docs.sympy.org/dev/modules/physics/vector/api/printing.html</a></div>
<h5 style="color: inherit; font-family: inherit; font-size: 14px; font-style: italic; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
수열 출력<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#%EC%88%98%EC%97%B4-%EC%B6%9C%EB%A0%A5" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h5>
<blockquote style="border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 5px; margin: 1em 2em; padding: 0px 0px 0px 15px;">
<div style="font-size: 16.25px; line-height: 1.25; padding: 0px; text-align: justify;">
x + x^2 / 2 + x^3 / 3 + ... + x^n / n</div>
</blockquote>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
위 수열을 생성하는 예제 코드를 살펴보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [25]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">make_series</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">series</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">n</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">series</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="n" style="margin: 0px; padding: 0px;">i</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">series</span>
<span class="n" style="margin: 0px; padding: 0px;">init_printing</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">order</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'rev-lex'</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># reverse lexicographical order</span>
<span class="n" style="margin: 0px; padding: 0px;">make_series</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">7</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[25]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-6-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-72" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 19.586em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.265em 1000em 4.884em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-73" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.265em 1000em 4.884em -999.997em); left: 407.734px; margin: 0px 0px 0px -8.152em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-74" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-75" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-76" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-77" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-78" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-79" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-80" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-81" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-82" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-83" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-84" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-85" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-86" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-87" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-88" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-89" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-90" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-91" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-92" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-93" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-94" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-95" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-96" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-97" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">4</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-98" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">4</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-99" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-100" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-101" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-102" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-103" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-104" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-105" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">5</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-106" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">5</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-107" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-108" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-109" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-110" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-111" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-112" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-113" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">6</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-114" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">6</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-115" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-116" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-117" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-118" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-119" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-120" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-121" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">7</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-122" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">7</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 2.789em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.925em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 값으로 대체<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#3.-%EA%B0%92%EC%9C%BC%EB%A1%9C-%EB%8C%80%EC%B2%B4" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
앞에서도 잠깐 나왔는데, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">.subs()</code> 함수에 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">심볼 : 값</code>을 포함한 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Dictionary</code>를 입력하면 해당 심볼을 값으로 대체 합니다.<br />
수식의 모든 심볼에 대해서 다 입력해주면 구체적인 값이 나오고, 일부 심볼만 입력할 경우에는 나머지 심볼로 전개됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [13]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">init_printing</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">order</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'lex'</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># reverse lexicographical order</span>
<span class="n" style="margin: 0px; padding: 0px;">e</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span>
<span class="n" style="margin: 0px; padding: 0px;">e</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[13]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-7-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-123" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 7.324em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-124" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.348em -999.997em); left: 407.734px; margin: 0px 0px 0px -3.033em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-125" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-126" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-127" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-128" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-129" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-130" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-131" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">2</span><span class="mi" id="MathJax-Span-132" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mi" id="MathJax-Span-133" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mo" id="MathJax-Span-134" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="msubsup" id="MathJax-Span-135" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.955em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-136" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.539em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-137" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-138" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-139" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.432em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.282em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [34]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[34]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-8-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-140" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 0.598em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-141" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 407.734px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-142" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">9</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.004em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.068em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [35]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[35]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-9-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-143" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 6.015em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-144" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.348em -999.997em); left: 407.734px; margin: 0px 0px 0px -2.497em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-145" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.955em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-146" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.539em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-147" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-148" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-149" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-150" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-151" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">2</span><span class="mi" id="MathJax-Span-152" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mo" id="MathJax-Span-153" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-154" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.432em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.282em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
부호를 다른 부호로 대체도 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [37]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">expand</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">}))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[37]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-10-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-155" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 6.61em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-156" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.348em -999.997em); left: 407.734px; margin: 0px 0px 0px -2.735em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-157" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">4</span><span class="msubsup" id="MathJax-Span-158" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.955em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-159" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.539em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-160" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-161" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-162" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-163" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-164" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">4</span><span class="mi" id="MathJax-Span-165" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mo" id="MathJax-Span-166" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-167" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.432em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.282em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [14]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[14]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-11-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-168" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 15.301em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.86em 1000em 4.408em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-169" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.86em 1000em 4.408em -999.997em); left: 407.734px; margin: 0px 0px 0px -6.366em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-170" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.955em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-171" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.539em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-172" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-173" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-174" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-175" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-176" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">2</span><span class="mi" id="MathJax-Span-177" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mrow" id="MathJax-Span-178" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-179" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span><span class="mo" id="MathJax-Span-180" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mi" id="MathJax-Span-181" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mo" id="MathJax-Span-182" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-183" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">1</span><span class="mo" id="MathJax-Span-184" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span><span class="mo" id="MathJax-Span-185" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="msubsup" id="MathJax-Span-186" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 4.229em;"><span style="border: 0px; clip: rect(3.039em 1000em 4.408em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-187" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-188" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span><span class="mo" id="MathJax-Span-189" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mi" id="MathJax-Span-190" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mo" id="MathJax-Span-191" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-192" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">1</span><span class="mo" id="MathJax-Span-193" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 3.812em; margin: 0px; padding: 0px; position: absolute; top: -4.461em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-194" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-195" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-196" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.575em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.354em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위 수식을 보면 단순히 x 대신 y-1을 대입한 것이지 수식을 풀이하진 않았습니다.<br />
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">simplify()</code>함수를 이용하면 간략화해 줍니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [15]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">simplify</span>
<span class="n" style="margin: 0px; padding: 0px;">simplify</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[15]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-12-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-197" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 0.598em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-198" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 407.734px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-199" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 0.932em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.068em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
앞서 살펴본 수열을 출력하는 함수에 값을 입력해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [45]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">make_series</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[45]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-13-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-200" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 13.336em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.265em 1000em 4.884em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-201" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.265em 1000em 4.884em -999.997em); left: 407.734px; margin: 0px 0px 0px -5.533em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mfrac" id="MathJax-Span-202" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-203" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-204" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-205" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-206" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-207" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">5</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-208" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">5</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-209" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-210" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-211" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-212" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-213" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-214" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-215" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">4</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-216" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">4</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-217" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-218" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-219" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-220" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-221" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-222" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-223" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-224" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-225" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-226" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-227" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-228" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.342em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-229" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-230" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-231" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-232" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-233" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mi" id="MathJax-Span-234" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 2.789em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.925em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [46]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.2</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[46]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-14-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-235" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 4.527em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-236" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 407.734px; margin: 0px 0px 0px -1.902em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-237" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3.512064</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.004em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.068em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
4. 문자열을 수식으로 변환<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#4.-%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84-%EC%88%98%EC%8B%9D%EC%9C%BC%EB%A1%9C-%EB%B3%80%ED%99%98" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">simpify()</code>함수에 문자열을 전달하면 수식으로 변환해 줍니다.<br />
다음 수식을 입력해서 변환해 보도록 하겠습니다.</div>
<blockquote style="border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 5px; margin: 1em 2em; padding: 0px 0px 0px 15px;">
<div style="font-size: 16.25px; line-height: 1.25; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">x**2 + 3*x + x**3 + 2*x</code></div>
</blockquote>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [40]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">str</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter a mathematical expression: '</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">expr</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">str</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">expr</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter a mathematical expression: x**2 + 3*x + x**3 + 2*x
</pre>
</div>
</div>
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[40]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-15-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-238" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 6.729em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.229em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-239" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.229em -999.997em); left: 407.734px; margin: 0px 0px 0px -2.795em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-240" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-241" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-242" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-243" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-244" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-245" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="msubsup" id="MathJax-Span-246" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-247" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-248" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-249" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-250" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-251" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-252" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">5</span><span class="mi" id="MathJax-Span-253" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.289em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.139em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이 수식을 근거로 해서 앞에서 살펴보았던 연산들을 할 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [41]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">expr</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[41]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-16-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-254" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 8.515em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.229em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-255" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.229em -999.997em); left: 407.734px; margin: 0px 0px 0px -3.568em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-256" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span class="msubsup" id="MathJax-Span-257" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-258" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-259" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-260" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-261" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-262" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-263" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">2</span><span class="msubsup" id="MathJax-Span-264" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-265" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-266" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-267" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-268" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-269" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-270" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">10</span><span class="mi" id="MathJax-Span-271" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.289em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.139em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [42]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">expr</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*=</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">expr</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[42]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-17-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-272" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 13.158em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.527em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-273" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.527em -999.997em); left: 407.734px; margin: 0px 0px 0px -5.473em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-274" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-275" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span></span><span class="mn" id="MathJax-Span-276" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span><span class="msubsup" id="MathJax-Span-277" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-278" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-279" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-280" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-281" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-282" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mi" id="MathJax-Span-283" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-284" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span></span><span class="mrow" id="MathJax-Span-285" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-286" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span></span><span class="msubsup" id="MathJax-Span-287" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-288" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-289" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-290" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-291" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-292" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="msubsup" id="MathJax-Span-293" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-294" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-295" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-296" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-297" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-298" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-299" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">5</span><span class="mi" id="MathJax-Span-300" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-301" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.646em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.496em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [43]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">simplify</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[43]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-18-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-302" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 12.622em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.527em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-303" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.92em 1000em 4.527em -999.997em); left: 407.734px; margin: 0px 0px 0px -5.235em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="msubsup" id="MathJax-Span-304" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-305" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-306" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-307" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-308" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mrow" id="MathJax-Span-309" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-310" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span><span class="mn" id="MathJax-Span-311" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span><span class="mi" id="MathJax-Span-312" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-313" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-314" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">1</span><span class="mo" id="MathJax-Span-315" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span><span class="mrow" id="MathJax-Span-316" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-317" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span></span><span class="msubsup" id="MathJax-Span-318" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.396em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-319" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.598em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-320" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-321" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-322" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-323" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mi" id="MathJax-Span-324" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-325" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mn" id="MathJax-Span-326" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">5</span><span class="mo" id="MathJax-Span-327" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.646em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.496em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">simpify()</code>에 입력한 문자열이 수식으로 변활할 수 없을 경우 예외가 발생합니다.<br />
해당 예외에 대해서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">sympy.core.sympify</code> 내의 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">SympifyError</code>에 정의되어 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [7]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy.core.sympify</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">SympifyError</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">str</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter a mathematical expression: '</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">try</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">expr</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">str</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">except</span> <span class="n" style="margin: 0px; padding: 0px;">SympifyError</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Invalid input'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter a mathematical expression: x^2 + 3x
Invalid input
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
5. 방정식 풀기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#5.-%EB%B0%A9%EC%A0%95%EC%8B%9D-%ED%92%80%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">solve()</code>함수를 이용하여 방정식의 해를 찾을 수 있습니다.<br />
해당 수식의 값이 0이 될것이라고 가정을 하고 수식을 계산합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [31]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span>
<span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[31]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-19-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-328" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 22.443em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.324em 1000em 5.122em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-329" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.324em 1000em 5.122em -999.997em); left: 407.734px; margin: 0px 0px 0px -9.342em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-330" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-331" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">[</span></span><span class="mo" id="MathJax-Span-332" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mfrac" id="MathJax-Span-333" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.598em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 5.01563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-334" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 5.01563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-335" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.598em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-336" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">,</span><span class="mspace" id="MathJax-Span-337" style="border: 0px; display: inline-block; height: 0.003em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 1.015em;"></span><span class="mn" id="MathJax-Span-338" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;">0</span><span class="mo" id="MathJax-Span-339" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">,</span><span class="mspace" id="MathJax-Span-340" style="border: 0px; display: inline-block; height: 0.003em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 1.015em;"></span><span class="mo" id="MathJax-Span-341" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;">−</span><span class="mfrac" id="MathJax-Span-342" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.598em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 5.01563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-343" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 5.01563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-344" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.598em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-345" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">−</span><span class="mfrac" id="MathJax-Span-346" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 2.384em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-347" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 2.265em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="msqrt" id="MathJax-Span-348" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.967em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.836em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-349" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-350" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">19</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.515em 1000em 3.932em -999.997em); left: 0.836em; margin: 0px; padding: 0px; position: absolute; top: -4.521em; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; font-family: "mathjax_main"; left: -0.057em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 0.42em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.039em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">√</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mi" id="MathJax-Span-351" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">i</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 20.0156px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-352" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 2.384em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-353" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">,</span><span class="mspace" id="MathJax-Span-354" style="border: 0px; display: inline-block; height: 0.003em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 1.015em;"></span><span class="mo" id="MathJax-Span-355" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;">−</span><span class="mfrac" id="MathJax-Span-356" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.598em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 5.01563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-357" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 5.01563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-358" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.598em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-359" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-360" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 2.384em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-361" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 2.265em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="msqrt" id="MathJax-Span-362" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.967em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.836em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-363" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-364" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">19</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.515em 1000em 3.932em -999.997em); left: 0.836em; margin: 0px; padding: 0px; position: absolute; top: -4.521em; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; font-family: "mathjax_main"; left: -0.057em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 0.42em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.039em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">√</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mi" id="MathJax-Span-365" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">i</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 20.0156px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-366" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 2.384em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-367" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">]</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 3.075em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -1.211em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위 9차방정식의 해인데, 이것은 우리가 알아보기 힘드니 좀 더 단순한 수식으로 살펴보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [44]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">expr</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[44]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-20-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-368" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 2.265em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.039em 1000em 4.408em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-369" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.039em 1000em 4.408em -999.997em); left: 407.734px; margin: 0px 0px 0px -0.89em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-370" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-371" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">[</span><span class="mo" id="MathJax-Span-372" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mn" id="MathJax-Span-373" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span class="mo" id="MathJax-Span-374" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">]</span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.361em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.354em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [38]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">expr</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span>
<span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dict</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[38]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-21-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-375" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 11.61em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.039em 1000em 4.408em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-376" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.039em 1000em 4.408em -999.997em); left: 407.734px; margin: 0px 0px 0px -4.818em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-377" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-378" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">[</span><span class="mrow" id="MathJax-Span-379" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-380" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">{</span><span class="mi" id="MathJax-Span-381" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-382" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">:</span><span class="mo" id="MathJax-Span-383" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">−</span><span class="mn" id="MathJax-Span-384" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">4</span><span class="mo" id="MathJax-Span-385" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">}</span></span><span class="mo" id="MathJax-Span-386" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;">,</span><span class="mspace" id="MathJax-Span-387" style="border: 0px; display: inline-block; height: 0.003em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 1.015em;"></span><span class="mrow" id="MathJax-Span-388" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-389" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">{</span><span class="mi" id="MathJax-Span-390" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-391" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">:</span><span class="mo" id="MathJax-Span-392" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">−</span><span class="mn" id="MathJax-Span-393" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span class="mo" id="MathJax-Span-394" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">}</span></span><span class="mo" id="MathJax-Span-395" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">]</span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.361em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.354em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">dict</code> 인자를 이용하여 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Dictionary</code> 형식으로도 리턴이 가능합니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
심볼이 여러개 있을 경우 특정 심볼에 대해서 해를 보고 싶을 경우에는 2번째 인자로 해당 심볼을 적어주면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [47]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">c</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">symbols</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'a,b,c'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">expr</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">a</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="n" style="margin: 0px; padding: 0px;">c</span>
<span class="n" style="margin: 0px; padding: 0px;">d</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dict</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">d</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[47]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-22-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-396" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 35.36em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.384em 1000em 5.122em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-397" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.384em 1000em 5.122em -999.997em); left: 407.734px; margin: 0px 0px 0px -14.759em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-398" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-399" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">[</span></span><span class="mrow" id="MathJax-Span-400" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-401" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">{</span></span><span class="mi" id="MathJax-Span-402" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-403" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">:</span><span class="mfrac" id="MathJax-Span-404" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-405" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-406" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-407" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span class="mi" id="MathJax-Span-408" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">a</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mrow" id="MathJax-Span-409" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-410" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size2"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span></span><span class="mo" id="MathJax-Span-411" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mi" id="MathJax-Span-412" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">b</span><span class="mo" id="MathJax-Span-413" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="msqrt" id="MathJax-Span-414" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 5.36em;"><span style="border: 0px; clip: rect(2.92em 1000em 4.229em -999.997em); left: 1.015em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-415" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 4.348em;"><span style="border: 0px; clip: rect(2.92em 1000em 4.229em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-416" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mn" id="MathJax-Span-417" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">4</span><span class="mi" id="MathJax-Span-418" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">a</span><span class="mi" id="MathJax-Span-419" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">c</span><span class="mo" id="MathJax-Span-420" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="msubsup" id="MathJax-Span-421" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.836em;"><span style="border: 0px; clip: rect(3.098em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-422" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">b</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.42em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-423" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-424" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-425" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.515em 1000em 3.932em -999.997em); left: 1.015em; margin: 0px; padding: 0px; position: absolute; top: -4.699em; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 4.408em;"><span style="border: 0px; font-family: "mathjax_main"; left: -0.057em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 3.693em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 0.42em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 0.955em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 1.551em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 2.086em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 2.622em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 3.158em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(2.979em 1000em 4.527em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -4.104em; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">√</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-426" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size2"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span></span><span class="mo" id="MathJax-Span-427" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">}</span></span></span><span class="mo" id="MathJax-Span-428" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;">,</span><span class="mspace" id="MathJax-Span-429" style="border: 0px; display: inline-block; height: 0.003em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 1.015em;"></span><span class="mrow" id="MathJax-Span-430" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-431" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">{</span></span><span class="mi" id="MathJax-Span-432" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-433" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">:</span><span class="mo" id="MathJax-Span-434" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">−</span><span class="mfrac" id="MathJax-Span-435" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-436" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">1</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-437" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-438" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span><span class="mi" id="MathJax-Span-439" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">a</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mrow" id="MathJax-Span-440" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-441" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size2"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">(</span></span><span class="mi" id="MathJax-Span-442" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">b</span><span class="mo" id="MathJax-Span-443" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="msqrt" id="MathJax-Span-444" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 5.36em;"><span style="border: 0px; clip: rect(2.92em 1000em 4.229em -999.997em); left: 1.015em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-445" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 4.348em;"><span style="border: 0px; clip: rect(2.92em 1000em 4.229em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-446" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mn" id="MathJax-Span-447" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">4</span><span class="mi" id="MathJax-Span-448" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">a</span><span class="mi" id="MathJax-Span-449" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">c</span><span class="mo" id="MathJax-Span-450" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="msubsup" id="MathJax-Span-451" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.836em;"><span style="border: 0px; clip: rect(3.098em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mi" id="MathJax-Span-452" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">b</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; left: 0.42em; margin: 0px; padding: 0px; position: absolute; top: -4.402em; transition: none; vertical-align: 0px;"><span class="texatom" id="MathJax-Span-453" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-454" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-455" style="border: 0px; display: inline; font-family: "mathjax_main"; font-size: 11.8776px; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">2</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.515em 1000em 3.932em -999.997em); left: 1.015em; margin: 0px; padding: 0px; position: absolute; top: -4.699em; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 4.408em;"><span style="border: 0px; font-family: "mathjax_main"; left: -0.057em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 3.693em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 0.42em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 0.955em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 1.551em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 2.086em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 2.622em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 3.158em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(2.979em 1000em 4.527em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -4.104em; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "mathjax_size1"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">√</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-456" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size2"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">)</span></span></span><span class="mo" id="MathJax-Span-457" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">}</span></span></span><span class="mo" id="MathJax-Span-458" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">]</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 3.004em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -1.211em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [48]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">d</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">][</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">]</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">c</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[48]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-23-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-459" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 6.67em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.324em 1000em 4.884em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-460" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.324em 1000em 4.884em -999.997em); left: 407.734px; margin: 0px 0px 0px -2.795em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-461" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">−</span><span class="mfrac" id="MathJax-Span-462" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.598em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 5.01563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-463" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">3</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 5.01563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-464" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">4</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.598em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-465" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;">+</span><span class="mfrac" id="MathJax-Span-466" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.241em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 2.384em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-467" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 2.265em;"><span style="border: 0px; clip: rect(2.979em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="msqrt" id="MathJax-Span-468" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.967em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.836em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-469" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.015em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-470" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">23</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.515em 1000em 3.932em -999.997em); left: 0.836em; margin: 0px; padding: 0px; position: absolute; top: -4.521em; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; font-family: "mathjax_main"; left: -0.057em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; font-family: "mathjax_main"; left: 0.42em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;">−<span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.039em 1000em 4.348em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span style="border: 0px; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">√</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mi" id="MathJax-Span-471" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">i</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 20.0156px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-472" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">4</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 2.384em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 2.789em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.925em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
6. 선형 방정식 시스템 풀기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#6.-%EC%84%A0%ED%98%95-%EB%B0%A9%EC%A0%95%EC%8B%9D-%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%92%80%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
2개의 방정식을 만족하는 한 쌍의 (x, y) 값을 계산하고자 할 경우 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">solve()</code> 메서드에 2개의 방정식을 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Tuple</code>로 묶어서 인자로 전달하면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [51]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">expr1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span>
<span class="n" style="margin: 0px; padding: 0px;">expr2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">12</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="n" style="margin: 0px; padding: 0px;">expr1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">expr2</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dict</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">2*x + 3*y - 6
3*x + 2*y - 12
</pre>
</div>
</div>
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[51]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-24-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-473" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 11.789em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.384em 1000em 5.122em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-474" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(2.384em 1000em 5.122em -999.997em); left: 407.734px; margin: 0px 0px 0px -4.938em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mrow" id="MathJax-Span-475" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span class="mo" id="MathJax-Span-476" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">[</span></span><span class="mo" id="MathJax-Span-477" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">{</span></span><span class="mi" id="MathJax-Span-478" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">x</span><span class="mo" id="MathJax-Span-479" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">:</span><span class="mfrac" id="MathJax-Span-480" style="border: 0px; display: inline; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 1.134em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.473em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-481" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">24</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 9.51563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-482" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">5</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 1.134em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-483" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">,</span><span class="mspace" id="MathJax-Span-484" style="border: 0px; display: inline-block; height: 0.003em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 1.015em;"></span><span class="mi" id="MathJax-Span-485" style="border: 0px; display: inline; font-family: MathJax_Math-italic; margin: 0px; padding: 0px 0px 0px 0.182em; position: static; transition: none; vertical-align: 0px;">y<span style="border: 0px; display: inline-block; height: 1px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0.003em;"></span></span><span class="mo" id="MathJax-Span-486" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">:</span><span class="mo" id="MathJax-Span-487" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px 0px 0px 0.301em; position: static; transition: none; vertical-align: 0px;">−</span><span class="mfrac" id="MathJax-Span-488" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px 0.122em; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 0.598em;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 5.01563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -4.64em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-489" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">6</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 5.01563px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.271em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-490" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">5</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span><span style="border: 0px; clip: rect(0.836em 1000em 1.253em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -1.307em; transition: none; vertical-align: 0px;"><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.598em; display: inline-block; height: 1.25px; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: 0.003em; width: 0px;"></span><span style="border: 0px; display: inline-block; height: 1.074em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span class="mo" id="MathJax-Span-491" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">}</span></span><span class="mo" id="MathJax-Span-492" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0.003em;"><span style="border: 0px; font-family: "mathjax_size3"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">]</span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 3.004em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -1.211em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위의 해가 맞는지 두 방정식에 각각 대입해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [52]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">expr1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">][</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">][</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">]})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[52]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-25-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-493" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 0.598em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-494" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 407.734px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-495" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">0</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.004em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.068em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [53]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">expr2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">][</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">][</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">]})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[53]:</div>
<div class="output_latex output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<span class="MathJax_Preview" style="color: #888888; margin: 0px; padding: 0px;"></span><br />
<div class="MathJax_Display" style="margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; position: relative; width: 815.469px;">
<span class="MathJax" id="MathJax-Element-26-Frame" style="border: 0px; direction: ltr; display: inline; float: none; line-height: normal; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; white-space: nowrap; word-spacing: normal; word-wrap: normal;"><nobr style="border: 0px; margin: 0px; max-height: none; max-width: none; min-height: 0px; min-width: 0px; padding: 0px; transition: none; vertical-align: 0px;"><span class="math" id="MathJax-Span-496" role="math" style="border: 0px; display: inline-block; margin: 0px; min-width: 0.598em; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; display: inline-block; font-size: 16.8px; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 0.003em; margin: 0px; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px; width: 815.469px;"><span class="mrow" id="MathJax-Span-497" style="border: 0px; display: inline; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;"><span style="border: 0px; display: inline-block; height: 0px; margin: 0px; padding: 0px; position: relative; transition: none; vertical-align: 0px; width: 815.469px;"><span style="border: 0px; clip: rect(3.158em 1000em 4.17em -999.997em); left: 407.734px; margin: 0px 0px 0px -0.235em; padding: 0px; position: absolute; top: -3.985em; transition: none; vertical-align: 0px;"><span class="mn" id="MathJax-Span-498" style="border: 0px; display: inline; font-family: "mathjax_main"; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px;">0</span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span></span><span style="border: 0px; display: inline-block; height: 3.991em; margin: 0px; padding: 0px; position: static; transition: none; vertical-align: 0px; width: 0px;"></span></span></span><span style="border-color: initial; border-left-style: solid; border-width: 0px 0px 0px 0.004em; display: inline-block; height: 1.004em; margin: 0px; overflow: hidden; padding: 0px; position: static; transition: none; vertical-align: -0.068em; width: 0px;"></span></span></nobr></span></div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
두 방정식에 대입해서 값이 0으로 나온것으로 봐서 맞게 계산된 것으로 보여집니다.</div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
7. SymPy를 사용해 그래프 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#7.-SymPy%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4-%EA%B7%B8%EB%9E%98%ED%94%84-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">SymPy</code>로 표현한 직선방정식을 이용하여 그래프를 그릴 수 있습니다.<br />
2장에서 살펴 본 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">matplotlib</code>을 사용하는 것은 아니며 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">SymPy.plotting</code>를 이용해야 합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy.plotting</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">plot</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[1]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><sympy.plotting.plot.Plot at 0x171e86fac50></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/4660eb01f0843113c20118ea0b58f472fa8f5bec/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch04.01.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
위 그래프는 x값의 기본 범위를 -10에서 10으로 자동 설정되어 있습니다.<br />
이 범위를 x축 기준으로 -5에서 5까지 위치하도록 제한하기를 원한다면 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">(x, -5, 5)</code> 라는 튜플을 추가 인자로 전달하면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[2]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><sympy.plotting.plot.Plot at 0x171e665dd68></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/4660eb01f0843113c20118ea0b58f472fa8f5bec/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch04.02.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
타이틀, X/Y축 레이블을 입력하고자 할 경우에는 각각 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">title</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">xlabel</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">ylabel</code>을 추가 인자로 전달하면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">title</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Line'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">xlabel</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'2x+3'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><sympy.plotting.plot.Plot at 0x171ec671ba8></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/4660eb01f0843113c20118ea0b58f472fa8f5bec/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch04.03.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
그림을 보이지 않게 하고자 할 경우 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">show=False</code>를 인자로 전달하면 됩니다.<br />
그럴 경우 언제든지 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">.show()</code>메서드를 이용해서 표시할 수 있으며, 이미지로 저장하고 싶은 경우에는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">.save('파일명')</code> 메서드를 이용하여 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [7]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">title</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Line'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">xlabel</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'2x+3'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">show</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">save</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'image/ch04.line.png'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
8. 사용자가 입력한 수식을 그래프로 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#8.-%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80-%EC%9E%85%EB%A0%A5%ED%95%9C-%EC%88%98%EC%8B%9D%EC%9D%84-%EA%B7%B8%EB%9E%98%ED%94%84%EB%A1%9C-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
앞서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">sympify()</code> 함수를 이용하여 사용자가 입력한 문자열을 수식으로 표현하는 것을 살펴보았습니다. 하지만 그래프로 표현하기 위해서는 해당 수식이 1가지 심볼(예를 들어서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">x</code>)에 대해서만 전개된 수식이어야 합니다. 만약 수식이 이런 형태가 아니라면 고쳐야 합니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">solve()</code>함수를 이용하면 가능합니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">solve()</code>함수는 앞서 살펴본봐야 같이 해를 찾아주는 함수입니다. 이 함수의 2번째 인자로<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">y</code>를 입력하면 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">y</code>를 풀어서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">x</code>로 전개합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [10]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span>
<span class="n" style="margin: 0px; padding: 0px;">expr</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter an expression: '</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">expr</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'y'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">expr</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">expr</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter an expression: 2*x + 3*y + 6
</pre>
</div>
</div>
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[10]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[-2*x/3 - 2]</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [11]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">])</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[11]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><sympy.plotting.plot.Plot at 0x171ea665128></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/4660eb01f0843113c20118ea0b58f472fa8f5bec/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch04.04.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
9. 여러 함수 그래프 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#9.-%EC%97%AC%EB%9F%AC-%ED%95%A8%EC%88%98-%EA%B7%B8%EB%9E%98%ED%94%84-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">plot()</code>의 인자로 여러개의 수식을 전달하면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [12]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[12]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><sympy.plotting.plot.Plot at 0x171ec69bc88></pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/4660eb01f0843113c20118ea0b58f472fa8f5bec/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch04.05.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">matplotlib</code>에서는 자동으로 각각 다른 색상의 라인이 출력되었는데, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">SymPy</code>에서는 같은 색으로 출력됩니다. 다른 색으로 출력해주기 위해서는 몇가지 단계를 더 추가해 줘야 합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [13]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">legend</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">show</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">line_color</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'b'</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">line_color</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'r'</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/4660eb01f0843113c20118ea0b58f472fa8f5bec/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch04.06.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 1.27em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
프로그래밍 연습<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%97%B0%EC%8A%B5" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">책에 있는 연습 문제 중에 앞에서 이미 작성한 내용으로만 해결이 가능한 경우는 해당 문제 풀이를 생략하였습니다.</li>
<li style="margin: 0px; padding: 0px;">Product Code가 아닌 연습문제용으로써, 예외 처리 등에 대한 것은 최대한 생략하고 문제 자체에 대한 로직만을 간략하게 표현하였습니다.</li>
</ul>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 그래프를 이용한 방정식 풀기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#1.-%EA%B7%B8%EB%9E%98%ED%94%84%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%B0%A9%EC%A0%95%EC%8B%9D-%ED%92%80%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
2개의 수식을 입력받아서 그래프로 표시하고, 공통 해를 출력하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [21]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">expr1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter your first expression im terms of x and y : '</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">expr2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter your second expression im terms of x and y : '</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">expr1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">expr2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'solve : '</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="n" style="margin: 0px; padding: 0px;">expr1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">expr2</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">dict</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">expr1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">expr2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr2</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">expr2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">legend</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">show</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">line_color</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'r'</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">line_color</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'b'</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter your first expression im terms of x and y : 2*x + 3*y + 6
Enter your second expression im terms of x and y : 3*x -y +1
solve : [{x: -9/11, y: -16/11}]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그래프" src="https://github.com/DevStarSJ/Study/raw/4660eb01f0843113c20118ea0b58f472fa8f5bec/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch04.07.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 수열합 계산<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#2.-%EC%88%98%EC%97%B4%ED%95%A9-%EA%B3%84%EC%82%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
앞서 살펴본 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">make_series()</code> 함수와 같이 수열을 만들어주는 기능을 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">SymPy</code>에서 제공합니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">summation()</code> 함수에 첫번째 인자로 n번째 수열을 정의해 주고, 두번째 인자로 n의 범위를 지정해주면 해당 수열을 생성해 줍니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [23]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">symbols</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">summation</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">pprint</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">symbols</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x,n'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">summation</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"> 5 4 3 2
x x x x
── + ── + ── + ── + x
5 4 3 2
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이렇게 만들어진 수열에 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">.subs()</code> 삼수를 이용하여 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">x</code>의 값을 대체하면 수열의 합이 계산됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [24]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">subs</span><span class="p" style="margin: 0px; padding: 0px;">({</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">:</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.2</span><span class="p" style="margin: 0px; padding: 0px;">})</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[24]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3.51206400000000</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이를 이용하여 n번째 항에 대한 정의와 몇개의 수열을 생성할 것인지를 입력받아서 해당 수열을 출력하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [26]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">expr</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter the nth term : '</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">num</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter the number of terms : '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'n'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">summation</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">expr</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">num</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter the nth term : a+(n-1)*d
Enter the number of terms : 3
3⋅a + 3⋅d
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 단일 변수의 부동식 풀기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=4660eb01f0843113c20118ea0b58f472fa8f5bec&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f343636306562303166303834333131336332303131386561306235386634373266613866356265632f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830342e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch04.ipynb&repository_id=44855550#3.-%EB%8B%A8%EC%9D%BC-%EB%B3%80%EC%88%98%EC%9D%98-%EB%B6%80%EB%8F%99%EC%8B%9D-%ED%92%80%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">SymPy</code>의 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">solve()</code>를 이용해서 방정식의 해를 풀 수 있는 것을 확인했습니다. 등식뿐만 아니라 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">x+5 > 3</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">sinx - 0.6 > 0</code>과 같은 부등식도 해결할 수 있는 방법도 제공하고 있습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
부등식의 3가지 유형과 풀이하는 방법에 대해서 살펴보겠습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
먼저, 다항부등식을 풀기 위해서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">solve_poly_inequality()</code>함수를 사용합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Poly</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve_poly_inequality</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">e</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">lhs</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">lhs</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Poly</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">lhs</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">rel</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">rel_op</span>
<span class="n" style="margin: 0px; padding: 0px;">solve_poly_inequality</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">rel</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[3]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[(-oo, -2), (2, oo)]</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<ol style="margin: 0px 2em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">먼저 부등식 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">e</code>를 생성합니다.</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">lhs</code>속성을 이용해 부등식의 왼쪽을 추출합니다.</li>
<li style="margin: 0px; padding: 0px;">추출된 다항식을 표현하기위해 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Poly</code> 객체를 생성합니다.</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">rel</code>속성을 이용해 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">비교 연산자</code>를 추출합니다.</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Poly</code>객체와 관계 연산자 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">rel</code>을 인자로하여 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">solve_poly_inequality()</code>함수를 호출합니다.</li>
</ol>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
그러면 튜플 리스트로 해를 리턴합니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
두번째로, 논리적 표현(Rational expression)은 대수 수식으로 연산자와 피연산자 모두 다항식인 것을 말합니다. 논리적 부등식을 풀기 위해서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">solve_rational_inequalities()</code> 함수를 사용합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Poly</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve_rational_inequalities</span>
<span class="n" style="margin: 0px; padding: 0px;">e</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">((</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">))</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">></span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">lhs</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">lhs</span>
<span class="n" style="margin: 0px; padding: 0px;">numer</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">denom</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">lhs</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">as_numer_denom</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">p1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Poly</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numer</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">p2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Poly</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">denom</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">rel</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">rel_op</span>
<span class="n" style="margin: 0px; padding: 0px;">solve_rational_inequalities</span><span class="p" style="margin: 0px; padding: 0px;">([[((</span><span class="n" style="margin: 0px; padding: 0px;">p1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">p2</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">rel</span><span class="p" style="margin: 0px; padding: 0px;">)]])</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[5]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(-oo, -2) U (1, oo)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위의 부등식과 다른 점에 대해서만 설명 드리겠습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">numer(분자)</code>와 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">denom(분모)</code>로 이루어진 튜플로 분리합니다. 이 두 개를 각각 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">p1, p2의 다항식 객체</code>로 생성한 다음, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">비교연산자</code>와 함께 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">solve_rational_inequalities()</code> 함수의 인자로 전달합니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
마지막으로, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">sinx - 0.6 > 0</code>은 다항 또는 관계 방정식 부류에 속하지 않는 부등식의 예 입니다. 이러한 부등식을 풀려면 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">solve_univariate_inequality()</code> 함수를 사용해야 합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [9]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Poly</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve_univariate_inequality</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span>
<span class="n" style="margin: 0px; padding: 0px;">e</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.6</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">></span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">solve_univariate_inequality</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[9]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">And(0.643501108793284 < x, x < 2.49809154479651)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [10]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">solve_univariate_inequality</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">relational</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[10]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(0.643501108793284, 2.49809154479651)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<ol style="margin: 0px 2em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">이 3가지 모든 기능을 다 취할수 있는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">isolve()</code>함수를 생성하시고,</li>
<li style="margin: 0px; padding: 0px;">부등식을 풀고 해를 리턴하는 함수를 구현하세요.</li>
</ol>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [14]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">sympy</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Poly</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve_poly_inequality</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve_rational_inequalities</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">solve_univariate_inequality</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">pprint</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">isolve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">strEquation</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Symbol</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">e</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">sympify</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">strEquation</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_polynomial</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="n" style="margin: 0px; padding: 0px;">lhs</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">lhs</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Poly</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">lhs</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">rel</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">rel_op</span>
<span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">solve_poly_inequality</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">rel</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">elif</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_rational_function</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="n" style="margin: 0px; padding: 0px;">lhs</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">lhs</span>
<span class="n" style="margin: 0px; padding: 0px;">numer</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">denom</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">lhs</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">as_numer_denom</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">p1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Poly</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numer</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">p2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Poly</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">denom</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">rel</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">rel_op</span>
<span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">solve_rational_inequalities</span><span class="p" style="margin: 0px; padding: 0px;">([[((</span><span class="n" style="margin: 0px; padding: 0px;">p1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">p2</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">rel</span><span class="p" style="margin: 0px; padding: 0px;">)]]))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">pprint</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">solve_univariate_inequality</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">isolve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x**2-4 < 0'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-2 < x ∧ x < 2
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [15]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">isolve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'(2+x)/(3+x) > 0'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(-∞ < x ∧ x < -3) ∨ (-2 < x ∧ x < ∞)
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [18]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">isolve</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'-1.5 + 2*sin(x) > 0'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.848062078981481 < x ∧ x < 2.29353057460831</pre>
</div>
</div>
</div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-3955891855874004042016-07-17T12:55:00.000+09:002016-08-01T08:12:27.967+09:00 Doing Math with Python. Chapter 03 통계값을 이용한 데이터 설명<span style="background-color: white; color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; line-height: 18.48px;">이 포스팅은 </span><b style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; line-height: 18.48px;"><span style="color: blue;">Jupiter Notebook</span></b><span style="background-color: white; color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; line-height: 18.48px;">로 작성되었습니다.</span><br />
<br style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<span style="background-color: white; color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; line-height: 18.48px;">그러니 직접 </span><span style="background-color: white; color: blue; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; line-height: 18.48px;"><b>Python</b></span><span style="background-color: white; color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; line-height: 18.48px;"> 코드를 실행시키고 싶으신 분은 아래 Link에서 다운로드 받으셔서 실행할 수 있습니다.</span><br />
<br style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; line-height: 18.48px;" />
<a href="https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython" style="background-color: white; color: #888888; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; line-height: 18.48px; text-decoration: none;">https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython</a><br />
<br />
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h1 style="color: inherit; font-family: inherit; font-size: 25.998px; font-weight: bold; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
파이썬으로 풀어보는 수학<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EB%8A%94-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h1>
<h1 style="color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">원서명 : Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (ISBN 9781593276409)</li>
<li style="margin: 0px; padding: 0px;">지은이 : 아미트 사하(Amit Saha)</li>
<li style="margin: 0px; padding: 0px;">원서 및 관련자료 : <a href="https://www.nostarch.com/doingmathwithpython" style="color: #0088cc; margin: 0px; padding: 0px;">https://www.nostarch.com/doingmathwithpython</a></li>
<li style="margin: 0px; padding: 0px;">번역서 : <a href="http://www.acornpub.co.kr/book/doing-math-with-python" style="color: #0088cc; margin: 0px; padding: 0px;">http://www.acornpub.co.kr/book/doing-math-with-python</a></li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="책표지" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/cover.jpg" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 0.636em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3장 통계값을 이용한 데이터 설명<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#3%EC%9E%A5-%ED%86%B5%EA%B3%84%EA%B0%92%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%84%A4%EB%AA%85" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 평균(mean)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#1.-%ED%8F%89%EA%B7%A0(mean)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h1 style="color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
숫자 집합을 요약하는 가장 일반적이고 집합적인 방법입니다. 모든 숫자들의 합을 그 갯수로 나눈 값입니다.</div>
</div>
</div>
</div>
</h1>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [17]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">donations</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">60</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">70</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">900</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">200</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">500</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">500</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">503</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">600</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1200</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">sum</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">donations</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[17]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">477.75</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 중위수(median)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#2.-%EC%A4%91%EC%9C%84%EC%88%98(median)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
숫자 집합에서 중간에 있는 값입니다. 만약 짝수개의 숫자가 있는 경우에는 가운데 두 수의 평균값을 계산합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [40]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">calculate_median</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">sort</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">%</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">])</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">calculate_median</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">donations</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[40]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">500.0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 최빈수(mode)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#3.-%EC%B5%9C%EB%B9%88%EC%88%98(mode)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
최빈값이란 가장 자주 발생한 수를 뜻합니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Counter</code>클래스를 이용하면 쉽게 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [19]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">scores</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">collections</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Counter</span>
<span class="n" style="margin: 0px; padding: 0px;">c</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Counter</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">scores</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">c</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[19]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Counter({1: 2, 3: 1, 4: 1, 5: 2, 6: 3, 7: 2, 8: 2, 9: 5, 10: 2})</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
그 결과로 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">element : 갯수</code>를 저장한 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Dictionary</code>를 리턴합니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">.most_common(갯수)</code>를 사용해서 가장 빈도가 높은 요소만을 추출할 수도 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [11]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">c</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">most_common</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[11]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[(9, 5)]</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이것을 이용하여 최빈수를 구하는 메서드를 만들어 보겠습니다. 최빈수는 여러개가 될 수 있으므로 최대 빈도 횟수를 구한 뒤 같은 것을 모두 리턴해야 합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [34]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">calculate_mode</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">result</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="n" style="margin: 0px; padding: 0px;">c</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Counter</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">most_common</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">most</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">c</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">][</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">c</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="n" style="margin: 0px; padding: 0px;">most</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">result</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">result</span>
<span class="n" style="margin: 0px; padding: 0px;">calculate_mode</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">scores</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[34]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[9]</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
4. 빈도 테이블 생성<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#4.-%EB%B9%88%EB%8F%84-%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%83%9D%EC%84%B1" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
전체 숫자에 대한 빈도를 출력하는 테이블을 생성해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [20]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">frequencyTable</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">Counter</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">most_common</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="se" style="color: #bb6622; font-weight: bold; margin: 0px; padding: 0px;">\t</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">frequencyTable</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">scores</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">9 5
6 3
1 2
5 2
7 2
8 2
10 2
3 1
4 1
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
출력순서는 빈도수가 아닌 항목의 순서대로 하고 싶다면 아래와 같이 정렬을 해주면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [30]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">frequencyTable</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">c</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Counter</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">most_common</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">s</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">sorted</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">c</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">key</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">lambda</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">reverse</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">s</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">e</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="se" style="color: #bb6622; font-weight: bold; margin: 0px; padding: 0px;">\t</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">frequencyTable</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">scores</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1 2
3 1
4 1
5 2
6 3
7 2
8 2
9 5
10 2
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
5. 산포정도 측정<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#5.-%EC%82%B0%ED%8F%AC%EC%A0%95%EB%8F%84-%EC%B8%A1%EC%A0%95" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
5.1 범위(range), 최소(min), 최대(max) 구하기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#5.1-%EB%B2%94%EC%9C%84(range),-%EC%B5%9C%EC%86%8C(min),-%EC%B5%9C%EB%8C%80(max)-%EA%B5%AC%ED%95%98%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
값들의 최소값과 최대값 간의 거리가 얼마나 되는지를 보여줍니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [18]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">find_range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">lowest</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">min</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">highest</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">max</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">highest</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">lowest</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">lowest</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">highest</span>
<span class="n" style="margin: 0px; padding: 0px;">find_range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">donations</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[18]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(1140, 60, 1200)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
5.2 분산(variance)과 표준편차(standard deviation)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#5.2-%EB%B6%84%EC%82%B0(variance)%EA%B3%BC-%ED%91%9C%EC%A4%80%ED%8E%B8%EC%B0%A8(standard-deviation)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
값들이 평균값 주변에 모여있는지 아니면 흩어져 있는지 정도를 알려주는 수치입니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
분산은 평균값과의 차이를 제곱한 값들의 평균입니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식 Variance" src="https://github.com/DevStarSJ/Study/raw/86e3fd981f570c9411fa1db274cd108b862ea292/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch03.equation.01.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [41]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">calculate_variance</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">mean</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">diffSquare</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">diffSquare</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">mean</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">diffSquare</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">calculate_variance</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">donations</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[41]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">153869.8409090909</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
표준편차는 분산의 제곱근 값입니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
값이 0에 가까워질수록 평균에 가까운 값들이 모여 있다는 뜻이고, 값이 커질수록 평균값과 멀게 분산되어 있는 값들이 많다는 뜻입니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [42]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">calculate_stddev</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_variance</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span>
<span class="n" style="margin: 0px; padding: 0px;">calculate_stddev</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">donations</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[42]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">392.26246431323364</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
6. 두 데이터 집합 간 상관관계 계산<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#6.-%EB%91%90-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A7%91%ED%95%A9-%EA%B0%84-%EC%83%81%EA%B4%80%EA%B4%80%EA%B3%84-%EA%B3%84%EC%82%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
두 숫자 집한 간 관계의 특성과 강도를 알려주는 측정값(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">피어슨 상관계수</code>)를 측정하는 방법에 대해서 알아보겠습니다. 이 값은 선형 관계의 강도를 측정한 값으로 <strong style="margin: 0px; padding: 0px;">-1 에서 1</strong> 사이의 값을 가집니다. 값이 <strong style="margin: 0px; padding: 0px;">0</strong> 이면 전혀 선형 관계가 없다는 것을 의미하며, <strong style="margin: 0px; padding: 0px;">1이거나 1에 가까울수록</strong> 강한 양의 선형관계가 있음을 의미하며, <strong style="margin: 0px; padding: 0px;">-1이거나 -1에 가까우면</strong> 강함 음의 상관관계가 있음을 의미합니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식 Pearson correlation coefficient" src="https://github.com/DevStarSJ/Study/raw/86e3fd981f570c9411fa1db274cd108b862ea292/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch03.equation.02.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
상관관계 계산을 좀 더 편리하게 하기 위해 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">zip()</code> 메서드에 대해서 잠깐 소개하겠습니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">zip()</code>은 입력된 2개의 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">List</code>의 각 항목에 해당하는 쌍(pair)을 리턴해 줍니다. 만약 두 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">List</code>의 길이가 다를 경우 길이가 작은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">List</code>의 모든 요소를 다 읽었을 때 종료됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [27]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">s2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">7</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">zip</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">s2</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(1, 5)
(2, 6)
(3, 7)
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
이제 상관계수를 계산하는 메서드를 작성해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [28]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">find_corr</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">min</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">sumXY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">sumX</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">sumY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">sumXsq</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">sumYsq</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">xn</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yn</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">zip</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">sumXY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">xn</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">yn</span>
<span class="n" style="margin: 0px; padding: 0px;">sumX</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">xn</span>
<span class="n" style="margin: 0px; padding: 0px;">sumY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">yn</span>
<span class="n" style="margin: 0px; padding: 0px;">sumXsq</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">xn</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">xn</span>
<span class="n" style="margin: 0px; padding: 0px;">sumYsq</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">yn</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">yn</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">sumXY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">sumX</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">sumY</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="p" style="margin: 0px; padding: 0px;">((</span><span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">sumXsq</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">sumX</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">sumYsq</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">sumY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">))</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span>
<span class="n" style="margin: 0px; padding: 0px;">find_corr</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">s2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[28]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1.0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [54]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s3</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">7</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">find_corr</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">s3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[54]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-1.0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [60]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">s4</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">find_corr</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">s1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">s4</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[60]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.7071067811865475</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
7. 데이터 간의 상관관계 여부 확인<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#7.-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B0%84%EC%9D%98-%EC%83%81%EA%B4%80%EA%B4%80%EA%B3%84-%EC%97%AC%EB%B6%80-%ED%99%95%EC%9D%B8" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
2개의 데이터가 관계가 있는지 없는지 여부를 확인하려면 산점도를 그려서 살펴보면 편합니다. 예를 들어서 고등학교 성적 등급 과 대학입학시험 성적 사이에 관계가 있는지 없는지 여부에 대해서 알아보고자 합니다. 먼저 두 데이터 간의 산점도를 그려보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [43]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">scoreOfHighSchool</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">90</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">92</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">95</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">96</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">87</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">87</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">90</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">95</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">98</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">96</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">scoreOfCollegeTest</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">85</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">87</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">86</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">97</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">96</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">88</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">89</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">98</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">98</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">87</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib.pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">plt</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">draw_ScatterPlot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">xText</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">yText</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">scatter</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">xlabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">xText</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">yText</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_ScatterPlot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">scoreOfHighSchool</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">scoreOfCollegeTest</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Score of High School'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Score Of College Test'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그림 산점도" src="https://github.com/DevStarSJ/Study/raw/86e3fd981f570c9411fa1db274cd108b862ea292/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch03.01.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<strong style="margin: 0px; padding: 0px;">산점도</strong>를 보니 고등학교 성적과 대학입학 성적 사이에 큰 상관이 없는 것을 알 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [68]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">find_corr</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">scoreOfHighSchool</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">scoreOfCollegeTest</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[68]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.3183785775683751</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<strong style="margin: 0px; padding: 0px;">상관계수</strong>를 구해보니 약 0.32 정도가 나옵니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
그럼 이제 전체성적이 아닌 고등학교 수학성적만을 대학입학성적과 비교해 보도록 하겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [74]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">scoreOfMath</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">83</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">85</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">84</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">96</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">94</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">86</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">87</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">97</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">97</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">85</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_ScatterPlot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">scoreOfMath</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">scoreOfCollegeTest</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Score of Math in High School'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Score Of College Test'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그림 산점도" src="https://github.com/DevStarSJ/Study/raw/86e3fd981f570c9411fa1db274cd108b862ea292/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch03.02.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<strong style="margin: 0px; padding: 0px;">산점도</strong>를 보니 거의 직선에 가깝게 보입니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [72]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">find_corr</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">scoreOfMath</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">scoreOfCollegeTest</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[72]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.9989633063220916</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<strong style="margin: 0px; padding: 0px;">상관계수</strong>도 거의 1에 가까운 숫자로 나옵니다. 고로 <strong style="margin: 0px; padding: 0px;">산점도</strong>와 <strong style="margin: 0px; padding: 0px;">상관계수</strong>를 이용해 실제로 고등학교 수학 점수와 대학입학 시험 점수 사이에는 강한 상관관계가 존재한다는 결론을 내릴 수 있습니다.</div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
8. 산점도의 중요성<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#8.-%EC%82%B0%EC%A0%90%EB%8F%84%EC%9D%98-%EC%A4%91%EC%9A%94%EC%84%B1" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
앞서 많은 통계데이터를 구하는 메서드들을 작성하였습니다. 통계데이터가 전체데이터를 대표하는 값이긴 하지만, 이것이 모든 것을 다 대변해주는 값은 아닙니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
프란시스 안스콤(Francis Anscombe)가 작성한 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Graphs in Statistical Analysis</code>를 한 번 살펴 보도록 하겠습니다. 안스콤의 콰르텟(Anscombe quartet)이라는 4개의 데이터를 살펴보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [75]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">AX</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">10.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">13.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">11.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">14.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">6.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">4.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">12.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">7.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">5.0</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">AY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.04</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">6.95</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">7.58</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.81</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.33</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.96</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">7.24</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">4.26</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">10.84</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">4.82</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">5.68</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">BX</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">AX</span>
<span class="n" style="margin: 0px; padding: 0px;">BY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.14</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.14</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.74</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.77</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.26</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">6.13</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">3.1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.13</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">7.26</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">4.74</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">CX</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">AX</span>
<span class="n" style="margin: 0px; padding: 0px;">CY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">7.46</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">6.77</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">12.74</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">7.11</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">7.81</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.84</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">6.08</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">5.39</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.15</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">6.42</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">5.73</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">DX</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">19.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.0</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">DY</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">6.58</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">5.76</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">7.71</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.84</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">8.47</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">7.04</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">5.25</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">12.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">5.56</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">7.91</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">6.89</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위 4개 데이터셋의 X, Y 각각에 대한 평균, 표준편차와 X-Y의 상관관계에 대해서 살펴보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [83]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">aStat</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">AX</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_stddev</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">AX</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">AY</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_stddev</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">AY</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">find_corr</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">AX</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">AY</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">bStat</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">BX</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_stddev</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">BX</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">BY</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_stddev</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">BY</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">find_corr</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">BX</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">BY</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">cStat</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">CX</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_stddev</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">CX</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">CY</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_stddev</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">CY</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">find_corr</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">CX</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">CY</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">dStat</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">DX</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_stddev</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">DX</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">DY</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_stddev</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">DY</span><span class="p" style="margin: 0px; padding: 0px;">),</span> <span class="n" style="margin: 0px; padding: 0px;">find_corr</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">DX</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">DY</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">sTitle</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'X Mean'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'X StdDev'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Y Mean'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Y StdDev'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'X-Y corr'</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">sTitle</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">],</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="se" style="color: #bb6622; font-weight: bold; margin: 0px; padding: 0px;">\t</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">aStat</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">],</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="se" style="color: #bb6622; font-weight: bold; margin: 0px; padding: 0px;">\t</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">bStat</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">],</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="se" style="color: #bb6622; font-weight: bold; margin: 0px; padding: 0px;">\t</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">cStat</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">],</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="se" style="color: #bb6622; font-weight: bold; margin: 0px; padding: 0px;">\t</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">dStat</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">])</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">X Mean 9.0 9.0 9.0 9.0
X StdDev 3.3166247903554 3.3166247903554 3.3166247903554 3.3166247903554
Y Mean 7.500909090909093 7.500909090909091 7.500000000000001 7.50090909090909
Y StdDev 2.031568135925815 2.0316567355016177 2.030423601123667 2.0305785113876023
X-Y corr 0.816420516344843 0.8162365060002422 0.8162867394895953 0.8165214368885068
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
거의 수치가 똑같이 나온것을 확인할 수 있습니다. 그럼 이제 각각에 대한 산점도를 보도록 하겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [86]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">draw_ScatterPlot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">AX</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">AY</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'X'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Y'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_ScatterPlot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">BX</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">BY</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'X'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Y'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_ScatterPlot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">CX</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">CY</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'X'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Y'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_ScatterPlot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">DX</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">DY</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'X'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Y'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
<br /></div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="그림 산점도" src="https://github.com/DevStarSJ/Study/raw/9b5e6f207dd9f6fb87da7437ffce1c78e87476cb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch03.03.png" style="border: 0px; display: block; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /><img alt="그림 산점도" src="https://github.com/DevStarSJ/Study/raw/9b5e6f207dd9f6fb87da7437ffce1c78e87476cb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch03.04.png" style="border: 0px; display: block; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; height: auto; margin: 1em auto 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /><img alt="그림 산점도" src="https://github.com/DevStarSJ/Study/raw/9b5e6f207dd9f6fb87da7437ffce1c78e87476cb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch03.05.png" style="border: 0px; display: block; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; height: auto; margin: 1em auto 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /><img alt="그림 산점도" src="https://github.com/DevStarSJ/Study/raw/9b5e6f207dd9f6fb87da7437ffce1c78e87476cb/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch03.06.png" style="border: 0px; display: block; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; height: auto; margin: 1em auto 0px; max-width: 100%; padding: 0px; vertical-align: middle;" />위 4개의 산점도를 보면 모두 다른 데이터 임을 알 수 있습니다. 따라서 데이터를 분석하는 데 산점도는 중요한 도구가 될 수 있으며, 결과를 도출하기 전에 한번 쯤 살펴봐야 할 필요성은 있어 보입니다.</div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
9. 파일에서 데이터 읽기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#9.-%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%BD%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
9.1 텍스트 파일에서 데이터 읽기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#9.1-%ED%85%8D%EC%8A%A4%ED%8A%B8-%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%BD%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
다음 내용의 ch03.mydata.txt 를 읽는 예제 코드를 보도록 하겠습니다.</div>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">100
60
70
900
100
200
500
500
503
600
1000
1200</code></pre>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">TxtToList</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">filename</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">data</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">with</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">open</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">filename</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="n" style="margin: 0px; padding: 0px;">f</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">line</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">f</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">data</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">line</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">data</span>
<span class="n" style="margin: 0px; padding: 0px;">TxtToList</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'files/ch03.mydata.txt'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[100.0, 60.0, 70.0, 900.0, 100.0, 200.0, 500.0, 500.0, 503.0, 600.0, 1000.0, 1200.0]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
9.2 CSV 파일에서 데이터 읽기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#9.2-CSV-%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9D%BD%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
콤마구분값(csv) 파일은 엑셀에서 편집이 가능하기 때문에 많이 사용됩니다. 다음 내용의 ch03.data.csv 파일을 읽는 예제를 보도록 하겠습니다.</div>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">Number,Square
10,100
9,81
22,484</code></pre>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">csv</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">CsvToList</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">filename</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">colHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">rowHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">reader</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">csv</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">reader</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">open</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">filename</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">columns</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">next</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">reader</span><span class="p" style="margin: 0px; padding: 0px;">))</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># pass column header</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">colHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">next</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">reader</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">data</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">rowHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">columns</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">data</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">([])</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">row</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">reader</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">rowHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">columns</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">rowHeaderLen</span><span class="p" style="margin: 0px; padding: 0px;">]</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">row</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">]))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">data</span>
<span class="n" style="margin: 0px; padding: 0px;">CsvToList</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'files/ch03.data.csv'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[2]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[[10.0, 9.0, 22.0], [100.0, 81.0, 484.0]]</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 0.636em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
프로그래밍 연습<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%97%B0%EC%8A%B5" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 다른 csv 데이터로 테스트<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#1.-%EB%8B%A4%EB%A5%B8-csv-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A1%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<a href="https://www.quandl.com/data/WORLDBANK/USA_SP_POP_TOTL" style="color: #0088cc; margin: 0px; padding: 0px;">https://www.quandl.com/data/WORLDBANK/USA_SP_POP_TOTL</a> 에서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">csv</code> 파일을 다운로드 합니다.<br />
이 데이터는 1960년부터 2012년 동안 매년말 미국의 총 인구수 입니다.<br />
이 데이터를 이용해서 이번 챕터에서 배운 통계 데이터 및 그래프를 출력하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [46]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">data</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">CsvToList</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'files/WORLDBANK-USA_SP_POP_TOTL.csv'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Mean : '</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_mean</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]))</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Median : '</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_median</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]))</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'StdDev : '</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">calculate_stddev</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]))</span>
<span class="n" style="margin: 0px; padding: 0px;">years</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1960</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]))]</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_ScatterPlot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">years</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">],</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Years'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Population'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Mean : 247353970.12727273
Median : 242289000.0
StdDev : 41223553.97342924
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그림 산점도" src="https://github.com/DevStarSJ/Study/raw/86e3fd981f570c9411fa1db274cd108b862ea292/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch03.07.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 퍼센트 위치 계산<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#2.-%ED%8D%BC%EC%84%BC%ED%8A%B8-%EC%9C%84%EC%B9%98-%EA%B3%84%EC%82%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">백분위수</code>란 관측값에 대해서 설정한 백분율 이하의 값들을 의미합니다. 예를 들어 95분위수라는 말은 집합내에서 해당 수보다 낮은 수들이 95%가 있다는 것을 의미합니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">백분위수 p</code>로 관측값을 계산하는 방법은 다음과 같습니다.</div>
<ol style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">오름차순으로 data를 정렬</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">i = (n * p / 100) + 0.5</code>를 계산 (n은 data 내의 아이템 개수)</li>
<li style="margin: 0px; padding: 0px;">i가 정수이면 data[i]가 백분위 p에 대항하는 숫자</li>
<li style="margin: 0px; padding: 0px;">i가 정수가 아니면 k가 i의 정수부분이고, f가 i의 분수 부분으로 계산해서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">(1-f) * data[k] + f * data[k+1]</code>이 백분위 p에 해당하는 숫자</li>
</ol>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
파일 내의 숫자 집합을 취해서 입력된 백분위에 해당하는 숫자를 표시하는 프로그램을 작성하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [15]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">data</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">CsvToList</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'files/ch03.math.score.csv'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">find_PercentileRank</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">data</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">sort</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span>
<span class="n" style="margin: 0px; padding: 0px;">k</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_integer</span><span class="p" style="margin: 0px; padding: 0px;">()):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">k</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">f</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">k</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="n" style="margin: 0px; padding: 0px;">f</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">k</span><span class="p" style="margin: 0px; padding: 0px;">]</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">f</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">k</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">p</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter percentile : '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">find_PercentileRank</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">p</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter percentile : 95
98.5
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 그룹화한 빈도 테이블 생성<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=86e3fd981f570c9411fa1db274cd108b862ea292&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f383665336664393831663537306339343131666131646232373463643130386238363265613239322f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830332e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch03.ipynb&repository_id=44855550#3.-%EA%B7%B8%EB%A3%B9%ED%99%94%ED%95%9C-%EB%B9%88%EB%8F%84-%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%83%9D%EC%84%B1" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
그룹화한 빈도 테이블이란 주어진 데이터를 분류화하여 해당 분류안에 몇개의 데이터가 있는지를 표시해 주는 테이블 입니다. 여기서 분류를 생성하는 방법에는 여러 가지가 있을 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [23]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">create_classes</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">width</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">low</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">high</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">find_range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">width</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/=</span> <span class="n" style="margin: 0px; padding: 0px;">n</span>
<span class="n" style="margin: 0px; padding: 0px;">classes</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">low</span>
<span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">low</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">width</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="n" style="margin: 0px; padding: 0px;">high</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">width</span> <span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">classes</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">b</span>
<span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">width</span>
<span class="n" style="margin: 0px; padding: 0px;">classes</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">((</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">high</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">classes</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">scores</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">create_classes</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">scores</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[1, 1, 3, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 10, 10]
</pre>
</div>
</div>
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[23]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[(1, 3.25), (3.25, 5.5), (5.5, 7.75), (7.75, 11)]</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
위에서 제공하는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">create_classes()</code> 메서드를 사용해서 그룹화한 빈도 테이블을 구현하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [24]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">collections</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">defaultdict</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GroupingFrequencyTable</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">classes</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">create_classes</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">sort</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span>
<span class="n" style="margin: 0px; padding: 0px;">table</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">defaultdict</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">>=</span> <span class="n" style="margin: 0px; padding: 0px;">classes</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">][</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]:</span>
<span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="n" style="margin: 0px; padding: 0px;">table</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">classes</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">]]</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">table</span>
<span class="n" style="margin: 0px; padding: 0px;">GroupingFrequencyTable</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">scores</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[24]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">defaultdict(int, {(1, 3.25): 3, (3.25, 5.5): 3, (5.5, 7.75): 5, (7.75, 11): 9})</pre>
</div>
</div>
</div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-2059881426548195772016-07-13T08:29:00.002+09:002016-08-01T08:11:19.916+09:00Doing Math with Python. Chapter 02. 그래프로 데이터 가시화이 포스팅은 <b><span style="color: blue;">Jupiter Notebook</span></b>로 작성되었습니다.<br />
<br />
그러니 직접 <span style="color: blue;"><b>Python</b></span> 코드를 실행시키고 싶으신 분은 아래 Link에서 다운로드 받으셔서 실행할 수 있습니다.<br />
<br />
<a href="https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython">https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython</a><br />
<br />
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h1 style="color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
<br /></h1>
<div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h1 style="color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
파이썬으로 풀어보는 수학<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EB%8A%94-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h1>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">원서명 : Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (ISBN 9781593276409)</li>
<li style="margin: 0px; padding: 0px;">지은이 : 아미트 사하(Amit Saha)</li>
<li style="margin: 0px; padding: 0px;">원서 및 관련자료 : <a href="https://www.nostarch.com/doingmathwithpython" style="color: #0088cc; margin: 0px; padding: 0px;">https://www.nostarch.com/doingmathwithpython</a></li>
<li style="margin: 0px; padding: 0px;">번역서 : <a href="http://www.acornpub.co.kr/book/doing-math-with-python" style="color: #0088cc; margin: 0px; padding: 0px;">http://www.acornpub.co.kr/book/doing-math-with-python</a></li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="책표지" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/cover.jpg" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 0.636em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2장 그래프로 데이터 가시화<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#2%EC%9E%A5-%EA%B7%B8%EB%9E%98%ED%94%84%EB%A1%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B0%80%EC%8B%9C%ED%99%94" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
카르테지안 좌표평면 (Cartesian coordinate plane)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#%EC%B9%B4%EB%A5%B4%ED%85%8C%EC%A7%80%EC%95%88-%EC%A2%8C%ED%91%9C%ED%8F%89%EB%A9%B4-(Cartesian-coordinate-plane)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
수평선 값은 x축, 수직선 값은 y축 으로 부르는 좌표 평면 (통상적으로 많이 사용하는 2차원을 표현하는 좌표계)</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이번 장에서의 진행을 위해서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">matplotlib</code>를 설치행 합니다.</div>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">pip install matplotlib-venn</code></pre>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
기본적으로 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">jupyter notebook</code>에서 실행을 하면 그래프 결과가 팝업으로 실행되어서 그림으로 저장 등 다양한 기능을 사용할 수 있습니다. 실행 결과를 팝업이 아닌 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">notebook</code>안에 삽입하고 싶은 경우에는 아래 <strong style="margin: 0px; padding: 0px;">magic command</strong>를 입력하시면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="o" style="color: #666666; margin: 0px; padding: 0px;">%</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> inline
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 맷플롭립을 이용한 그래프 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#1.-%EB%A7%B7%ED%94%8C%EB%A1%AD%EB%A6%BD%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B7%B8%EB%9E%98%ED%94%84-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h5 style="color: inherit; font-family: inherit; font-size: 14px; font-style: italic; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
step 1. X,Y 좌료를 이용하여 Show()<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#step-1.-X,Y-%EC%A2%8C%EB%A3%8C%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-Show()" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h5>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">plot()</code>에 인자로 X좌표들의 List, Y좌표들의 List를 차례대로 넣으면 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">matplotlib.lines.Line2D</code> 라는 객체가 생성됩니다. 그런 다음에 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Show()</code>를 실행하면 팝업으로 그래프가 출력됩니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Save</code>버튼을 눌러서 그림으로 저장이 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">x_numbers</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">y_numbers</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">pylab</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">show</span>
<span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x_numbers</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y_numbers</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0AAElFTkSuQmCC%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h5 style="color: inherit; font-family: inherit; font-size: 14px; font-style: italic; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
step 2. Marker 표시<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#step-2.-Marker-%ED%91%9C%EC%8B%9C" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h5>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
그래프의 각 포인터에 마커를 표시하고 싶은 경우 세번째 인자로 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">marker='o'</code>를 넣어주면 됩니다. ( <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">o</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">*</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">x</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">+</code> 등 여러가지가 있습니다.)</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x_numbers</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y_numbers</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">marker</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'o'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0Az7MMD0l/LumyZPssSf8p6ZK2MZyf2R5Pzs/ejunbkn/fIunHkq5oe7/n8zPzlXxE/FDSb2cYkvrC%0AKaQ6npLEH7RTiIwv7Ku7lMdT4vxMLSKOJZuz1WqMac/Tez4/87gcKfWFU0jtquS/bo/bvjTvyZRB%0AFhf24Q0zHE+J8zM127Ns75Z0UNITEfFM25Cez8/cbzWMgT0r6fyIOJbcQ2iLpItznlOhZXdhH6Su%0Ax5PzswcRcULSe22fLWmL7UsjYt8g+8xjJX9A0runPD8veQ19iIhXT/4XLyK2S/oT2+/IeVqFlVzY%0A96ikb0XEdzsM4fzsQbfjyfnZn4j4naSn1GpLn6rn83NYRd6aPofbKmmFJM104RTeZNrjOTWPs32F%0AWm2xr4xqYiWU5sI+zs/0ZjyenJ/p2T7H9txk+0xJ10na3zas5/Mz87jG9r9Kakj6U9v/I2mtpDOU%0AXDgVEdts32D7BSUXTmU9hyrpdjwl3Wz7DkmvSTou6Za85lp0yYV9t0nam+Sep13Yx/mZXprjKc7P%0AXrxL0jdtz1JrAb45OR9XaoDzk4uhAKDCuNkvAFQYRR4AKowiDwAVRpEHgAqjyANAhVHkAaDCKPIA%0AUGEUeQCosP8H70UK2Ui09WgAAAAASUVORK5CYII=%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h5 style="color: inherit; font-family: inherit; font-size: 14px; font-style: italic; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
Step 3. Line 지우기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#Step-3.-Line-%EC%A7%80%EC%9A%B0%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h5>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
세번째 인자에 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">marker=</code>를 지우고 표시하고픈 마커만을 입력한 경우에는 선이 없이 마커만 출력됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [4]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x_numbers</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y_numbers</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'*'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0AAav/PG6NKKLqAAAAAElFTkSuQmCC%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h5 style="color: inherit; font-family: inherit; font-size: 14px; font-style: italic; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
Step 4. 뉴욕시의 연간 평균온도 표시 (X축값을 주지 않고 출력)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#Step-4.-%EB%89%B4%EC%9A%95%EC%8B%9C%EC%9D%98--%EC%97%B0%EA%B0%84-%ED%8F%89%EA%B7%A0%EC%98%A8%EB%8F%84-%ED%91%9C%EC%8B%9C-(X%EC%B6%95%EA%B0%92%EC%9D%84-%EC%A3%BC%EC%A7%80-%EC%95%8A%EA%B3%A0-%EC%B6%9C%EB%A0%A5)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h5>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이제는 예제 데이터가 아닌 실제 데이터를 가지고 작성해 보겠습니다. 뉴욕시의 2000년에서 2012년까지의 평균온도(화시)를 표시해보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">nyc_temp</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">53.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">56.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">56.4</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">53.4</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">54.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">55.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">56.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">55.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">55.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">54.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">56.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">56.4</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">57.3</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">nyc_temp</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">marker</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'o'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
Y축의 값의 경우 0에서부터 시작을 한 것이 아니라 입력된 값의 최소값(53.4)에서 최고값(57.3)을 기준으로 표시된 것을 확인 할 수 있습니다. X축의 값을 따로 주지 않은 경우 0부터 차례대로 번호가 매겨집니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
X축 값을 2000 ~ 2012으로 주겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">years</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2013</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">years</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">marker</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'o'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0AAAAASUVORK5CYII=%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h5 style="color: inherit; font-family: inherit; font-size: 14px; font-style: italic; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
Step 5. 뉴욕시의 월간 온도 비교 (한 그래프에 여러개의 시리즈 출력)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#Step-5.-%EB%89%B4%EC%9A%95%EC%8B%9C%EC%9D%98-%EC%9B%94%EA%B0%84-%EC%98%A8%EB%8F%84-%EB%B9%84%EA%B5%90-(%ED%95%9C-%EA%B7%B8%EB%9E%98%ED%94%84%EC%97%90-%EC%97%AC%EB%9F%AC%EA%B0%9C%EC%9D%98-%EC%8B%9C%EB%A6%AC%EC%A6%88-%EC%B6%9C%EB%A0%A5)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h5>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
3개의 연도(2000, 2006, 2012)에 대해서 12개월에 대한 평균온도를 그래프로 표시해 보겠습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [4]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2000</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">31.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">37.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">47.2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">51.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">63.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">71.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">72.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">72.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">66.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">57.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">45.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">31.3</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2006</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">40.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">35.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">43.1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">55.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">63.1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">71.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">77.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">75.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">66.6</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">56.2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">51.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">43.6</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2012</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">37.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">40.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">50.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">54.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">65.1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">71.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">78.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">76.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">68.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">58.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">43.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">41.5</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">months</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">13</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2006</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2012</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0AhCR0IYRwEP8HWB5+k8RHO2cAAAAASUVORK5CYII=%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
3개의 시리즈가 하나의 그래프에 출력이 되었습니다. 각 시리즈별 라인의 색상은 특별히 신경쓰지 않아도 구분이 가능하도록 자동으로 설정되어 있습니다.</div>
<h5 style="color: inherit; font-family: inherit; font-size: 14px; font-style: italic; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
Step 6. 범주(Legend) 출력<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#Step-6.-%EB%B2%94%EC%A3%BC(Legend)-%EC%B6%9C%EB%A0%A5" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h5>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
한 그래프에 시리즈가 여러개일 경우 각각의 시리즈가 무엇을 의미하는지 범주를 추가해 주면 좀 더 알아보기 쉽습니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">legend()</code>에 각 시리즈별 명칭을 List로 전달하면 화면에 출력됩니다. 두번째 인자로 범주가 출력될 위치를 설정할 수 있습니다. 기본적으로는 우측상단에 출력되는데 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">best</code>로 설정할 경우에는 그래프를 보는데 방해되지 않도록 적당한 위치에 알아서 위치시켜 줍니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [8]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">pylab</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">legend</span>
<span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2006</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2012</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">legend</span><span class="p" style="margin: 0px; padding: 0px;">([</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2006</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2012</span> <span class="p" style="margin: 0px; padding: 0px;">])</span>
<span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0A4XrhPni28CRt8rT2js4hKAUTJ8Lbb4O7OwQGwoe5PqRBvgb0XtM79MVJksDYsdC3r9m1Oh55dQu6%0A17eYe3ULuqg6dOgQgYGB5MmTx5rhhksSuoifLl2CypWhVSv2Nf2Zz7+6T3Czxkz6aCKF3yps7+gc%0AipMTzJ5tWlLatzejQkdUG8GOqzvwPOkZ+uLq1aFwYZPYI6OUdR4xFNYWdGle29bp1S3oLOXr60vb%0Atm0ZOnToi92ObE0Suoh/Tp+G99+H3r253fkrGjcLJmuflrQo2pjmhZtHfr+IsiRJzHDGa9egVy9I%0AkSQlsxvOpsc/Pbjjdyf0xaNGmaGMkdHaOo8Y0DrqW9BZwt/fn/r161OhQgUGDBgQoxijQhK6iF8O%0AHQI3N/juOwK796RZM8ja9lvSZQjk52o/2zs6h/bfsrs7d5ol0Stmq0ibIm3ovqp76HHUefKY3anj%0Agf+2oFu6dGmoLegOHTr04pr/tqArZOEWfAEBATRs2JBs2bLx+++/2yTucEW10T2qD+JZx4iIw7Zv%0ANwuOLFqktda6Z0+tS7ReqrONzqZvP75t5+ASjtu3tc6Xzyzj8jTwqS44qaCed2Re6IsePozznaLR%0A3YIuODhY+/v763/++Udnz55d+/v764CQPf0CAwN13bp1daNGjfRzC3d3Cu/nhGxBJxzW+vVaZ8ig%0A9erVWmutPTy0zl7ypM4wIqPee32vfWNLgK5c0Tp7dq1nzNB63/V9OuPIjPq67/VQ18Tlv/2YbEHn%0A5eWllVLaycnpxaNq1apaa623bNminZycdMqUKUOVu23btnBjsWZCl6n/Iu77+2/o0sXsQF+5Mnv3%0AQq0GvqTpV4bBVQfQsXhHe0eYIJ05Y1q/xo+Ho+mHcOT2ETybv+wklan/lpGp/yLhmDcPunWDf/6B%0AypXx9obGTYLJ078dNfNWlWRuR3nzml/Lp59CmYAvOep9lNVnV9s7rARNaugi7poyBb7/3iwBWKgQ%0AAQFQrRokcvsR/+wr2NJ+C0kTJbV3lAne9u1mRumXM1Yz+VIvjn5ylOSJk0sN3UJSQxeOb+RI+Pln%0As+RfyOiCvn3hWZa1nEk7iSXuSySZxxEVK5ot7MZ+Vpt8roX5dcebU+JF7JCELuIWrc1W9B4eZjnW%0A3LkB8+2qHRe4WKwtfzb5k7dTvW3nQMWr6teHjz6CpJvGMHbXWC49uGTvkBIkaXIRcUdwMHz+OWzb%0A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%0AAABJRU5ErkJggg==%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
범주를 넣으니 각각의 색깔별 시리즈가 무엇을 의미하는지 확인이 가능해졌습니다. 가장 온도가 높은 7월의 경우를 보니 계속해서 증가하고 있는 것을 확인할 수 있습니다.</div>
<h5 style="color: inherit; font-family: inherit; font-size: 14px; font-style: italic; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
Step 7. 타이틀, 레이블 추가<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#Step-7.-%ED%83%80%EC%9D%B4%ED%8B%80,-%EB%A0%88%EC%9D%B4%EB%B8%94-%EC%B6%94%EA%B0%80" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h5>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">title()</code> : 타이틀 추가 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">xlabel()</code> : X축 레이블 추가 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">ylabel()</code> : Y출 레이블 추가</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [9]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">pylab</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">title</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">xlabel</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">legend</span>
<span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2006</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2012</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">legend</span><span class="p" style="margin: 0px; padding: 0px;">([</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2006</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2012</span> <span class="p" style="margin: 0px; padding: 0px;">])</span>
<span class="n" style="margin: 0px; padding: 0px;">title</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Average monthly temperature in NYC'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">xlabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Month'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Temperature'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0ASUVORK5CYII=%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h5 style="color: inherit; font-family: inherit; font-size: 14px; font-style: italic; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
Step 8. 축 조정<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#Step-8.-%EC%B6%95-%EC%A1%B0%EC%A0%95" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h5>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
기본적으로 축의 값은 전체 데이터의 최소값과 최대값을 그 범위로 하였습니다. 원하는대로 축의 값을 조정하려면 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">axis()</code>를 이용하면 됩니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">axis()</code> : 현재 설정된 값을 출력해 줍니다. <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">axis(ymin = ?)</code> : y최소값을 원하는 값으로 설정합니다. (같은 방법으로 ymax, xmin, xmax로 가능합니다.) <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">axis([xmin, xmax, ymin, ymax])</code> : 4개의 숫자를 가진 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">List</code>를 인자로 전달하여 한번에 모두 변경이 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2006</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2012</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">pylab</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">axis</span>
<span class="n" style="margin: 0px; padding: 0px;">axis</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(0.0, 12.0, 30.0, 80.0)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [7]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">axis</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">ymin</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[7]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(0.0, 12.0, 0, 80.0)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [13]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그림 step 8. 축조정" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch02.09.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. pyplot을 이용한 그래프 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#2.-pyplot%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EA%B7%B8%EB%9E%98%ED%94%84-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
지금껏 살펴본 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">pylab</code>의 경우 <em style="margin: 0px; padding: 0px;">shell</em>환경에서 작업하기에 적합하지만, 비교적 규모가 있는 <em style="margin: 0px; padding: 0px;">Application</em>개발에는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">pyplot</code>가 더 효율적 입니다. 작업방법은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">pylab</code>과 거의 유사합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [14]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib.pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">plt</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">create_graph</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2000</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">31.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">37.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">47.2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">51.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">63.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">71.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">72.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">72.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">66.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">57.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">45.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">31.3</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2006</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">40.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">35.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">43.1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">55.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">63.1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">71.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">77.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">75.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">66.6</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">56.2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">51.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">43.6</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2012</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">37.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">40.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">50.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">54.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">65.1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">71.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">78.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">76.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">68.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">58.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">43.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">41.5</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">months</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">13</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2006</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2012</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">create_graph</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0AhCR0IYRwEP8HWB5+k8RHO2cAAAAASUVORK5CYII=%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">savefig('저장할 파일 경로 및 이름')</code> : 그래프를 그림으로 저장 (PNG, PDF,SVG등 여러가지 타입을 지원) / <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">pylab</code>, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">pyplot</code> 모두 가능</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [31]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib.pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">plt</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">create_graph</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2000</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">31.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">37.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">47.2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">51.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">63.5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">71.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">72.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">72.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">66.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">57.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">45.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">31.3</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2006</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">40.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">35.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">43.1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">55.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">63.1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">71.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">77.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">75.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">66.6</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">56.2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">51.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">43.6</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2012</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">37.3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">40.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">50.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">54.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">65.1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">71.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">78.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">76.7</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">68.8</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">58.0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">43.9</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">41.5</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">months</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">13</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2006</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">months</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">nyc_temp_2012</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">savefig</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'d:/fig.png'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">create_graph</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 수식을 이용하여 그래프 그리기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#3.-%EC%88%98%EC%8B%9D%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EA%B7%B8%EB%9E%98%ED%94%84-%EA%B7%B8%EB%A6%AC%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3.1 뉴턴의 만유인력의 법칙<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#3.1-%EB%89%B4%ED%84%B4%EC%9D%98-%EB%A7%8C%EC%9C%A0%EC%9D%B8%EB%A0%A5%EC%9D%98-%EB%B2%95%EC%B9%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="그림 3-1. 만류인력의 법칙(수식)" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch02.equation.01.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
질량이 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">m1</code>인 물체와 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">m2</code>인 물체를 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">F</code>의 힘으로 끌어당깁니다. (<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">G</code> : 중력상수, <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">r</code> : 두 물체간의 거리)</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
질량이 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">0.5kg</code>인 물체와 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">1.5kg</code>인 물체 사이의 중력을 구해보겠습니다. 거리는 19개의 구간에 대하여 구하며 100m 에서 50미터 간격으로 증가 (즉, 100m ~ 1000m)로 하며, 중력 상수는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">6.674 * 10**-11</code>을 사용하겠습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="그림 3-2. 중력상수(수식)" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch02.equation.02.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [15]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib.pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">plt</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">draw_graph</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">marker</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'o'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">xlabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Distance in meters'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Gravitational force in newtons'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">title</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Gravirarional force and distance'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">generate_F_r</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="n" style="margin: 0px; padding: 0px;">r</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1001</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">50</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">G</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">6.674</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">11</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">m1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span>
<span class="n" style="margin: 0px; padding: 0px;">m2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.5</span>
<span class="n" style="margin: 0px; padding: 0px;">F</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">dist</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">r</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">force</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">G</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">m1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">m2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">dist</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">F</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">force</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_graph</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">r</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">F</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">generate_F_r</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0AAIXWW5wAAAAASUVORK5CYII=%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3.2 포물선 운동<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#3.2-%ED%8F%AC%EB%AC%BC%EC%84%A0-%EC%9A%B4%EB%8F%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="그림 3-4. 포물선 운동" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch02.12.jpg" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" />그림출처 : <a href="http://terms.naver.com/entry.nhn?docId=941198&cid=47338&categoryId=47338" style="color: #0088cc; margin: 0px; padding: 0px;">Naver지식백과 Basic 고교생을 위한 물리 용어사전 : 포물선 운동</a></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
한 지점에서 공을 던지게되면 포물선을 그리면서 이동하게 됩니다. 이것을 그래프로 표현하기 위해서는 포물선 운동방적식을 이용하여 공이 지면에 도달할때 까지 공의 위치를 계산해야 합니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
공의 초기 속도를 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">u</code>라고 하고 그때의 각도를 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">θ</code>라고 할 경우 이 속도를 2개로 분리하여 생각할 수 있습니다.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">x 방향 : <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">ux = u cosθ</code></li>
<li style="margin: 0px; padding: 0px;">y 방향 : <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">uy = u sinθ</code></li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
시간이 지날수록 속도는 변하게 됩니다. 변화된 속도를 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">V</code>로 표시하는 경우, x축 방향으로는 계속 변하지 않고 동일한 속도가 유지되는데, y축 방향으로는 중력의 영향을 받아서 감소하게 됩니다.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">x 속도 : <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Vx = u cosθ</code></li>
<li style="margin: 0px; padding: 0px;">y 속도 : <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Vy = u singθ - gt</code></li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이동 거리(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">S</code>)는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">속도 x 시간</code>이므로 아래와 같이 표현이 가능합니다.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">x 이동거리 : <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Sx = u cosθ t</code></li>
<li style="margin: 0px; padding: 0px;">y 이동거리 : <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Sy = u sinθ t - (1/2) gt^2</code></li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
이제 포물선 운동을 표현하는데 필요한 수식은 완성이 되었습니다. 그래프로 표현하기 위해서는 그려질 영역을 어느 정도 알아야 하는데, 그러기 위해서 공이 지면에서 얼마나 오랫동안 공중에 있는지를 계산해야 합니다. 이를 위해서는 우선 공이 어느 시점에 지면에서 최고 지점에 위치하는지를 알아야 합니다. 공의 수직속도 요인 (<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Vy</code>)가 0이 되는 시점이 됩니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식 3-3. Tpeak 수식" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch02.equation.03.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
비행시간은 그 시간동안 다시 내려와서 지면에 닿는시간 까지이므로 2배를 해주면 됩니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식 3-4. Tflight 수식" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch02.equation.04.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
초기 속도(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">u</code>)를 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">5m/s</code>로 하고 각도(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">θ</code>)를 45도로 던진경우 대입하면 아래와 다음과 같은 수식이 됩니다. (<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">g = 9.8</code>로 가정)</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="수식 3-5. Tflight 수식 예제" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch02.equation.05.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [18]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">math</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radians</span>
<span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">radians</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">45</span><span class="p" style="margin: 0px; padding: 0px;">))</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[18]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">0.7215375318230076</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
계산을 공의 체공시간이 나옵니다. 최대한 자주 계산할수록 더 정확한 결과가 나오므로 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">0.001</code>초마다 해당 좌료를 계산해 보겠습니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
동일 간격으로 부동소수점 숫자를 생성해야하는데, 정수 간격은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">range()</code>를 이용해서 바로 생성이 가능하지만, 부동소수점을 만들어주는 내장 함수가 없으므로 직접 생성해야 합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [20]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">math</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">frange</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">start</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">end</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">step</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;">#부동소수점 배열 생성</span>
<span class="n" style="margin: 0px; padding: 0px;">numbers</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="n" style="margin: 0px; padding: 0px;">start</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="n" style="margin: 0px; padding: 0px;">end</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">start</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">start</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">step</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">numbers</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">draw_graph</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">xlabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x-coordinate'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'y-coordinate'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">title</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Projectile motion of a ball'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">draw_trajectory</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">interval</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">theta</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">radians</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">g</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span>
<span class="n" style="margin: 0px; padding: 0px;">t_flight</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">math</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">g</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;">#체공시간</span>
<span class="n" style="margin: 0px; padding: 0px;">intervals</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">frange</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">t_flight</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">interval</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">intervals</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">cos</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">g</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_graph</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">try</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter the initial velocity(m/s): '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">theta</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter the angle of projection (degrees): '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">interval</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter the time intervals to draw points (s): '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">except</span> <span class="ne" style="color: #d2413a; font-weight: bold; margin: 0px; padding: 0px;">ValueError</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'You Entered an invalid input'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_trajectory</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">interval</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter the initial velocity(m/s): 10
Enter the angle of projection (degrees): 45
Enter the time intervals to draw points (s): 0.001
</pre>
</div>
</div>
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
만약 서로 다른 속도로 던진 공들에 대한 궤적을 비교하고 싶으면 어떻게 해야 할까요 ?</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [21]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">u_list</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">40</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">60</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">theta</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">45</span>
<span class="n" style="margin: 0px; padding: 0px;">interval</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.01</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">u_list</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_trajectory</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">interval</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">legend</span><span class="p" style="margin: 0px; padding: 0px;">([</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'20'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'40'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'60'</span><span class="p" style="margin: 0px; padding: 0px;">])</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 0.636em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
프로그래밍 연습<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%97%B0%EC%8A%B5" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 낮 동안 온도는 어떻게 변화하는가 ?<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#1.-%EB%82%AE-%EB%8F%99%EC%95%88-%EC%98%A8%EB%8F%84%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%B3%80%ED%99%94%ED%95%98%EB%8A%94%EA%B0%80-?" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
다른 2개의 도시에 대해서 낮 온도의변화를 표시한 그래프를 작성하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [22]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span>
<span class="n" style="margin: 0px; padding: 0px;">seoul_temp</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">24</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">23</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">21</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">23</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">25</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">27</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">27</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">25</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">taegu_temp</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">23</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">22</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">22</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">25</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">27</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">28</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">28</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">26</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">hours</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">24</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">hours</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">seoul_temp</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">hours</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">taegu_temp</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">marker</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'o'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">legend</span><span class="p" style="margin: 0px; padding: 0px;">([</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Seoul'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Taegu'</span><span class="p" style="margin: 0px; padding: 0px;">],</span> <span class="n" style="margin: 0px; padding: 0px;">loc</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">xlabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Hours'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Temperature'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">axis</span><span class="p" style="margin: 0px; padding: 0px;">([</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">24</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">30</span><span class="p" style="margin: 0px; padding: 0px;">])</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0A+K6JLnIuzIFIz4ZIyLkwB9dEV0DHOJHIyEj++c9/snfvXrKzs1mwYAGvv/46YC1+npyczODBg/nl%0Al1946623uPfee/nhhx8AGDx4MK1bt2b37t28+uqrvPnmm8cscajLHSqlTqa+0wH4i7vADS0qbIyE%0AjP9kkDEuw7dB/gNUnIGJhPyCfD9ECF26dCm7Hx8fz6BBg/jss8+4//77+eCDD+jUqRN33nknAJ07%0Ad6Zv37689957DBs2jPnz55OXl0dkZCSdOnUiJSWF9evX+yUupVR4CJmEHxsdC0UcPToHKIKUC1KY%0AmTbTpzH6/9yfjKKM48aIiY7xS4ybN29m5MiRrFmzhkOHDlFSUkK3bt0AyMvL47PPPqN58+aANSVU%0AUlJCixYtyla38q5+BdCuXTtN+EqpagmZKZ30EekkrE+wkj5AESSsTyB9RHpAxziRwYMH07lzZ3Jz%0Ac9m3bx8ul6tsnr9du3b06tXrmOUPCwoKeO6552jTpk3Z2rdeO3bsKLsfFRVFSUkJR44cKdumSyAq%0ApSoKmYQf3z6ezJcySdmfQo/cHqTsTyHzpcxqVdj4Y4wTOXDgAE2bNqVhw4Zs2rSJKVOmlH3t5ptv%0AZu3atcydO5fi4mKKiopYtWoV33//PQ0aNKBv376kpaVx+PBhNm7ceMwJ2ZiYGFq1akVGRgalpaVM%0AnjxZFz9XSh2vsmWwguVGHVzi0Cs+Pl6WLFlyzLalS5dKhw4dpEmTJtKjRw954oknJCkpqezr33zz%0AjfTu3VtatmwprVq1kqSkJPnmm29ERGTnzp3Sq1cviY6Olq5du8qjjz4qffr0KXvt/PnzJS4uTpo3%0Aby6jR4+Wrl27SkZGRpXx1YV9qJSqGZxY4tAY0xZ4C2gNlAJTRORFY8yFwCvAqcAR4E8i8lUlr5fK%0A4tMacnjkkUc4fPgwL7/8co1er/tQqdDlVB1+MTBCRM4HugJ/MsZ0BP4OpInIxUAa8IzNcdR5mzZt%0A4ptvvgGsev633nqLfv36ORyVUpbcbbn0H9afHqk96D+sf42uXQmEuhKnXWyt0hGRncBOz/0Dxpgt%0AQAzW0X5Tz9OaATrhfBL79u1jwIAB7Nq1izZt2vDkk0+WXXillJO8FyzmXJhjlUYXwcqHV/r1/Jc/%0A1JU47RSw1grGmPZAFvB7oC2wGDCe25UisqOS1+iUjk10Hyp/6T+sPxlNji9nvubHaxg9ZrRjcVU0%0A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%0Agg==%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 이차방정식을 그림으로 탐색해보기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#2.-%EC%9D%B4%EC%B0%A8%EB%B0%A9%EC%A0%95%EC%8B%9D%EC%9D%84-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%ED%83%90%EC%83%89%ED%95%B4%EB%B3%B4%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<blockquote style="border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 5px; margin: 1em 2em; padding: 0px 0px 0px 15px;">
<div style="font-size: 16.25px; line-height: 1.25; padding: 0px; text-align: justify;">
y = x<em style="margin: 0px; padding: 0px;">*2 + 2</em>x + 1</div>
</blockquote>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
위 방적식에서 x에 10개의 값을 대입하여 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">(x,y)</code>를 화면에 출력하세요. 그 과정에서 해 (<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">y = 0 이되는 값</code>)를 찾고 그래프의 변동 패턴이 선형인지 비선형인지를 분석하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [23]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">list</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">list</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">map</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">lambda</span> <span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="p" style="margin: 0px; padding: 0px;">:</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">marker</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'o'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">[16, 9, 4, 1, 0, 1, 4, 9, 16, 25, 36]
</pre>
</div>
</div>
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 투척 궤적 비교 프로그램 개선<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#3.-%ED%88%AC%EC%B2%99-%EA%B6%A4%EC%A0%81-%EB%B9%84%EA%B5%90-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EA%B0%9C%EC%84%A0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3.1 속도, 투척각도를 입력받아서 체공시간, 최대 수평이동거리, 최대 수직이동거리를 계산하여 출력<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#3.1-%EC%86%8D%EB%8F%84,-%ED%88%AC%EC%B2%99%EA%B0%81%EB%8F%84%EB%A5%BC-%EC%9E%85%EB%A0%A5%EB%B0%9B%EC%95%84%EC%84%9C-%EC%B2%B4%EA%B3%B5%EC%8B%9C%EA%B0%84,-%EC%B5%9C%EB%8C%80-%EC%88%98%ED%8F%89%EC%9D%B4%EB%8F%99%EA%B1%B0%EB%A6%AC,-%EC%B5%9C%EB%8C%80-%EC%88%98%EC%A7%81%EC%9D%B4%EB%8F%99%EA%B1%B0%EB%A6%AC%EB%A5%BC-%EA%B3%84%EC%82%B0%ED%95%98%EC%97%AC-%EC%B6%9C%EB%A0%A5" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">math</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">cos</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radians</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">GetParabolicMovement</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">g</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span>
<span class="n" style="margin: 0px; padding: 0px;">theta</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">radians</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">durationOfFlight</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span>
<span class="n" style="margin: 0px; padding: 0px;">horizontalDistance</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">cos</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">durationOfFlight</span>
<span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">durationOfFlight</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
<span class="n" style="margin: 0px; padding: 0px;">verticalDistance</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">g</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">t</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">durationOfFlight</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">horizontalDistance</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">verticalDistance</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Input u :'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">theta</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Input theta :'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">h</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">v</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">GetParabolicMovement</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Duration Of Flight : '</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'s'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'The Maximum horizontal distance traveled : '</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">h</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'m'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'The Maximum vertical distance traveled : '</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">v</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'m'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Input u :70
Input theta :37.5
Duration Of Flight : 70.0 s
The Maximum horizontal distance traveled : 482.9629131445341 m
The Maximum vertical distance traveled : 92.64761936218493 m
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3.2 여러개의 속도, 투척각도를 입력받아서 그래프로 출력하세요.<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#3.2-%EC%97%AC%EB%9F%AC%EA%B0%9C%EC%9D%98-%EC%86%8D%EB%8F%84,-%ED%88%AC%EC%B2%99%EA%B0%81%EB%8F%84%EB%A5%BC-%EC%9E%85%EB%A0%A5%EB%B0%9B%EC%95%84%EC%84%9C-%EA%B7%B8%EB%9E%98%ED%94%84%EB%A1%9C-%EC%B6%9C%EB%A0%A5%ED%95%98%EC%84%B8%EC%9A%94." style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [24]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="n" style="margin: 0px; padding: 0px;">plt</span>
<span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">math</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">cos</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">radians</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">frange</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">start</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">end</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">step</span><span class="p" style="margin: 0px; padding: 0px;">):</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;">#부동소수점 배열 생성</span>
<span class="n" style="margin: 0px; padding: 0px;">numbers</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="n" style="margin: 0px; padding: 0px;">start</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="n" style="margin: 0px; padding: 0px;">end</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">numbers</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">start</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">start</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+=</span> <span class="n" style="margin: 0px; padding: 0px;">step</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">numbers</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">draw_graph</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">xlabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'x-coordinate'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'y-coordinate'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">title</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Projectile motion of a ball'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">draw_trajectory</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">interval</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">theta</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">radians</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">g</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">9.8</span>
<span class="n" style="margin: 0px; padding: 0px;">t_flight</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">g</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;">#체공시간</span>
<span class="n" style="margin: 0px; padding: 0px;">intervals</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">frange</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">t_flight</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">interval</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="n" style="margin: 0px; padding: 0px;">y</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">intervals</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">x</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">cos</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">y</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">u</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">sin</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">theta</span><span class="p" style="margin: 0px; padding: 0px;">)</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">g</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span><span class="n" style="margin: 0px; padding: 0px;">t</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_graph</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">x</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">y</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">interval</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.01</span>
<span class="n" style="margin: 0px; padding: 0px;">num</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'How many trajectories ? '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">u</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="n" style="margin: 0px; padding: 0px;">theta</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">num</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">ue</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter the initial velocity for trajectory '</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">str</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'(m/s) :'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">te</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter the angle of projection for trajectory '</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">str</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'(degrees) :'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_trajectory</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">ue</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">te</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">interval</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">legend</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">list</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">num</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)))</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">How many trajectories ? 4
Enter the initial velocity for trajectory 1(m/s) :6
Enter the angle of projection for trajectory 1(degrees) :20
Enter the initial velocity for trajectory 2(m/s) :10
Enter the angle of projection for trajectory 2(degrees) :45
Enter the initial velocity for trajectory 3(m/s) :8
Enter the angle of projection for trajectory 3(degrees) :60
Enter the initial velocity for trajectory 4(m/s) :15
Enter the angle of projection for trajectory 4(degrees) :15
</pre>
</div>
</div>
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0ARU5ErkJggg==%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
수평막대 차트 예제<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#%EC%88%98%ED%8F%89%EB%A7%89%EB%8C%80-%EC%B0%A8%ED%8A%B8-%EC%98%88%EC%A0%9C" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [25]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib.pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">plt</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">create_bar_chart</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">labels</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">num_bars</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">positions</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">num_bars</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">barh</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">positions</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">data</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">align</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'center'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">yticks</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">positions</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">labels</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">xlabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Steps'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Day'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">title</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Number of steps walked'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">grid</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">steps</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">6534</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">7000</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">8900</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10786</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3467</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">11045</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5059</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">labels</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Sun'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Mon'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Tue'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Wed'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Thu'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Fri'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Sat'</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">create_bar_chart</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">steps</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">labels</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
4. 비용 가시화<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#4.-%EB%B9%84%EC%9A%A9-%EA%B0%80%EC%8B%9C%ED%99%94" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
각 항목별 사용금액을 입력받아서 막대차트로 표시하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [26]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib.pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">plt</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">create_bar_chart</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">amounts</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">labels</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">num_bars</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">amounts</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">positions</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">num_bars</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">barh</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">positions</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">amounts</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">align</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'center'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">yticks</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">positions</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">labels</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">xlabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Amount'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Categories'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">title</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Weekly expenditures'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">grid</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">num</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter the number of categories : '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">amounts</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="n" style="margin: 0px; padding: 0px;">labels</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">num</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">labels</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter category : '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">amounts</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Expenditure : '</span><span class="p" style="margin: 0px; padding: 0px;">)))</span>
<span class="n" style="margin: 0px; padding: 0px;">create_bar_chart</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">amounts</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">labels</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter the number of categories : 4
Enter category : Food
Expenditure : 70
Enter category : Transportation
Expenditure : 35
Enter category : Entertainment
Expenditure : 30
Enter category : Phone
Expenditure : 40
</pre>
</div>
</div>
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_png output_subarea " style="-webkit-box-flex: 1; flex: 1 1 0%; margin: 0px; padding: 0.4em 0.4em 0px;">
<img src="data:image/png;base64,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%0A4+JnZmat8///BhaYz16ONwAAAABJRU5ErkJggg==%0A" style="border: 0px; height: auto; margin: 0px; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
5. 피보나치 순열과 황금비 간의 관계 탐색<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830322e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch02.ipynb&repository_id=44855550#5.-%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98-%EC%88%9C%EC%97%B4%EA%B3%BC-%ED%99%A9%EA%B8%88%EB%B9%84-%EA%B0%84%EC%9D%98-%EA%B4%80%EA%B3%84-%ED%83%90%EC%83%89" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
피보나치 순열은 수치적으로 황금비(1.61803398...)을 가진 숫자의 집합입니다. 100개의 피보나치 숫자 간의 비를 그래프상에 그리세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">matplotlib.pyplot</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">as</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">plt</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">FibonacciSeries</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">series</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="n" style="margin: 0px; padding: 0px;">current</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;"><</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">series</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">series</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">>=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">series</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">n</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">></span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">n</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">current</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">series</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">]</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">series</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">series</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">current</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">series</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">ratioOfFront</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">series</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">ratio</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">len</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">series</span><span class="p" style="margin: 0px; padding: 0px;">)):</span>
<span class="n" style="margin: 0px; padding: 0px;">ratio</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">series</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">]</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">series</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">])</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">ratio</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">draw_graph</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">series</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">plot</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">series</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">ylabel</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Ratio'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">title</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Ratio between consecutive Fibonacci numbers'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">plt</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">show</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">draw_graph</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">ratioOfFront</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">FibonacciSeries</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100</span><span class="p" style="margin: 0px; padding: 0px;">)))</span>
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<img alt="그림 문제 5" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/DoingMathWithPython.Ch02.19.png" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-37528846882156702012016-07-10T14:34:00.002+09:002016-08-01T08:10:16.618+09:00Doing Math with Python. Chapter 01. 숫자, 연산이 포스팅은 <b><span style="color: blue;">Jupiter Notebook</span></b>로 작성되었습니다.<br />
<br />
그러니 직접 <span style="color: blue;"><b>Python</b></span> 코드를 실행시키고 싶으신 분은 아래 Link에서 다운로드 받으셔서 실행할 수 있습니다.<br />
<br />
<a href="https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython">https://github.com/DevStarSJ/Study/tree/master/Blog/Python/DoingMathWithPython</a><br />
<br />
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; background-color: white; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<h1 style="color: inherit; font-family: inherit; font-size: 25.998px; font-weight: bold; line-height: 1; margin: 0.538em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
파이썬으로 풀어보는 수학<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%ED%92%80%EC%96%B4%EB%B3%B4%EB%8A%94-%EC%88%98%ED%95%99" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h1>
<h1 id="파이썬으로-풀어보는-수학" style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; font-weight: 700; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">원서명 : Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (ISBN 9781593276409)</li>
<li style="margin: 0px; padding: 0px;">지은이 : 아미트 사하(Amit Saha)</li>
<li style="margin: 0px; padding: 0px;">원서 및 관련자료 : <a href="https://www.nostarch.com/doingmathwithpython" style="color: #0088cc; margin: 0px; padding: 0px;">https://www.nostarch.com/doingmathwithpython</a></li>
<li style="margin: 0px; padding: 0px;">번역서 : <a href="http://www.acornpub.co.kr/book/doing-math-with-python" style="color: #0088cc; margin: 0px; padding: 0px;">http://www.acornpub.co.kr/book/doing-math-with-python</a></li>
</ul>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<img alt="책표지" src="https://github.com/DevStarSJ/Study/raw/1cf80b6918099f18a9357a2c937e1cd2dc442788/Blog/Python/DoingMathWithPython/image/cover.jpg" style="border: 0px; display: block; height: auto; margin: 0px auto; max-width: 100%; padding: 0px; vertical-align: middle;" /></div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 0.636em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1장 숫자, 연산<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#1%EC%9E%A5-%EC%88%AB%EC%9E%90,-%EC%97%B0%EC%82%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 사칙연산<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#1.-%EC%82%AC%EC%B9%99%EC%97%B0%EC%82%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1.1 기본연산 (더하기, 빼기, 곱하기)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#1.1-%EA%B8%B0%EB%B3%B8%EC%97%B0%EC%82%B0-(%EB%8D%94%ED%95%98%EA%B8%B0,-%EB%B9%BC%EA%B8%B0,-%EA%B3%B1%ED%95%98%EA%B8%B0)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[1]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">3.5</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[2]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">2.5</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">100</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">45</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[3]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">55</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [4]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[4]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">6</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">3.5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.5</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[5]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">5.25</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1.5</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [7]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[7]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">2.0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1.2 나누기 ( 나누기, 나머지), 지수<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#1.2-%EB%82%98%EB%88%84%EA%B8%B0-(-%EB%82%98%EB%88%84%EA%B8%B0,-%EB%82%98%EB%A8%B8%EC%A7%80),-%EC%A7%80%EC%88%98" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[1]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1.5</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[2]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">2.0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">//</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># 버림 나눗셈 : 소숫점 아래를 내림</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[3]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [4]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">//</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># 음수인 경우 원래 답보다 작거나 같은 값이므로 -1.5 -> -2.0이 됨</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[4]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">-2</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">%</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># 나머지</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[5]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># 2의 2승</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">4</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [7]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">10</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[7]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1024</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [8]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># 2의 1/2 승이니 Root 2와 같음</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[8]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">1.4142135623730951</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [9]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">8</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="c" style="color: #408080; font-style: italic; margin: 0px; padding: 0px;"># 8의 세재곱근</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[9]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">2.0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 분수 (Fraction)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#2.-%EB%B6%84%EC%88%98-(Fraction)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
사용하기 위해서는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">fractions</code> 모듈에서 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">Fraction</code> class를 임포트해야 합니다.</div>
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
Fraction(분자 , 분모)의 형태로 입력합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [3]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">fractions</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Fraction</span>
<span class="n" style="margin: 0px; padding: 0px;">f</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Fraction</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">f</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[3]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Fraction(3, 4)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [5]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">Fraction</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.5</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[5]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3.25</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 복소수 (Complex numbers)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#3.-%EB%B3%B5%EC%86%8C%EC%88%98-(Complex-numbers)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
문자 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">j</code> 또는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">J</code>를 이용해서 허수부를 입력할 수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [6]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">c</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="n" style="margin: 0px; padding: 0px;">j</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">type</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">c</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[6]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">complex</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
complex 객체를 이용해서도 가능합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">c</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">complex</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">c</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[2]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(2+3j)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">complex</code> 의 사칙연산입니다. ( 나머지 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">%</code> 와 버림 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">//</code>은 제공하지 않습니다. )</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [16]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">3</span><span class="n" style="margin: 0px; padding: 0px;">j</span>
<span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">c</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[16]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(5+6j)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [9]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">c</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[9]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(1+0j)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [10]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">c</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[10]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(-3+15j)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
복소수의 곱셈<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#%EB%B3%B5%EC%86%8C%EC%88%98%EC%9D%98-%EA%B3%B1%EC%85%88" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">(a + bj) * (c + dj)
= ac + adj + bcj - bd
= (ac - bd) + (bc + ad)j</code></pre>
<blockquote style="border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 5px; margin: 1em 2em; padding: 0px 0px 0px 15px;">
<div style="font-size: 16.25px; line-height: 1.25; padding: 0px; text-align: justify;">
(2 + 3j) * (3 + 3j) = (6 - 9) + (6 + 9)j = -3 + 15j</div>
</blockquote>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [17]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">c</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[17]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(1.153846153846154-0.23076923076923078j)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
복소수의 나눗셈<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#%EB%B3%B5%EC%86%8C%EC%88%98%EC%9D%98-%EB%82%98%EB%88%97%EC%85%88" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">(a + bj) / (c + dj)
= ((a +bj) * (c - dj)) / ((c + dj) * ( c - dj))
= ((ac + bd) + (bc - ad)j) / (c ** 2 + d ** 2) + (cd - cd)j
= ((ac + bd) + (bc - ad)j) / ( c ** 2 + d ** 2)</code></pre>
<blockquote style="border-left-color: rgb(238, 238, 238); border-left-style: solid; border-left-width: 5px; margin: 1em 2em; padding: 0px 0px 0px 15px;">
<div style="font-size: 16.25px; line-height: 1.25; padding: 0px; text-align: justify;">
(3 +3j) / (2 + 3j) = (6 + 9) / (4 + 9) + ( (6 - 9) / (4 + 9) ) j = 15/13 - 3/13j</div>
</blockquote>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
컬레복소수(conjugate)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#%EC%BB%AC%EB%A0%88%EB%B3%B5%EC%86%8C%EC%88%98(conjugate)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
같은 실수부에 허수부의 부호가 반대인 경우를 말합니다. 바로 앞에서 본 것처럼 나누기 할때 분모의 컬레복소수를 분모 분자에 모두 곱해서 계산을 했습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [28]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">c</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">conjugate</span><span class="p" style="margin: 0px; padding: 0px;">()</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[28]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">(2-3j)</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
복소수의 값(magnitude)<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#%EB%B3%B5%EC%86%8C%EC%88%98%EC%9D%98-%EA%B0%92(magnitude)" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
절대치(<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">abs() 함수</code>)를 이용해서 구할수 있습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [29]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="nb" style="color: green; margin: 0px; padding: 0px;">abs</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">c</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[29]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3.605551275463989</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
계산 공식은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">(실수부의 제곱 + 허수부의 제곱)의 제곱근(루트)</code> 입니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [30]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">c</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">real</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">c</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">imag</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[30]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">3.605551275463989</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
4. 정수 팩터 계산<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#4.-%EC%A0%95%EC%88%98-%ED%8C%A9%ED%84%B0-%EA%B3%84%EC%82%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
0이 아닌 정수 a를 다른 정수 b로 나누었을 때 나머지가 0인 경우 a는 b의 팩터(Factor)라 합니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [10]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">is_factor</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">%</span> <span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Input a : '</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">a</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_integer</span><span class="p" style="margin: 0px; padding: 0px;">()</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">and</span> <span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">></span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">break</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Please enter a positive integer for a'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Input b : '</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_integer</span><span class="p" style="margin: 0px; padding: 0px;">()</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">and</span> <span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">></span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">break</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Please enter a positive integer for b'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">is_factor</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Input a : 8
Input b : 2
True
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
특정 정수에 대한 모든 팩터를 구하기 위해서는 어떻게 해야 할까요 ? 그 수보다 작은 모든 양의 정수에 대해서 검사를 하면 됩니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [8]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">is_factor</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">%</span> <span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">factors</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">value</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">result</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">value</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">is_factor</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">value</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">result</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">append</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">result</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">while</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'input a : '</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">a</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_integer</span><span class="p" style="margin: 0px; padding: 0px;">()</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">and</span> <span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">></span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">break</span><span class="p" style="margin: 0px; padding: 0px;">;</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Please enter a positive integer for a'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">factors</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">input a : 16
[1, 2, 4, 8, 16]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
5. 측정 단위 변환<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#5.-%EC%B8%A1%EC%A0%95-%EB%8B%A8%EC%9C%84-%EB%B3%80%ED%99%98" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 2em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
센티미터 to 인치<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#%EC%84%BC%ED%8B%B0%EB%AF%B8%ED%84%B0-to-%EC%9D%B8%EC%B9%98" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
1인치는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">2.54</code>센티미터입니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [9]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mf" style="color: #666666; margin: 0px; padding: 0px;">37.5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">2.54</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[9]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">95.25</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
마일 to 킬로미터<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#%EB%A7%88%EC%9D%BC-to-%ED%82%AC%EB%A1%9C%EB%AF%B8%ED%84%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
1마일은 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">1.609</code>킬로미터와 같습니다.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [10]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">320</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.609</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[10]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">514.88</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h4 style="color: inherit; font-family: inherit; line-height: 1; margin: 1em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
화씨 to 섭씨<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#%ED%99%94%EC%94%A8-to-%EC%84%AD%EC%94%A8" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h4>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">C = (F - 32) * 5 / 9</code></pre>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [12]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">F</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">98.6</span>
<span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">F</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">32</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[12]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">37.0</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="padding: 0px; text-align: justify;">
반대로는 위 수식의 역수를 취하면 됩니다.</div>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">F = C * 9 / 5 + 32</code></pre>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [13]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="n" style="margin: 0px; padding: 0px;">C</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">37</span>
<span class="n" style="margin: 0px; padding: 0px;">C</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">32</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt output_prompt" style="color: darkred; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
Out[13]:</div>
<div class="output_text output_subarea output_execute_result" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">98.6</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
6. 이차방정식 근 구하기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#6.-%EC%9D%B4%EC%B0%A8%EB%B0%A9%EC%A0%95%EC%8B%9D-%EA%B7%BC-%EA%B5%AC%ED%95%98%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
<code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">ax ** 2 + bx + c</code>라는 식에 대한 x의 근은 다음과 같이 2개가 존재합니다.</div>
<pre style="border-radius: 4px; border: 0px; line-height: inherit; margin: 1em 2em; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><code style="border-radius: 3px; border: 0px; display: block; margin: 0px; padding: 0px;">x = (- b (+,-) (b ** 2 - 4ac) ** 0.5) / 2a</code></pre>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [11]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">roots</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">c</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="n" style="margin: 0px; padding: 0px;">D</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">(</span> <span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">4</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">c</span> <span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">**</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">0.5</span>
<span class="n" style="margin: 0px; padding: 0px;">result</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">D</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">D</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">result</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter a :'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter b :'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">c</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter c :'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">rootList</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">roots</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">c</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="n" style="margin: 0px; padding: 0px;">rootList</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'{0:.2f}'</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">format</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter a :1
Enter b :2
Enter c :1
-1.00
-1.00
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h2 style="color: inherit; font-family: inherit; font-size: 21.994px; line-height: 1; margin: 0.636em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
프로그래밍 연습<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%97%B0%EC%8A%B5" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h2>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 1.55em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
1. 짝수,홀수 자판기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#1.-%EC%A7%9D%EC%88%98,%ED%99%80%EC%88%98-%EC%9E%90%ED%8C%90%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">입력한 숫자가 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">짝수</code>인지 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">홀수</code>인지 출력합니다.</li>
<li style="margin: 0px; padding: 0px;">입력한 숫자 다음으로 오는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">짝수</code> 또는 <code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">홀수</code>를 같이 출력합니다.</li>
<li style="margin: 0px; padding: 0px;"><code style="border-radius: 3px; border: 0px; margin: 0px; padding: 0px; white-space: pre-wrap;">is_integer()</code>를 이용하여 유효하지 않은 입력에 대해서는 오류 메세지를 출력하세요.</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [13]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">is_odd</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">val</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">val</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">%</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">False</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">True</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">try</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">inputNum</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter number: '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">except</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'You must input number'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">inputNum</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">is_integer</span><span class="p" style="margin: 0px; padding: 0px;">():</span>
<span class="n" style="margin: 0px; padding: 0px;">val</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">inputNum</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">val</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'is'</span><span class="p" style="margin: 0px; padding: 0px;">,</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'odd'</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">is_odd</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">val</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'even'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">':'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">seq</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">list</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">val</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">val</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">20</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">2</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">seq</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'You input invalid number'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter number: 2
2 is even :
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
2. 개선된 곱 테이블<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#2.-%EA%B0%9C%EC%84%A0%EB%90%9C-%EA%B3%B1-%ED%85%8C%EC%9D%B4%EB%B8%94" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
X 단을 Y 개까지 출력하는 방식으로 구현하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [14]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">try</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">val</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter start number :'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">num</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter number of step :'</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">except</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Invalid number entered'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">for</span> <span class="n" style="margin: 0px; padding: 0px;">i</span> <span class="ow" style="color: #aa22ff; font-weight: bold; margin: 0px; padding: 0px;">in</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">range</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">num</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">val</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'*'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'='</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">val</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">i</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter start number :9
Enter number of step :15
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
9 * 10 = 90
9 * 11 = 99
9 * 12 = 108
9 * 13 = 117
9 * 14 = 126
9 * 15 = 135
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
3. 개선된 단위 변환<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#3.-%EA%B0%9C%EC%84%A0%EB%90%9C-%EB%8B%A8%EC%9C%84-%EB%B3%80%ED%99%98" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
아래 변환이 모두 가능한 프로그램을 작성하세요.</div>
<ul style="margin: 1em 2em 0px; padding: 0px;">
<li style="margin: 0px; padding: 0px;">거리(킬로미터 <-> 마일)</li>
<li style="margin: 0px; padding: 0px;">무게(킬로그램 <-> 파운드)</li>
<li style="margin: 0px; padding: 0px;">온도(섭씨 <-> 화시)</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [1]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">KilloMeterToMile</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">km</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">km</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.609</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">MileToKilloMeter</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">mile</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">mile</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">1.609</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">KilloGramToPound</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">kg</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">kg</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">2.20462</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">PoundToKilloGram</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">pound</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">pound</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mf" style="color: #666666; margin: 0px; padding: 0px;">2.20462</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">CelsiusToFahrenheit</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">c</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="n" style="margin: 0px; padding: 0px;">c</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">32</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">def</span> <span class="nf" style="color: blue; margin: 0px; padding: 0px;">FahrenheitToCelsius</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">f</span><span class="p" style="margin: 0px; padding: 0px;">):</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">return</span> <span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">f</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">32</span><span class="p" style="margin: 0px; padding: 0px;">)</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">5</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="mi" style="color: #666666; margin: 0px; padding: 0px;">9</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">__name__</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'__main__'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">try</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="n" style="margin: 0px; padding: 0px;">order</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">int</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter command (1.KilloMeterToMile, 2.MileToKilloMeter, 3.KilloGramToPound, 4.PoundToKilloGram, 5.CelsiusToFahrenheit, 6.FahrenheitToCelsius) : '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">val</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">float</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter value : '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">except</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Invalid command'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">task</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">KilloMeterToMile</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">MileToKilloMeter</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">KilloGramToPound</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">PoundToKilloGram</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">CelsiusToFahrenheit</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">FahrenheitToCelsius</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="n" style="margin: 0px; padding: 0px;">result</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">task</span><span class="p" style="margin: 0px; padding: 0px;">[</span><span class="n" style="margin: 0px; padding: 0px;">order</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">1</span><span class="p" style="margin: 0px; padding: 0px;">](</span><span class="n" style="margin: 0px; padding: 0px;">val</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Result : '</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">result</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter command (1.KilloMeterToMile, 2.MileToKilloMeter, 3.KilloGramToPound, 4.PoundToKilloGram, 5.CelsiusToFahrenheit, 6.FahrenheitToCelsius) : 5
Enter value : 36.5
Result : 97.7
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
</div>
</div>
</h1>
<h3 style="color: inherit; font-family: inherit; font-size: 18.004px; line-height: 1; margin: 0.777em 0px 0px; padding: 0px; text-rendering: optimizeLegibility;">
4. 분수계산기<a class="anchor-link" href="https://render.githubusercontent.com/view/ipynb?commit=1cf80b6918099f18a9357a2c937e1cd2dc442788&enc_url=68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f44657653746172534a2f53747564792f316366383062363931383039396631386139333537613263393337653163643264633434323738382f426c6f672f507974686f6e2f446f696e674d61746857697468507974686f6e2f446f696e674d61746857697468507974686f6e2e436830312e6970796e62&nwo=DevStarSJ%2FStudy&path=Blog%2FPython%2FDoingMathWithPython%2FDoingMathWithPython.Ch01.ipynb&repository_id=44855550#4.-%EB%B6%84%EC%88%98%EA%B3%84%EC%82%B0%EA%B8%B0" style="color: #0088cc; margin: 0px; padding: 0px 20px; text-decoration: none; visibility: hidden;"></a></h3>
<h1 style="box-sizing: border-box; color: inherit; font-family: inherit; font-size: 25.998px; line-height: 1; margin: 0.538em 0px 0px;">
<div class="cell border-box-sizing text_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: row; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 0px; width: 928px;">
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="text_cell_render border-box-sizing rendered_html" style="border-style: none; box-sizing: border-box; margin: 0px; outline: none; padding: 0.5em 0.5em 0.5em 0.4em; resize: none; width: inherit;">
<div style="margin-top: 1em; padding: 0px; text-align: justify;">
2개의 분수를 입력받아서, 4칙연산을 수행하는 프로그램을 작성하세요.</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; border: 1px solid transparent; box-sizing: border-box; display: flex; flex-direction: column; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 20px; margin: 0px; outline: none; padding: 5px 5px 5px 0px; width: 928px;">
<div class="input" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt input_prompt" style="border-top-color: transparent; border-top-style: solid; border-top-width: 1px; color: navy; font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0.4em; text-align: right;">
In [2]:</div>
<div class="inner_cell" style="-webkit-box-align: stretch; -webkit-box-flex: 1; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; flex: 1 1 0%; margin: 0px; padding: 0px;">
<div class="input_area" style="background: rgb(247, 247, 247); border-radius: 4px; border: 1px solid rgb(207, 207, 207); line-height: 1.21429em; margin: 0px; padding: 0px;">
<div class=" highlight hl-ipython3" style="background: transparent; border: none; margin: 0.4em; padding: 0px;">
<pre style="background-color: transparent; border-radius: 4px; border: none; color: #333333; font-size: inherit; line-height: inherit; padding: 0px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span class="kn" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">from</span> <span class="nn" style="color: blue; font-weight: bold; margin: 0px; padding: 0px;">fractions</span> <span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">import</span> <span class="n" style="margin: 0px; padding: 0px;">Fraction</span>
<span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Fraction</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter first fraction : '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">b</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">Fraction</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Enter second fraction : '</span><span class="p" style="margin: 0px; padding: 0px;">))</span>
<span class="n" style="margin: 0px; padding: 0px;">op</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="nb" style="color: green; margin: 0px; padding: 0px;">input</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Operation to perform - [A]dd, [S]ubtract, [D]ivide, [M]ultiply : '</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="n" style="margin: 0px; padding: 0px;">cmd</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">=</span> <span class="n" style="margin: 0px; padding: 0px;">op</span><span class="o" style="color: #666666; margin: 0px; padding: 0px;">.</span><span class="n" style="margin: 0px; padding: 0px;">lower</span><span class="p" style="margin: 0px; padding: 0px;">()[</span><span class="mi" style="color: #666666; margin: 0px; padding: 0px;">0</span><span class="p" style="margin: 0px; padding: 0px;">]</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">if</span> <span class="n" style="margin: 0px; padding: 0px;">cmd</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'a'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'+'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'='</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">+</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">elif</span> <span class="n" style="margin: 0px; padding: 0px;">cmd</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'s'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'-'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'='</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">-</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">elif</span> <span class="n" style="margin: 0px; padding: 0px;">cmd</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'d'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'/'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'='</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">/</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">elif</span> <span class="n" style="margin: 0px; padding: 0px;">cmd</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">==</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'m'</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="n" style="margin: 0px; padding: 0px;">a</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'*'</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'='</span><span class="p" style="margin: 0px; padding: 0px;">,</span> <span class="n" style="margin: 0px; padding: 0px;">a</span> <span class="o" style="color: #666666; margin: 0px; padding: 0px;">*</span> <span class="n" style="margin: 0px; padding: 0px;">b</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
<span class="k" style="color: green; font-weight: bold; margin: 0px; padding: 0px;">else</span><span class="p" style="margin: 0px; padding: 0px;">:</span>
<span class="nb" style="color: green; margin: 0px; padding: 0px;">print</span><span class="p" style="margin: 0px; padding: 0px;">(</span><span class="s" style="color: #ba2121; margin: 0px; padding: 0px;">'Invalid Operation'</span><span class="p" style="margin: 0px; padding: 0px;">)</span>
</pre>
</div>
</div>
</div>
</div>
<div class="output_wrapper" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px; position: relative;">
<div class="output" style="-webkit-box-align: stretch; -webkit-box-orient: vertical; align-items: stretch; display: flex; flex-direction: column; margin: 0px; padding: 0px;">
<div class="output_area" style="-webkit-box-align: stretch; -webkit-box-orient: horizontal; align-items: stretch; break-inside: avoid; display: flex; flex-direction: row; margin: 0px; padding: 0px;">
<div class="prompt" style="font-family: monospace; line-height: 1.21429em; margin: 0px; min-width: 11ex; padding: 0px 0.4em; text-align: right;">
</div>
<div class="output_subarea output_stream output_stdout output_text" style="-webkit-box-flex: 1; flex: 1 1 0%; line-height: 1.21429em; margin: 0px; padding: 0.4em 0.4em 0px;">
<pre style="background-color: transparent; border-radius: 0px; border: 0px; font-size: inherit; line-height: inherit; padding: 0px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">Enter first fraction : 3/4
Enter second fraction : 2/6
Operation to perform - [A]dd, [S]ubtract, [D]ivide, [M]ultiply : M
3/4 * 1/3 = 1/4</pre>
</div>
</div>
</div>
</div>
</div>
</h1>
</div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-15523610884400231432016-07-05T08:24:00.000+09:002016-07-05T08:24:06.534+09:00Visual Studio와 Git을 이용하여 Ubuntu에 ASP.NET Core Web App 배포하기<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
Visual Studio와 Git을 이용하여 Web App 배포하기</h1>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<span style="box-sizing: border-box; font-weight: bolder;">ASP.NET Core</span> 개발환경으로는 Windows에서 Visual Studio를 사용하는 것이 가장 편합니다. 이번 포스팅에서는 Windows에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ASP.NET Core Web App</code>을 작성하여 Git을 이용하여 <span style="box-sizing: border-box; font-weight: bolder;">Ubuntu</span>에서 실행하는 것을 소개해 드리겠습니다.</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/VS.Git.md#1-github에-repository-생성하기" id="user-content-1-github에-repository-생성하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>1. Github에 Repository 생성하기</h2>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
본인의 GitHub 계정으로 가셔서 아래와 같이 원하는 이름으로 Repository를 생성합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/image/vs.git.01.png" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림" src="https://github.com/DevStarSJ/Study/raw/master/Blog/ASP.NET.Core/image/vs.git.01.png" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/VS.Git.md#2-pc에-github-repository-clone-하기" id="user-content-2-pc에-github-repository-clone-하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>2. PC에 GitHub Repository Clone 하기</h2>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
원하시는 폴더로 가셔서 GitHub Repository에 연결하세요. (아래에서 github 주소란에는 본인의 Repository 주소로 적어주세요.)</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">mkdir WebApp
cd WebApp
git init
git remote add origin https://github.com/DevStarSJ/WebApp.git
git pull origin master
</code></pre>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/VS.Git.md#3-visual-studio로-web-app-예제-만들기" id="user-content-3-visual-studio로-web-app-예제-만들기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>3. Visual Studio로 Web App 예제 만들기</h2>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ASP.NET Core Web Application</code>으로 프로젝트를 생성합니다. 위치를 좀 전에 Git Repository로 지정한 곳으로 해주세요.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/image/vs.git.02.png" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림" src="https://github.com/DevStarSJ/Study/raw/master/Blog/ASP.NET.Core/image/vs.git.02.png" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
다음 그림에서는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Web Application</code>을 선택한 후에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">OK</code>를 눌러주세요.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
제대로 만들어졌는지, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">F5</code>를 눌러서 확인해봅니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/image/vs.git.03.png" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림" src="https://github.com/DevStarSJ/Study/raw/master/Blog/ASP.NET.Core/image/vs.git.03.png" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/VS.Git.md#4-github에-올리기" id="user-content-4-github에-올리기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>4. GitHub에 올리기</h2>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">git add --all
git commit -m "Initial Commit"
git push origin master
</code></pre>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/VS.Git.md#5-ubuntu에서-내려받기" id="user-content-5-ubuntu에서-내려받기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>5. Ubuntu에서 내려받기</h2>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
아직 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">git</code>이 설치되어 있지 않다면 아래와 같이 설치를 해주세요.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">sudo apt-get install git
</code></pre>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
이제 원하는 폴더로 가셔서 GitHub에서 내려받습니다. 위에 Windows에서 한것과 명령어가 같습니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">mkdir WebApp
cd WebApp
git init
git remote add origin https://github.com/DevStarSJ/WebApp.git
git pull origin master
</code></pre>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
이제 WebApp 폴더로 들어가서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">project.json</code>의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">framework</code>부분을 아래와 같이 수정합니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">cd WebApp/src/WebApp
</code></pre>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"> <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>frameworks<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>netcoreapp1.0<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>dependencies<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Microsoft.NETCore.App<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>type<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>platform<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>version<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>1.0.0<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
},
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Microsoft.AspNetCore.Server.Kestrel<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>1.0.0<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
},
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>imports<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>dnxcore50<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
}
},</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
저장한 뒤 이제 실행합니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">dotnet restore
dotnet build
dotnet run
</code></pre>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/image/vs.git.04.png" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림" src="https://github.com/DevStarSJ/Study/raw/master/Blog/ASP.NET.Core/image/vs.git.04.png" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-21130990925916470522016-07-05T07:22:00.001+09:002016-07-05T07:24:23.845+09:00.NET Core Install for Ubuntu 14.04<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
.NET Core Install for Ubuntu 14.04</h1>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.NET Core</code>를 <span style="box-sizing: border-box; font-weight: bolder;">Ubuntu</span>에 설치하는 과정에 대해서 소개해드리겠습니다.</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<span style="box-sizing: border-box; font-weight: bolder;">Ubuntu</span> 설치는 필자의 경우는 <em style="box-sizing: border-box;">Microsoft Azure</em>에 설치하였습니다. (참고로 <span style="box-sizing: border-box; font-weight: bolder;">Azure</span>에 <span style="box-sizing: border-box; font-weight: bolder;">Ubuntu</span>설치시 SSH (22)번 빼고는 모두 막혀있습니다. Portal에서 원하시는 포트를 열어야 합니다.)</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/Install.Net.Core.md#1-net-core-설치-후-hello-world-출력해보기" id="user-content-1-net-core-설치-후-hello-world-출력해보기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>1. <span style="box-sizing: border-box; font-weight: bolder;">.NET Core</span> 설치 후 <em style="box-sizing: border-box;">Hello World</em> 출력해보기</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
먼저 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.Net Core</code>를 컴파일하고 실행할 수 있도록 <span style="box-sizing: border-box; font-weight: bolder;">SDK</span>를 설치하겠습니다.</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
공식문서에 설명이 잘 되어 있습니다. (<a href="https://www.microsoft.com/net/core#ubuntu" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://www.microsoft.com/net/core#ubuntu</a>) 아래 설명대로 해서 잘 안되면 Link의 공식문서에 바뀐 점이 있는지 보시고 따라해주세요.</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
아래 명령어를 하나씩 입력해주세요.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
sudo apt-get update
sudo apt-get install dotnet-dev-1.0.0-preview2-003121
</code></pre>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
이제 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.Net Core SDK</code> 설치가 끝났습니다. 제대로 설치가 되었는지 기본 예제를 실행해 보겠습니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">mkdir hwapp
cd hwapp
dotnet new
dotnet restore
dotnet run
</code></pre>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
아래와 같이 출력이 나오면 제대로 설치가 된 것입니다.</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/image/install.ubuntu.01.png" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림" src="https://github.com/DevStarSJ/Study/raw/master/Blog/ASP.NET.Core/image/install.ubuntu.01.png" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/Install.Net.Core.md#2-aspnet-core-용-실행환경-구성" id="user-content-2-aspnet-core-용-실행환경-구성" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>2. <span style="box-sizing: border-box; font-weight: bolder;">ASP.NET Core</span> 용 실행환경 구성</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
먼저 <span style="box-sizing: border-box; font-weight: bolder;">Web App</span> 생성에 필요한 것들을 설치해야 합니다.</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
자세한 설명은 다음 Link에 되어 있습니다. (<a href="https://docs.asp.net/en/1.0.0-rc1/getting-started/installing-on-linux.html#installing-on-ubuntu-14-04" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://docs.asp.net/en/1.0.0-rc1/getting-started/installing-on-linux.html#installing-on-ubuntu-14-04</a>)</div>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/Install.Net.Core.md#21-net-version-manager-dnvm-설치" id="user-content-21-net-version-manager-dnvm-설치" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>2.1 .NET Version Manager (DNVM) 설치</h3>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
Linux 상에서 여러 버전의 .NET 실행 환경 (.NET Execution Environment) <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">DNX</code>를 관리해주는 도구입니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">sudo apt-get install unzip curl
curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
</code></pre>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/Install.Net.Core.md#22-net-execution-environment-dnx-설치" id="user-content-22-net-execution-environment-dnx-설치" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>2.2 .NET Execution Environment (DNX) 설치</h3>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
Linux 상에서 .NET 프로젝트를 빌드하고 실행해주는 도구입니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">sudo apt-get install libunwind8 gettext libssl-dev libcurl4-openssl-dev zlib1g libicu-dev uuid-dev
dnvm upgrade -r coreclr
</code></pre>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/Install.Net.Core.md#23-libuv-설치" id="user-content-23-libuv-설치" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>2.3 libuv 설치</h3>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">libuv</code>는 멀티플랫폼 비동기 IO 라이브러리 입니다. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Kestrel</code>에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">libuv</code>를 사용합니다. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Kestrel</code>은 ASP.NET Core를 호스팅하기 위한 크로스-플랫폼 HTTP 서버 입니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">sudo apt-get install make automake libtool curl
curl -sSL https://github.com/libuv/libuv/archive/v1.8.0.tar.gz | sudo tar zxfv - -C /usr/local/src
cd /usr/local/src/libuv-1.8.0
sudo sh autogen.sh
sudo ./configure
sudo make
sudo make install
sudo rm -rf /usr/local/src/libuv-1.8.0 && cd ~/
sudo ldconfig
</code></pre>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/Install.Net.Core.md#3-aspnet-core-web-app-생성하기" id="user-content-3-aspnet-core-web-app-생성하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>3. <span style="box-sizing: border-box; font-weight: bolder;">ASP.NET Core</span> Web App 생성하기</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
다음 Link의 공식문서를 보고 작성하였습니다. (<a href="https://docs.asp.net/en/latest/getting-started.html" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://docs.asp.net/en/latest/getting-started.html</a>)</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
좀 전에 생성한 예제 코드로 이동하겠습니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">cd ~/hwapp
</code></pre>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">project.json</code>의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">dependencies</code>란에 다음과 같이 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Kestrel</code>를 추가해주세요.</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>version<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>1.0.0-*<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>buildOptions<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>debugType<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>portable<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>emitEntryPoint<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>
},
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>dependencies<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {},
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>frameworks<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>netcoreapp1.0<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>dependencies<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Microsoft.NETCore.App<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>type<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>platform<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>version<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>1.0.0<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
},
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Microsoft.AspNetCore.Server.Kestrel<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>1.0.0<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
},
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>imports<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>dnxcore50<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
}
}
}</pre>
</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
패키지를 project에 다운로드 합니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">dotnet restore
</code></pre>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Startup.cs</code>파일을 추가하려 다음의 내용으로 작성합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> Microsoft.AspNetCore.Builder<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> Microsoft.AspNetCore.Hosting<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> Microsoft.AspNetCore.Http<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">namespace</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">aspnetcoreapp</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Startup</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Configure</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">IApplicationBuilder</span> <span class="pl-smi" style="box-sizing: border-box;">app</span>)
{
app.Run(context =>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> context.Response.WriteAsync(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Hello from ASP.NET Core!<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
});
}
}
}</pre>
</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Program.cs</code>파일을 다음과 같이 수정해주세요.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> Microsoft.AspNetCore.Hosting<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">namespace</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">aspnetcoreapp</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Program</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Main</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string[]</span> <span class="pl-smi" style="box-sizing: border-box;">args</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> host = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
}</pre>
</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
그런 다음 실행합니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">dotnet run
</code></pre>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/image/install.ubuntu.02.png" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림" src="https://github.com/DevStarSJ/Study/raw/master/Blog/ASP.NET.Core/image/install.ubuntu.02.png" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
위 그림과 같은 메세지가 나오면 성공한 것입니다.</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
웹브라우저로 붙어보면 아래와 같은 그림이 나옵니다.</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/image/install.ubuntu.03.png" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림" src="https://github.com/DevStarSJ/Study/raw/master/Blog/ASP.NET.Core/image/install.ubuntu.03.png" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/Install.Net.Core.md#4-외부에서-접속가능하게-배포하기" id="user-content-4-외부에서-접속가능하게-배포하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>4. 외부에서 접속가능하게 배포하기</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
다음 Link의 공식문서를 보고 따라했습니다. (<a href="https://docs.asp.net/en/latest/publishing/linuxproduction.html" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://docs.asp.net/en/latest/publishing/linuxproduction.html</a>)</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Nginx</code>를 설치합니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">sudo apt-get install nginx
</code></pre>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
이제 우리가 띄운 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Web App</code>으로 접속하도록 <span style="box-sizing: border-box; font-weight: bolder;">Proxy</span>를 설정합니다.</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
설정파일은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">/etc/nginx/sites-available/default</code> 입니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">sudo vi /etc/nginx/sites-available/default
</code></pre>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
버전별로 내용이 조금 다룰수 있는데 눈여겨 볼 부분은 다음과 같습니다.</div>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/Install.Net.Core.md#41-외부에서-접속할-port-설정" id="user-content-41-외부에서-접속할-port-설정" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>4.1 외부에서 접속할 Port 설정</h3>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
아래 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">80</code>부분을 원하는 Port로 설정하면 됩니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
</code></pre>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/Install.Net.Core.md#42-내부로-연결한-주소-설정" id="user-content-42-내부로-연결한-주소-설정" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>4.2 내부로 연결한 주소 설정</h3>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">location</code>부분을 아래와 같이 설정합니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
</code></pre>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
중요한 부분만 그림으로 보면 다음과 같습니다.</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/image/install.ubuntu.04.png" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림" src="https://github.com/DevStarSJ/Study/raw/master/Blog/ASP.NET.Core/image/install.ubuntu.04.png" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
수정한 내용에 이상은 없는지 확인한 후 실행합니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">sudo nginx -t
sudo service nginx start
</code></pre>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
만약 수행 중 변경 후 반영하려면 다음과 같이 입력해야 합니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">sudo nginx -s reload
</code></pre>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
이제 외부에서 Web App으로 접근이 가능합니다</div>
<div style="box-sizing: border-box; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; font-weight: normal; line-height: 25.6px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/ASP.NET.Core/image/install.ubuntu.05.png" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림" src="https://github.com/DevStarSJ/Study/raw/master/Blog/ASP.NET.Core/image/install.ubuntu.05.png" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
</h1>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-89295096403082526342016-06-24T21:08:00.000+09:002016-06-24T21:08:03.318+09:002016 나는 프로그래머다 meetup (2016-06-24)<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
나는 프로그래머다 meetup</h1>
<ul style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">일시 : 2016년 6월 24일 금요일 13:30 ~ 20:30</li>
<li style="box-sizing: border-box;">장소 : 마이크로소프트 광화문</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
평소 즐겨듣던 <span style="box-sizing: border-box; font-weight: bolder;">나는 프로그래머다</span> 팟케스트의 2016년 meetup 모임이 있어서 참석하였습니다. 현장에서 이번에 나온 <span style="box-sizing: border-box; font-weight: bolder;">나는 프로그래머다 2편</span> 책을 구입하여 저자 3명의 싸인을 받았습니다. 덤으로 지난달에 구입한 <span style="box-sizing: border-box; font-weight: bolder;">대살개문</span>도 임작가님에게 싸인을 받았습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/Conference/2016/image/2016-06-24.iamprogrammer.01.jpg?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="저자싸인" src="https://github.com/DevStarSJ/Study/raw/master/Blog/Conference/2016/image/2016-06-24.iamprogrammer.01.jpg?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<span style="box-sizing: border-box; font-weight: bolder;">KEYNOTE</span>의 첫번째 세션은 <em style="box-sizing: border-box;">정개발</em>님이 해주셨는데, 마지막에 하신 말씀이 가장 인상적이었습니다. 컨퍼런스 백번 다니는것 보다는 한번 발표하는게 훨씬 더 많이 남는다고 하셨습니다.<br style="box-sizing: border-box;" />(난 늘 사람들에게 책은 쓰는게 아니라 읽는 것이요. 컨퍼런스는 말하는게 아니라 듣는 것이라고 말하고 다녔습니다만...)</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
다음으로 임작가, 정개발, 데니스김 3명이서 함께 올해 상반기의 방송들에 대해서 간단한 소개 및 뒷이야기를 해 주셨습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
이후 트랙1,2 로 나뉘어 진행이 되었습니다. 전 트랙1에서 쭉 듣기로 결정했습니다. 트랙2에도 듣고 싶은 내용이 좀 있긴 했으나, 전체적으로 트랙1에 듣고 싶은게 거의 다 있었고, 나중에 발표자료와 영상이 공개가 되기때문이기도 하구요.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
트랙1의 첫번째는 일본의 라쿠텐(Rakuten)의 기업 소개가 있었습니다. 한국에는 별로 유명하지 않은데, 세계적으로는 삼성 이상의 인지도를 가지고 있는 대형 IT 기업이라고 들었습니다. 일본인 CTO 한명과 한국인 Lead 개발자 3명이 오셔서 발표를 해 주셨습니다. 회사내의 공식적인 언어는 영어를 사용하며, 최근에 외국인들이 많이 입사하면서 기업문화가 많이 바뀌어서 좋은 기업문화를 가지고 있다고 합니다. 한국인 개발자들에게 관심이 많으며 한국내의 인지도를 높이기 위해서 후원 및 발표를 하게 되었다고 합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
두번째는 <span style="box-sizing: border-box; font-weight: bolder;">Denny Kim</span>님이 클라우드 서비스 체리피킹(좋은 것만 골라 먹는 방법)에 대해서 소개를 해주는 내용이었습니다. 저가 클라우다와 고가 클라우드들에 대해서 여러가지 장,단점을 소개해주면서 어떻게 이용하면 좋은지에 대한 내용이었습니다. 저가형 클라우드 여러개를 묶어서 잘 활용하면 실제 서비스 가능할 정도까지 사용이 가능하다는 내용과 구체적인 서비스 소개 및 보안 이슈들에 대해서 얘기해 주셨습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
세번째는 <span style="box-sizing: border-box; font-weight: bolder;">정개발</span>님과 <span style="box-sizing: border-box; font-weight: bolder;">염산악</span>님이 함께 진행하였습니다. 이력서 쓸 때의 유의사항 및 피해야할 안티패턴을 알려주셨습니다. 두 분이서 모의로 코딩인터뷰 하는 것을 연기로 보여주셨으며, 긍정적인 인상을 보여주는 행동과 부정적인 인상을 보여주는 행동을 설명해 주셨습니다. 한마디로 요약을 하자면 직접 면접관이 되어서 생각을 해보면 긍정적, 부정적인 것에 대해서 스스로 느낄 수 있으며, 이력서 또한 본인이 인사담당관 입장이 되어서 읽어보면 어떻게 하는게 좋을지에 대해서 알 수 있다고 해 주셨습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
네번째는 <span style="box-sizing: border-box; font-weight: bolder;">정민영</span>님이 개발자와 커뮤니티 라는 주제로 발표를 해 주셨습니다. 본인이 어떻게 커뮤니티 활동을 시작하게 되었는지, 그렇게 활동을 하면서 얻는 것들에 대해서 말씀해 주셨습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
다섯번째는 골드만삭스에서 근무하는 <span style="box-sizing: border-box; font-weight: bolder;">이주원</span>님의 시간이었습니다. 회사 방침으로 인하여 발표자료는 공개가 불가하여 PPT없이 말씀으로 진행해 주셨습니다. 금융권 회사에서 일할때의 장점에 대해서 먼저 얘기를 해주시고는, 해외 금융권 취업을 준비하는 사람들을 위해서 조언해 주셨습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
모든 트랙이 끝난 후 <span style="box-sizing: border-box; font-weight: bolder;">임백준</span>님이 진행하시면서 청중들의 질문과 하고 싶은 말을 듣고 대답해주시는 시간을 가졌습니다. 나오는 얘기 하나하나가 다 뼈와 살이 되는 이야기였습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
모든 준비된 시간이 끝난 후 밖에서 피자,치킨,음료수를 먹으면서 네트워킹 시간을 가졌습니다. 마이크로소프트가 위치한 케이트윈타워의 건물주 정책상 건물내의 음주가 절대 불가하다고 하셔서 맥주는 마시지 못했습니다. 네트워킹 시간동안 여러 네임드 개발자님들을 찾아가뵈면서 많은 얘기를 들을 수 있었습니다. 많은 분들에게 좋은 얘기를 많이 들을 수 있었고, 또한번 열심히 해야겠다는 동기부여가 된 행복한 시간이었습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/Conference/2016/image/2016-06-24.iamprogrammer.02.jpg?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="사진" src="https://github.com/DevStarSJ/Study/raw/master/Blog/Conference/2016/image/2016-06-24.iamprogrammer.02.jpg?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-16196172116594323792016-06-24T10:38:00.001+09:002016-06-24T10:38:10.445+09:00바벨피쉬 딥엘라스틱 2차 1회 스터디 모임<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
바벨피쉬 딥엘라스틱 2차 1회 스터디 모임</h1>
<ul style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">일시 : 2016년 6월 23일 목요일 19:30 ~ 22:30</li>
<li style="box-sizing: border-box;">장소 : 토즈 강남타워점</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
요즘 데이터과학, 머신러닝에 관련해서 관심을 가지지 않는 사람이 거의 없죠 ? 저도 관심은 가지고 있었지만, 일단 지금 현재 하는 일과는 거리가 좀 있어서 쉽게 시작을 못했습니다. 그러다 페이스북에서 딥러닝 관련 스터디 모임 안내를 보고, 기초지식이 <em style="box-sizing: border-box;">Python</em> 기초만 알면 된다고 해서 참석을 했는데... 속았습니다. 3시간 동안... <em style="box-sizing: border-box;">여긴 어디 ? 난 누구 ? 내가 여기에 왜있지 ?</em> 란 생각이 들더라구요.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
모임 참가당시 저는 <span style="box-sizing: border-box; font-weight: bolder;">바벨피쉬</span> 라는 페이스북 그룹에도 가입이 안된 상태였고, 아는 사람이라고는 전혀 없는 상태에서 참가한 거라, 엄청 뻘쭘 했습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
첫번째 발표는 문용준님(<a href="https://www.facebook.com/yongjoon.moon.1" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://www.facebook.com/yongjoon.moon.1</a>)의 <span style="box-sizing: border-box; font-weight: bolder;">엘라스틱서치</span>에 대한 발표였습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/Conference/2016/BabelFish.FB/image/2016-06-23.01.jpg?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="엘라스틱서치" src="https://github.com/DevStarSJ/Study/raw/master/Blog/Conference/2016/BabelFish.FB/image/2016-06-23.01.jpg?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
필터 설정 등에 따른 분석 결과에 대해서 알기쉽게 설명해 주셨습니다. 저는 아니었지만, 아마 다른 분들에겐 알기 쉬웠을 것입니다. 발표자료는 슬라이드쉐어에 공유되어 있습니다. (<a href="http://www.slideshare.net/dahlmoon/20160613" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">http://www.slideshare.net/dahlmoon/20160613</a>)</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
두번째 발표는 김무성님(<a href="https://www.facebook.com/moodern" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://www.facebook.com/moodern</a>)의 <span style="box-sizing: border-box; font-weight: bolder;">인지신경언어학</span>에 대한 발표였습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/Conference/2016/BabelFish.FB/image/2016-06-23.02.jpg?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="인지신경언어학" src="https://github.com/DevStarSJ/Study/raw/master/Blog/Conference/2016/BabelFish.FB/image/2016-06-23.02.jpg?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
음... 맨붕 그 자체였죠. 뇌의 구조에 대한 그림을 보여주시면서... 알아듣지 못하는 의학 용어들(그것도 영어로...)와 함께... 실어증, 치매 등에 대해서 심도깊은(?) 내용들이 있었습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
세번째 발표는 최윤님(<a href="https://www.facebook.com/yoon.choi.7393" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://www.facebook.com/yoon.choi.7393</a>)의 <span style="box-sizing: border-box; font-weight: bolder;">로봇저널리즘</span>에 대한 발표였습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/Conference/2016/BabelFish.FB/image/2016-06-23.03.jpg?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="로봇저널리즘" src="https://github.com/DevStarSJ/Study/raw/master/Blog/Conference/2016/BabelFish.FB/image/2016-06-23.03.jpg?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
재밌는 영상들과 함께 로봇이 대신 기사를 써주는 것에 대한 간단한 소개와 함께, 절대 로봇이 대신해주지 못하는 <em style="box-sizing: border-box;">폭로성 기사</em>,<em style="box-sizing: border-box;">추적성 기사</em>, <em style="box-sizing: border-box;">질문성 기사</em> 들에 대한 소개를 해 주셨습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">tweepy</code> 사용법에 대한 간략한 소개 (<a href="https://github.com/comp-journalism/UMD-J479V-J779V-Spring2016/blob/master/Weekly/Week_5/Tweepy-skeleton.ipynb" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://github.com/comp-journalism/UMD-J479V-J779V-Spring2016/blob/master/Weekly/Week_5/Tweepy-skeleton.ipynb</a>)와 함께 <span style="box-sizing: border-box; font-weight: bolder;">tweeter</span>에서 특정 키워드에 대해서 분석해주는 서비스인 <a href="http://keyhole.co/" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">http://keyhole.co/</a>에 대한 사용법을 알려주셨습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
그나마 좀 이해가 되는 내용이었으며, 재미있었습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
네번째 발표는 이한나님(<a href="https://www.facebook.com/hanaleehn" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://www.facebook.com/hanaleehn</a>)의 <span style="box-sizing: border-box; font-weight: bolder;">이미지 캡셔닝에 대한 논문</span> 발표였습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/Conference/2016/BabelFish.FB/image/2016-06-23.04.jpg?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="이미지캡셔닝" src="https://github.com/DevStarSJ/Study/raw/master/Blog/Conference/2016/BabelFish.FB/image/2016-06-23.04.jpg?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
이미지를 텍스트(또는 스피치)로 해석해주는 기술에 대한 설명이었습니다. 아직 딥러닝에 대한 기초 지식이 없었던 지라... ㅎ 아마 나 빼고 다른 분들은 다 집중해서 들으셨던거 같아요.;;;</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px;">
2주뒤에 2번째 모임이 있는데... 다른 분야들에 대해서 제가 뭔가 공부를 하거나 준비를 하는건 무리일듯 하구요. <span style="box-sizing: border-box; font-weight: bolder;">엘라스틱서치</span>에 대해서는 지난 발표 자료를 보고 준비를 좀 하고 가야겠네요.</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-860611014774767802016-06-22T20:42:00.002+09:002016-06-24T09:26:42.870+09:00윈도우 앱 개발 그룹(Facebook) 6월 오프라인 모임 후기<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
윈도우 앱 개발 그룹(Facebook) 6월 오프라인 모임 후기</h1>
<ul style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">일시 : 2016년 6월 22일 수요일 19:00 ~ 22:00</li>
<li style="box-sizing: border-box;">장소 : 토즈 강남점</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
이 모임을 처음 간 것은 4월달이었습니다. 회사를 강남 근처로 옮기니 여러가지 스터디와 모임을 참가할 수 있어서 너무 좋네요.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
박문찬 MVP님 (<a href="https://www.facebook.com/kaki104" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://www.facebook.com/kaki104</a>)이 매달 1번씩 윈도우 앱에 대해서 소개해주시는 오프라인 모임을 준비해 주십니다. 이번에는 <span style="box-sizing: border-box; font-weight: bolder;">Bot Framework</span>에 대해서 소개를 해 주셨으며, 간단한 예제를 같이 만들어보았습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/Conference/2016/WinApp.FB/image/WP_20160622.jpg?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="참가자들" src="https://github.com/DevStarSJ/Study/raw/master/Blog/Conference/2016/WinApp.FB/image/WP_20160622.jpg?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/Conference/2016/WinApp.FB/2016-06-22.md#박문찬님의-bot-framework에-대한-설명-및-따라하기-예제" id="user-content-박문찬님의-bot-framework에-대한-설명-및-따라하기-예제" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>박문찬님의 Bot Framework에 대한 설명 및 따라하기 예제</h2>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="http://kaki104.tistory.com/496" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">http://kaki104.tistory.com/496</a></div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/Conference/2016/WinApp.FB/2016-06-22.md#bot-framework-란-" id="user-content-bot-framework-란-" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>Bot Framework 란 ???</h2>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://dev.botframework.com/" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://dev.botframework.com/</a></div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<span style="box-sizing: border-box; font-weight: bolder;">Bot Framework</span>라는것 자체가 인공지능이라던지 그런건 아니었습니다. 단지 <span style="box-sizing: border-box; font-weight: bolder;">Web API</span>로 개발한 서비스를 <span style="box-sizing: border-box; font-weight: bolder;">채팅 API</span>와 연결해 주는 역할 정도랄까요 ? 단순히 웹브라우저나 자체적으로 앱을 만들어서 해당 서비스를 제공할 경우에는 큰 의미가 없겠지만, 우리가 개발한 서비스를 <span style="box-sizing: border-box; font-weight: bolder;">Facebook Messanger</span> 나 <span style="box-sizing: border-box; font-weight: bolder;">카카오톡</span>, <span style="box-sizing: border-box; font-weight: bolder;">라인</span>, <span style="box-sizing: border-box; font-weight: bolder;">Slack</span>, <span style="box-sizing: border-box; font-weight: bolder;">텔레그램</span> 등... 을 통해서 서비스 가능하게 해주는 역할을 하는 것입니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
모임시간에는 간단한 에코봇과 샌드위치 주문을 받아주는 봇을 만들어 보았습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px;">
<span style="box-sizing: border-box; font-weight: bolder;">Telegram</span>에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">@LunaSampleBot</code>에게 말을 걸면 예제를 직접 실행해 보실 수 있습니다.</div>
<br />
<br />
<iframe src="https://webchat.botframework.com/embed/samplebotluna?s=VaeOC4eJ-Qg.cwA.jEk.YFx9r5AFC4GXH8-8Hw0-Q72S5lZ7cgtt_5N0Vf8hoY0" style="height: 502px; max-height: 502px;"></iframe>Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-29072052176051705802016-06-12T14:45:00.000+09:002016-06-12T14:45:14.732+09:00Entity Framework Code First (Table 생성 및 수정)<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 0px !important; padding-bottom: 0.3em;">
Entity Framework Code First (Table 생성 및 수정)</h2>
<h3 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/CSharp/EntityFramework/CodeFirst.Migration#code-first란-" id="user-content-code-first란-" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>Code First란 ?</h3>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
전통적인 방식의 경우 SQL을 이용하여 Database에 Table을 생성한 다음 Application에서 개발을 시작합니다. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Code First</code>방식이란 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Domain Class</code>의 명세를 이용하여 Application 실행 시 해당 Table이 없는 경우 자동으로 생성을 해주는 방식을 말합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Entity Framework 4.1 이후부터 지원해주는 방식이며, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Domain Driven Design</code>의 경우 유용합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/CSharp/EntityFramework/CodeFirst.Migration/image/code-first.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 Code First" src="https://github.com/DevStarSJ/Study/raw/master/Blog/CSharp/EntityFramework/CodeFirst.Migration/image/code-first.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a><br style="box-sizing: border-box;" /><a href="http://www.entityframeworktutorial.net/code-first/what-is-code-first.aspx" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">http://www.entityframeworktutorial.net/code-first/what-is-code-first.aspx</a></div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
. Modify Models after Scaffolding</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/CSharp/EntityFramework/CodeFirst.Migration#code-first-실습" id="user-content-code-first-실습" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>Code First 실습</h3>
<h4 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/CSharp/EntityFramework/CodeFirst.Migration#1-project-생성-및-entity-framework-설치" id="user-content-1-project-생성-및-entity-framework-설치" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>1. Project 생성 및 Entity Framework 설치</h4>
<ul style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Visual Studio</code>에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">C# Console Application Project</code>를 하나 생성합니다.</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Nuget Package Manager</code>를 실행합니다. (아래 방법 중 하나로 실행이 가능합니다.)<ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Solution Explorer에서 Project에서 우클릭하여 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Manage Nuget Packages...</code></li>
<li style="box-sizing: border-box;">상단 Menu에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Tools</code> -> <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Nuget Package Manager</code> -> <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Manage Nuget Packages for Solution...</code></li>
</ul>
</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">EntityFramework</code>를 검색하여 설치합니다. (4.1 이후 버전으로 설치합니다. 이 Post를 작성할 당시 6.1.3 버전이 최신입니다.)</li>
</ul>
<h4 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/CSharp/EntityFramework/CodeFirst.Migration#2-domain-model-정의" id="user-content-2-domain-model-정의" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>2. Domain Model 정의</h4>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
아래와 같이 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">School</code> 과 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Standard</code>라는 2개의 Domain Model을 정의합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Student</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StudentID</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StudentName</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> DateTime? <span class="pl-en" style="box-sizing: border-box; color: #795da3;">DateOfBirth</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[] <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Photo</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">decimal</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Height</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">float</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Weight</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> Standard <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Standard</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Standard</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StandardID</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StandardName</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ICollection<Student> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Students</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">School</code>은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Standard</code>의 참조를 가지고 있으며, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Standard</code>는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">School</code>의 집합을 가지고 있습니다.</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/CSharp/EntityFramework/CodeFirst.Migration#3-entity-framework-context-정의" id="user-content-3-entity-framework-context-정의" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>3. Entity Framework Context 정의</h4>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Data.Entity<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span></pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
DbContext를 사용하기 위해서는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">System.Data.Entity</code>를 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">using</code>해주면 편합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">SchoolContext</span> : <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">DbContext</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> DbSet<Student> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Students</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> DbSet<Standard> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Standards</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
2개의 Domain Model을 DbSet Property로 정의합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
특정 Database로의 접근을 원할 경우 DbContext의 생성자로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Connection String</code>를 전달하도록 생성자를 정의해주면 됩니다. Console Application Project에서 default일 경우 Visual Studio와 함께 설치된 LocalDB로 연결 됩니다.</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/CSharp/EntityFramework/CodeFirst.Migration#4-context-실행" id="user-content-4-context-실행" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>4. Context 실행</h4>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Program</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Main</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string[]</span> <span class="pl-smi" style="box-sizing: border-box;">args</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> context = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> SchoolContext())
{
Student s = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> Student() { StudentName = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>New Student<span class="pl-pds" style="box-sizing: border-box;">"</span></span> };
context.Students.Add(s);
context.SaveChanges();
}
}
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Database에 따로 Table을 생성하지 않고 위 Code를 실행하면 자동으로 Table이 생성됩니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/CSharp/EntityFramework/CodeFirst.Migration/image/EF.Migration.01.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 Table Created" src="https://github.com/DevStarSJ/Study/raw/master/Blog/CSharp/EntityFramework/CodeFirst.Migration/image/EF.Migration.01.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
그림에서 확인되는 것을 보면 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Standard</code>에는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Student</code>에 대한 항목이 없으며, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Student</code>에는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Standard_StandardID</code>라는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Foreign Key</code>가 추가 된 것이 확인됩니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
개발 또는 운영 중 새로운 Table이 추가 될 경우에는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Domain Model</code>을 선언하고 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Context</code>의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">DbSet Property</code>를 선언해주면 됩니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/CSharp/EntityFramework/CodeFirst.Migration#change-models-after-scaffolding" id="user-content-change-models-after-scaffolding" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>Change Models after Scaffolding</h3>
<h4 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/CSharp/EntityFramework/CodeFirst.Migration#1-domain-model-수정" id="user-content-1-domain-model-수정" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>1. Domain Model 수정</h4>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
먼저 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Teacher</code> Model을 추가한 뒤,</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Teacher</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">TeacherID</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">TeacherName</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Student</code>에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Teacher</code>의 참조를 추가합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Student</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StudentID</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StudentName</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> DateTime? <span class="pl-en" style="box-sizing: border-box; color: #795da3;">DateOfBirth</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[] <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Photo</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">decimal</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Height</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">float</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Weight</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> Standard <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Standard</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> Teacher <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Teacher</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; }
}</pre>
</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/CSharp/EntityFramework/CodeFirst.Migration#2-context-실행" id="user-content-2-context-실행" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>2. Context 실행</h4>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">F5</code>를 눌러서 실행을 하면 오류가 발생합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Domain Model</code>의 새로운 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Property</code>가 추가될 경우에는 오류가 발생합니다. (Table 입장에서는 Column이 추가되어야 할 경우)</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
이 경우에는 Migration 이라는 작업을 따로 해 줘야 합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
여러 가지 방법이 존재합니다.</div>
<ol style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Package Manager Console</code>에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Enable-Migrations</code> 명령어를 이용</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Connection String</code>에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Database name</code>을 변경</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Entity Framework</code>에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Database Initializer</code>를 사용</li>
</ol>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위 방법 중 3번 방법이 가장 편하므로, 해당 방법만 설명 드리겠습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
나머지 방법에 대해서는 아래 Posting을 참조하시기 바랍니다. <a href="https://blogs.msdn.microsoft.com/webdev/2013/11/01/tips-when-making-changes-in-entity-framework-code-first-models-after-scaffolding" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://blogs.msdn.microsoft.com/webdev/2013/11/01/tips-when-making-changes-in-entity-framework-code-first-models-after-scaffolding</a></div>
<h4 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/CSharp/EntityFramework/CodeFirst.Migration#3-database-initializer-선언" id="user-content-3-database-initializer-선언" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>3. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: inherit; margin: 0px; padding: 0.2em 0px;">Database Initializer</code> 선언</h4>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">SchoolInitializer</span> : <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">DropCreateDatabaseIfModelChanges</span><<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">SchoolContext</span>>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">protected</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">override</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Seed</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">SchoolContext</span> <span class="pl-smi" style="box-sizing: border-box;">context</span>)
{
<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">base</span>.Seed(context);
}
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
별도의 작업이 필요한 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Seed()</code> 안에서 정의를 해주면 됩니다. 현재는 별 다른 작업이 필요 없으므로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Seed()</code>를<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Override</code>하지 않고 삭제해도 됩니다.</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/CSharp/EntityFramework/CodeFirst.Migration#4-database-initializer-실행" id="user-content-4-database-initializer-실행" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path 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>4. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: inherit; margin: 0px; padding: 0.2em 0px;">Database Initializer</code> 실행</h4>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Application 실행시 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Database Initializer</code>를 먼저 실행시켜 주면 오류 없이 Table이 수정됩니다. 심지어 DbSet Property에 Teacher를 추가하지 않았는데도 불구하고 Teacher Table이 추가되었습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Program</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Main</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string[]</span> <span class="pl-smi" style="box-sizing: border-box;">args</span>)
{
Database.SetInitializer<SchoolContext>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> SchoolInitializer());
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> context = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> SchoolContext())
{
Student s = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> Student() { StudentName = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>New Student<span class="pl-pds" style="box-sizing: border-box;">"</span></span> };
context.Students.Add(s);
context.SaveChanges();
}
}
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
일단 오류없이 실행은 되었습니다. Database를 확인해 보면 Table 정보가 수정된 것을 볼 수 있습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 25.6px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/CSharp/EntityFramework/CodeFirst.Migration/image/EF.Migration.02.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 Table Modified" src="https://github.com/DevStarSJ/Study/raw/master/Blog/CSharp/EntityFramework/CodeFirst.Migration/image/EF.Migration.02.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-76335789669566199052016-05-24T08:18:00.000+09:002016-05-24T08:18:07.120+09:00ASP.NET MVC : View<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
View</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/05.View%20.md#view-란" id="user-content-view-란" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>View 란?</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
MVC Framework에서 사용자에게 결과를 보여주는 역할을 합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller</a></div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
ASP.NET에서는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Razor Engine</code>을 이용하여 View를 조금 더 편하게 작성 할 수 있습니다. (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.cshtml</code>) <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Razor Engine</code>이 무엇인지 간단하게 얘기하자면 View (HTML page) 작성시 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">C#</code> 문법과 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.NET Framework</code>를 사용할 수 있습니다. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Layout</code>, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Partial View</code>를 이용하여 특정 영역만 따로 rendering 하는 것도 가능하며, 각종 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Helper method</code>를 제공하여서 반복적인 HTML TAG 작성 작업을 줄여주며, 직접 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Helper method</code>를 작성하여서도 활용 할 수 있습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
View의 기본적인 사용법은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Controller and Action</code> 절에서 예제 작성시 간단히 언급했으므로 생략하도록 하겠습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md</a></div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
View를 편리하게 사용하기 위한 방법(주로 재활용 방안) 위주로 진행하겠습니다.</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/05.View%20.md#1-layout-section" id="user-content-1-layout-section" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1. Layout section</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Layout (주로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">_Layout.cshtml</code> 식의 명칭) 내부에는 section을 제공해 줍니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">@RenderBody()</code> : 해당 Layout을 사용하는 View의 내용이 이 위치에 삽입됩니다.</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">@RenderSection("Name")</code> : View 에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">@section Name { ... }</code> 의 내용이 해당 section에 삽입됩니다.</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Layout에서 선언한 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">@RenderSection("...")</code>이 View에서 사용하지 않으면 오류가 발생합니다. 해당 section에 선택적으로 사용을 하려면 (View에서 사용하지 않아도 오류가 발생하지 않게 하려면) <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">@RenderSection("...", false)</code>로 선언을 하면 됩니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
*_Layout.cshtml</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">// _Layout.cshtml
...
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">body</span>>
@RanderSection("Header")
...
@RanderBody()
...
@RanderSection("Footer", required = false)
</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">body</span>></pre>
</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Index.cshtml</li>
</ul>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@{
Layout = "_Layout";
}
@section Header {
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>>This is Header</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>>
}
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>>
RenderBody contains every contents in this document, except @section ...
</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>>
</pre>
</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/05.View%20.md#2-partial-view" id="user-content-2-partial-view" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2. Partial View</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Razor Tag, HTML Markup 으로 이루어진 동일한 코드를 반복적으로 사용할 경우 유용합니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Partial.cshtml</li>
</ul>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>>
This is Partial View.
@Html.ActionLink("The Link of Index on this Controller", "Index")
</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>></pre>
</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">List.cshtml</li>
</ul>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@{
ViewBag.Title = "List";
Layout = null;
}
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">h3</span>>List</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">h3</span>>
@Html.Partial("Partial")</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위의 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">List.cshtml</code>에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Partial.cshtml</code>의 Partial view를 사용하였는데, Partial view 내부를 보면 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ActionLink</code>를 Controller 이름을 명시하지 않았습니다. Partial View를 Rednering하는 곳이 List.cshtml 내부이기 때문에 해당 Controller를 기준으로 동작합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Partial View도 ViewModel을 가질 수 있습니다. (Strongly Typed Partial View)</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
그럴 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">@Html.Partial(...)</code> 의 두번째 인자로 ViewModel을 전달해 줘야 합니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Partial2.cshtml</li>
</ul>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@model IEnumerable<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">string</span>>
...</pre>
</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">List.cshtml</li>
</ul>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">...
@Html.Partial("Partial2", new [] { "Luna" , "Star" } )</pre>
</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/05.View%20.md#3-child-action" id="user-content-3-child-action" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3. Child Action</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
View 에서 호출되는 Action Method를 의미합니다. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">@Html.Action(...)</code> helper method를 사용하면 모든 Action method를 View에서 호출이 가능하지만, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">[ChileActionOnly]</code> 이란 attribute를 붙이면 Routing System에서 사용되지 않고 순수히 View에서 호출할 경우에만 동작하는 것을 의미합니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">HomeController.cs</li>
</ul>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">...
[ChildActionOnly]
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ActionResult Time()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> PartialView(DateTime.Now);
}</pre>
</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Time.cshtml</li>
</ul>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@model DateTime
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>>
@Model.ToShortTimeString()
</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>></pre>
</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">List.cshtml</li>
</ul>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">...
@Html.Action("Time")</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Child Action에 매개변수가 필요한 경우에는 무명형식을 이용해서 전달이 가능합니다. 단 파라메터의 이름이 같아야 합니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">HomeController.cs</li>
</ul>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">...
[ChildActionOnly]
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ActionResult Time(DateTime time)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> PartialView(DateTime.Now);
}</pre>
</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">List.cshtml</li>
</ul>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">...
@Html.Action("Time", new { time = DateTime.Now })</pre>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-47767359289470938482016-05-21T10:23:00.000+09:002016-05-21T10:23:22.136+09:00Newtonsoft.Json 사용하기 : C# (.Net) 에서 JSON 생성 및 Parsing 하기<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
Newtonsoft.Json 사용법</h1>
<h1>
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#newtonsoftjson-사용법" id="user-content-newtonsoftjson-사용법"></a><div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
C# 에서 JSON document를 다루기 위해 가장 많이 사용되는 것은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Newtonsoft.Json</code>입니다. nuget manager에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JSON</code>으로 검색시 가장 먼저 나옵니다. 그만큼 많이 사용되며, 사용법 또한 간단합니다.</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#1-설치-및-namespace" id="user-content-1-설치-및-namespace" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1. 설치 및 namespace</h2>
<h1>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
솔루션 탐색기 (Solution Explorer)에서 마우스 우클릭 하신뒤 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Manage nuget packages...</code>을 누르셔서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Browse</code> 탭에서<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Newtonsoft.Json</code>을 검색하셔서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Install</code>을 누르면 됩니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/CSharp/Example/Newtonsoft_Json/image/Newtonsoft.Json.01.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 MVC" src="https://github.com/DevStarSJ/Study/raw/master/CSharp/Example/Newtonsoft_Json/image/Newtonsoft.Json.01.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
다른 방법으로는 도구(Tools) -> <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Nuget package manager</code> -> <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Package Manager Console</code> 로 가셔서 아래와 같이 입력하시면 됩니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">PM> Install-Package Newtonsoft.Json
</code></pre>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
사용시 소스코드에서 아래의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">namespace</code>를 추가해 주시면 됩니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> Newtonsoft.Json.Linq<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span></pre>
</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#2-간단한-특징-설명" id="user-content-2-간단한-특징-설명" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2. 간단한 특징 설명</h2>
<h1>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
2개의 Object를 이용해서 사용하시면 됩니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><div style="box-sizing: border-box; margin-bottom: 16px; margin-top: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JObject</code> : JSON Object 입니다.</div>
<ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JObject</code> 자체가 name값을 가질 수는 없습니다.</li>
<li style="box-sizing: border-box;">(key, value) pair 들을 가질 수 있습니다.</li>
<li style="box-sizing: border-box;">key : string 값입니다.</li>
<li style="box-sizing: border-box;">value : <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JToken</code> 타입이며 대부분의 premitive type들과 DateTime, TiemSpan, Uri 값을 직접대입 가능하며, 기타 Object도 입력이 가능합니다.<ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">value에 다른 JObject나, JArray를 넣을 수 있습니다.</li>
</ul>
</li>
</ul>
</li>
<li style="box-sizing: border-box;"><div style="box-sizing: border-box; margin-bottom: 16px; margin-top: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JArray</code> : JSON Array 입니다.</div>
<ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JObject</code>와 특징이 거의 비슷하나 key 없이 value 들을 가지고 있습니다.</li>
</ul>
</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
즉, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JObject</code>나 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Jarray</code> 자체는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">name</code>을 가질 수 없으나, 다른 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JObject</code>에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">value</code>로 소속될 경우에는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">key</code>값을 가져야 하며, 다른 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JArray</code>에 소속될 경우에는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">key</code>값 없이 입력됩니다</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#3-jobject-사용법" id="user-content-3-jobject-사용법" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3. JObject 사용법</h2>
<h1>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
너무나 간단하기 때문에 별도 설명은 필요 없을듯 합니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">생성 : <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">new JObject()</code></li>
<li style="box-sizing: border-box;">Element 추가 : <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.add(key, value)</code></li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
바로 예제를 보도록 하겠습니다.</div>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#31-element-추가" id="user-content-31-element-추가" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.1 Element 추가</h3>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#311-기본적인-사용법" id="user-content-311-기본적인-사용법" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.1.1 기본적인 사용법</h4>
<h1>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> json = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> JObject();
json.Add(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
json.Add(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
json.Add(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>);
Console.WriteLine(json.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>
}</pre>
</div>
</h1>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#312-json-형식의-문자열로-생성" id="user-content-312-json-형식의-문자열로-생성" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.1.2 JSON 형식의 문자열로 생성</h4>
<h1>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> json2 = JObject.Parse(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>{ id : <span class="pl-cce" style="box-sizing: border-box;">\"</span>Luna<span class="pl-cce" style="box-sizing: border-box;">\"</span> , name : <span class="pl-cce" style="box-sizing: border-box;">\"</span>Silver<span class="pl-cce" style="box-sizing: border-box;">\"</span> , age : 19 }<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
json2.Add(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>blog<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>devluna.blogspot.kr<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
Console.WriteLine(json2.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>blog<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>devluna.blogspot.kr<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
}</pre>
</div>
</h1>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#313-다른-class-object로부터-생성" id="user-content-313-다른-class-object로부터-생성" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.1.3 다른 class Object로부터 생성</h4>
<h1>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">User u = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> User { id = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>SJ<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, name = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, age = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">25</span> };
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> json3 = JObject.FromObject(u);
Console.WriteLine(json3.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>SJ<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">25</span>
}</pre>
</div>
</h1>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#314-무명형식으로-생성" id="user-content-314-무명형식으로-생성" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.1.4 무명형식으로 생성</h4>
<h1>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> json4 = JObject.FromObject(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { id = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>J01<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, name = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>June<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, age = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">23</span> });
Console.WriteLine(json4.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>J01<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>June<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">23</span>
}</pre>
</div>
</h1>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#315-다른-jobject를-element로-추가" id="user-content-315-다른-jobject를-element로-추가" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.1.5 다른 JObject를 Element로 추가</h4>
<h1>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> json5 = JObject.Parse(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>{ id : <span class="pl-cce" style="box-sizing: border-box;">\"</span>sjy<span class="pl-cce" style="box-sizing: border-box;">\"</span> , name : <span class="pl-cce" style="box-sizing: border-box;">\"</span>seok-joon<span class="pl-cce" style="box-sizing: border-box;">\"</span> , age : 27 }<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
json5.Add(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>friend1<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, json);
json5.Add(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>friend2<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, json2);
json5.Add(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>friend3<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, json3);
json5.Add(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>friend4<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, json4);
Console.WriteLine(json5.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>sjy<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>seok-joon<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">27</span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>friend1<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>
},
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>friend2<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>blog<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>devluna.blogspot.kr<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
},
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>friend3<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>SJ<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">25</span>
},
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>friend4<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: {
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>J01<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>June<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">23</span>
}
}</pre>
</div>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#32-element값-사용하기" id="user-content-32-element값-사용하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.2 Element값 사용하기</h3>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#321-element값-읽기" id="user-content-321-element값-읽기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.2.1 Element값 읽기</h4>
<h1>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">[ ]</code> 연산자에 key값을 넣어주면 해당 value를 얻을 수 있습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> json4_name = json4[<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>];
Console.WriteLine(json4_name);</pre>
</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">June
</code></pre>
</h1>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#322-element값-삭제하기" id="user-content-322-element값-삭제하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.2.2 Element값 삭제하기</h4>
<h1>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.Remove(key)</code>를 이용해서 삭제가 가능합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">json4.Remove(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
Console.WriteLine(json4.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>J01<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">23</span>
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.RemoveAll()</code>로 모든 Element를 다 삭제 할 수도 있습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">json5.RemoveAll();
Console.WriteLine(json5.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">{}</pre>
</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#4-jarray-사용법" id="user-content-4-jarray-사용법" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4. JArray 사용법</h2>
<h1>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
Element 입력시 key를 가지지 않는 다는 것을 빼고는 JObject와 거의 같습니다.</div>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#41-element-추가하기" id="user-content-41-element-추가하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.1 Element 추가하기</h3>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#411-기본적인-사용법" id="user-content-411-기본적인-사용법" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.1.1 기본적인 사용법</h4>
<h1>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> jarray = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> JArray();
jarray.Add(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">1</span>);
jarray.Add(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
jarray.Add(DateTime.Now);
Console.WriteLine(jarray.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">[
<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">1</span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>2016-05-21T09:45:27.1049839+09:00<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
]</pre>
</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#412-jobject를-element로-추가" id="user-content-412-jobject를-element로-추가" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>!#4.1.2 JObject를 Element로 추가</h2>
<h1>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> jFriends = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> JArray();
jFriends.Add(json);
jFriends.Add(json2);
jFriends.Add(json3);
jFriends.Add(json4);
Console.WriteLine(jFriends.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">[
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>
},
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>blog<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>devluna.blogspot.kr<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
},
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>SJ<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">25</span>
},
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>J01<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">23</span>
}
]</pre>
</div>
</h1>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#413-jarray를-element로-추가" id="user-content-413-jarray를-element로-추가" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.1.3 JArray를 Element로 추가</h4>
<h1>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> jarray2 = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> JArray();
jarray2.Add(jarray);
jarray2.Add(jFriends);
Console.WriteLine(jarray2.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">[
[
<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">1</span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>2016-05-21T09:51:03.2882071+09:00<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
],
[
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>
},
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>blog<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>devluna.blogspot.kr<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
},
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>SJ<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">25</span>
},
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>J01<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">23</span>
}
]
]</pre>
</div>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#42-element값-사용하기" id="user-content-42-element값-사용하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.2 Element값 사용하기</h3>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#421-element값-읽기" id="user-content-421-element값-읽기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.2.1 Element값 읽기</h4>
<h1>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">[ ]</code> 연산자로 읽을 수 있습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> jf0 = jFriends[<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>];
Console.WriteLine(jf0.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">for</code> , <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">foreach</code>로 iteration이 가능합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span>(JObject fElement <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> jFriends)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> fName = fElement[<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>] ?? <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span><NULL><span class="pl-pds" style="box-sizing: border-box;">"</span></span>;
Console.WriteLine(fName);
}</pre>
</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-weight: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; overflow: visible; padding: 0px; word-break: normal; word-wrap: normal;">Silver
Silver
Philip
<NULL>
</code></pre>
</h1>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#422-element값-삭제하기" id="user-content-422-element값-삭제하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.2.2 Element값 삭제하기</h4>
<h1>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">jFriends.Remove(jFriends[<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">1</span>]);
jFriends.Remove(jFriends[<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">2</span>]);
Console.WriteLine(jFriends.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">[
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>
},
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>SJ<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">25</span>
}
]</pre>
</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/CSharp/Example/Newtonsoft_Json#5-jobject에-jarray-추가하기" id="user-content-5-jobject에-jarray-추가하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5. JObject에 JArray 추가하기</h2>
<h1>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">json2.Add(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Friends<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, jFriends);
Console.WriteLine(json2.ToString());</pre>
</div>
<div class="highlight highlight-source-json" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>blog<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>devluna.blogspot.kr<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Friends<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: [
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Silver<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">19</span>
},
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>id<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>SJ<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>name<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>age<span class="pl-pds" style="box-sizing: border-box;">"</span></span>: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">25</span>
}
]
}</pre>
</div>
</h1>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-21182519154015308852016-05-13T07:29:00.003+09:002016-05-13T07:29:56.711+09:00ASP.NET MVC : Controller and Action<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
Controller and Action</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#1-controlleer-와-action이란-" id="user-content-1-controlleer-와-action이란-" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1. Controlleer 와 Action이란 ?</h2>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#11-controller" id="user-content-11-controller" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1.1 Controller</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
MVC Framework에서 가장 핵심이되는 역할을 수행하는 Component입니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Model을 조작</li>
<li style="box-sizing: border-box;">User의 요청을 처리</li>
<li style="box-sizing: border-box;">UI에 출력할 View를 결정</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
MVC Framework에서 사용자, View, Model은 서로 아무런 연결고리가 없이 이루어집니다. Controller가 그 중심에서 처리를 수행합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/image/Router-MVC-DB_svg.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 MVC" src="https://github.com/DevStarSJ/Study/raw/master/Blog/MVC/image/Router-MVC-DB_svg.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a><br style="box-sizing: border-box;" /><a href="https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://ko.wikipedia.org/wiki/모델-뷰-컨트롤러</a></div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#12-action" id="user-content-12-action" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1.2 Action</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
한마디로 설명드리자면 Controller가 수행하는 각각의 method들을 Action이라고 부릅니다. 하나의 Controller는 여러가지 일을 수행 할 수 있습니다. Action에서는 사용자가 요청하는 작업을 정의합니다. 기본적으로 Action의 이름과 그 결과를 출력하는 View의 이름은 같습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">HomeController</span> : <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">Controller</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ActionResult <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Index</span>()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> View();
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ActionResult <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Hello</span>()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> View();
}
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위와 같이 정의된 Home Controller가 있는 경우,</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://mySite.com/Home/Index</code> 라는 요청을 하면 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Index()</code>라는 Action method가 실행되어 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">/Views/Home/Index.cshtml</code>을 출력하며,</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://mySite.com/Home/Hello</code> 라는 요청을 하면 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Hello()</code>라는 Action method가 실행되어 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">/Views/Home/Hello.cshtml</code>을 출력합니다.</li>
</ul>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#2-controller-구현-방법" id="user-content-2-controller-구현-방법" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2. Controller 구현 방법</h2>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#21-icontroller-interface로-구현" id="user-content-21-icontroller-interface로-구현" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2.1 IController interface로 구현</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
지금은 잘 사용하지 않는 방법입니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-c" style="box-sizing: border-box; color: #969896;">//System.Web.Mvc.IController Interface</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">interface</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">IController</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Execute</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">RequestContext</span> <span class="pl-smi" style="box-sizing: border-box;">requestContext</span>);
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Execute()</code>라는 하나의 구현을 제공해주기 때문에 해당 method 안에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RequestContext</code>를 분석하여 실행합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> BasicController : IController
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> Execute (RequestContext requestContext)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> controller = (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>)requestContext.RouteData.Values[<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>controller<span class="pl-pds" style="box-sizing: border-box;">"</span></span>];
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> action = (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>)requestContext.RouteData.Values[<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>action<span class="pl-pds" style="box-sizing: border-box;">"</span></span>];
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">switch</span> (action)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">case</span> <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>:
...
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">break</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">case</span> <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Hello<span class="pl-pds" style="box-sizing: border-box;">"</span></span>:
...
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">break</span>;
}
}
}</pre>
</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#22-controller를-상속받아-구현" id="user-content-22-controller를-상속받아-구현" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2.2 Controller를 상속받아 구현</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
많이 사용하는 방법입니다. Controller는 3가지 핵심 기능을 제공합니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Action Method : 작업들을 여러 method로 나눌 수 있으며, 서로 다른 URL로 노출됩니다.</li>
<li style="box-sizing: border-box;">Action Result : Action method의 결과를 사용자에게 return 합니다.<ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Rendering한 View</li>
<li style="box-sizing: border-box;">JSON, XML 등의 document</li>
<li style="box-sizing: border-box;">다른 URL로 Indirect</li>
</ul>
</li>
<li style="box-sizing: border-box;">Filter : Reusable한 기능들을 Filter로 Capsulation할 수 있습니다.</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
예제 Code는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">1.2 Action</code>의 예제를 참고하시면 됩니다.</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#3-요청-데이터-받기" id="user-content-3-요청-데이터-받기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3. 요청 데이터 받기</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Action method에서 요청 데이터를 가져오는 방법들에 대해서 알아보도록 하겠습니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#31-context를-통해서-데이터-가져오기" id="user-content-31-context를-통해서-데이터-가져오기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.1 Context를 통해서 데이터 가져오기</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
ASP.NET Platform에서 제공해주는 Context 개체들이 많이 있습니다. 그 중 자주 사용되는 값들에 대해서 몇가지 소개 드리겠습니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Request.</code><ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">QueryString</code>(NameValueCollection) : Request와 함께 전송된 GET 변수들</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Form</code> (NameValueCollection) : Request와 함께 전송되어 오는 POST 변수들<ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">e.g. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Request.Form["newName"]</code> (string)</li>
</ul>
</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Cookies</code> (HttpCookieCollection) : Browser가 Request와 함께 전달한 Cookie</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HttpMethod</code> (string) : Request에 사용된 HTTP method (GET, POST, DELETE ...)</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Headers</code> (NameValueCollection) : Request와 함께 전송된 HTTP Header</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Url</code> (Uri) : Request URL</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">UserHostAddress</code> (string) : Request한 User의 IP Address</li>
</ul>
</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RouteData.</code><ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Route</code> (RouteBase) : Request에 대해 선택된 RouteTable.Routes Entry</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Values</code> (RouteValueDictionary) : Route parameters (URL로부터 추출된 값이나 기본값)</li>
</ul>
</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HttpContext.</code><ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Application</code> (HttpApplicationStateBase) : Applcation 상태 Repository</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Cache</code> (Cache) : Application Cache Repository</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Items</code> (IDictionary) : 현재 Request에 대한 상태 Repository</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Session</code> (HttpSessionStateBase) : 방문자 Session에 대한 상태 Repository</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Timestamp</code> (DateTime) : Request한 시간</li>
</ul>
</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">User</code> (IPrincipal) : Login된 사용자의 인증정보<ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.Identity.Name</code> (string) : 사용자 명칭</li>
</ul>
</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">TempData</code> (TempDataDictionary) : 현재 사용자에 대한 임시 데이터 항목들</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Server.MachineName</code> (string) : Server 명칭</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
자세한 정보는 MSDN에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">System.Web.Mvc.Controller</code> , <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">System.web.Mvc.ControllerContext</code>를 살펴보시면 됩니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#32-매개변수-사용하기" id="user-content-32-매개변수-사용하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.2 매개변수 사용하기</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위에서 살펴본 것처럼 Context를 통해서 값을 읽어 올 수 있지만, Action Method에서 매개변수를 선언할 경우 해당 매개변수로 값이 전달되어서 편리하게 사용이 가능합니다. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Request.Form</code>, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Request.QueryString</code>, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Request.Files</code>, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RouteData.Values</code>에서 매개변수와 타입, 명칭을 비교해서 매칭이 되는 경우 매개변수에 값으로 전달을 해 줍니다. 좀 더 자세히 말씀드리자면 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Value Provider</code>가 위 Context들에서 값을 가져오면 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Model Binder</code>가 해당 Value들을 Action Method에서 요구하는 형식으로 제공합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
단 Action Method에서는 Reference Parameter(<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ref</code>)는 제공하지 않으며, Value Type (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">premitive type</code>, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">struct</code>)에 default value가 설정되지 않은 경우 해당 값이 오지 않으면 Exception이 발생합니다. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">nullable</code> (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">int?</code>, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">DateTime?</code> ...)로 선언을 하면 해당 값이 없더라도 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">null</code>로 해당 Action Method가 수행됩니다. Reference Type (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">class</code>)에 대해서는 default value가 없더라도 값이 없는 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">null</code>로 전달되므로 Exception이 발생하지 않습니다.</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#4-출력-return" id="user-content-4-출력-return" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4. 출력 (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: inherit; margin: 0px; padding: 0.2em 0px;">return</code>)</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Action Method의 처리 결과를 사용자에게 전달(<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">return</code>)해줘야 합니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#41-직접-구현하기" id="user-content-41-직접-구현하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.1 직접 구현하기</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
지금은 잘 사용하지 않는 방법이지만 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">IController</code>를 구현했을 경우에는 직접 구현을 해줘야만 했습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">BaseController</span> : <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">IController</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Execute</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">RequestContext</span> <span class="pl-smi" style="box-sizing: border-box;">requestContext</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> action = (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>)requestContext.RouteData.Value[<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>action<span class="pl-pds" style="box-sizing: border-box;">"</span></span>];
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (action.ToLower() == <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>redirect<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)
{
requestContext.HttpContext.Response.Redirect(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Derived/Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">else</span>
{
requestContext.HttpContext.Response.Write($<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Action : {action}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
}
}
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
물론 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Controller</code>를 상속 받았을 경우에도 직접 구현은 가능합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">HomeController</span> : <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">Controller</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Index</span>()
{
Reponse.Write(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Hello from the Index Action Method<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
}
}</pre>
</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#42-actionresult로-return" id="user-content-42-actionresult로-return" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.2 ActionResult로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: inherit; margin: 0px; padding: 0.2em 0px;">return</code></h3>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#421-actionresult-란-" id="user-content-421-actionresult-란-" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.2.1 ActionResult 란 ?</h4>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Response</code> 개체를 직접 다루는게 아니라, MVC Framework에게 우리를 대신해서 만들어내도록 전달하게 해주는 역할을 합니다. MVC Framework는 전달받은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ActionResult</code>에 해당하는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ExecuteResult()</code> 를 호출하여 출력을 생성합니다.</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#422-actionresult-타입" id="user-content-422-actionresult-타입" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.2.2 ActionResult 타입</h4>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ViewResult</code> (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">View()</code>) : View template을 rendering</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">PartialViewResult</code> (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">PartialView()</code>) : Partial view template을 rendering</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RedirectToRouteResult</code> : Route System를 통해 URL을 생성하거나 Action Method나 Route Entry로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HTTP 301 or 302</code>redirect를 수행<ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">(<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RedirectToAction()</code>, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RedirectToActionPermanent()</code>, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RedirectToRoute()</code>, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RedirectToRoutePermanent()</code>)</li>
</ul>
</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RedirectResult</code> (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Redirect()</code>) : 특정 URL로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HTTP 301 or 302</code> redirect 수행</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ContentResult</code> (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RedirectPermanent()</code>, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Content()</code>) : Text 타입의 데이터를 Browser로 return. content-text header 설정 (optional)</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">FileResult</code> (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">File()</code>) : Binary File을 Browser로 직접 전송</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JsonResult</code> (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Json()</code>) : .NET object를 JSON으로 Serialization하여 전송. Web API에서 보편적으로 사용</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JavaScriptResult</code> (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">JavaScript()</code>) : JavaScript source를 Browser로 전송</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HttpUnauthorizedResult</code> : <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HTTP 401</code> (인증되지 않음)으로 처리</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HttpNotFoundResult</code> (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HttpNotFound()</code>) : <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HTTP 404</code> (찾을 수 없음) 으로 처리</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HttpStatusCodeResult</code> : 특정 HTTP code로 처리</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">EmptyResult</code> : 아무것도 안함</li>
</ul>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#423-returning-html-for-view-rendering" id="user-content-423-returning-html-for-view-rendering" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.2.3 Returning HTML for View Rendering</h4>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
ActionResult 중 가장 기본인 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ViewResult</code>에 대한 간단한 사용법 입니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ViewResult Index()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> View(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Homepage<span class="pl-pds" style="box-sizing: border-box;">"</span></span>); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// Route System에게 Homepage라는 segment에 해당하는 View를 rendering하도록 전달</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> View(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>_AlternateLayoutPage<span class="pl-pds" style="box-sizing: border-box;">"</span></span>); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 특정 Layout을 지정하여 rendering하도록 전달</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> View(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>~/Views/Home/Index.cshtml<span class="pl-pds" style="box-sizing: border-box;">"</span></span>); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// Route System을 통하지 않고 직접 특정 View를 지정</span>
}</pre>
</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#43-action-method에서-view로-data-전달" id="user-content-43-action-method에서-view로-data-전달" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.3 Action Method에서 View로 Data 전달</h3>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#431-viewmodel" id="user-content-431-viewmodel" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.3.1 ViewModel</h4>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ViewModel</code>(View에서 사용할 Model)을 parameter로 전달하면 됩니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">HomeController</span> : <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">Controller</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ViewResult <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Index</span>()
{
DataTime now = DateTime.Now;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> View(now);
}
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">DateTime</code> 타입의 ViewModel을 전달한 경우 View에서는 2가지 방법으로 전달받은 ViewModel을 사용할 수 있습니다.</div>
<h5 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#4311-weakly-typed-view" id="user-content-4311-weakly-typed-view" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.3.1.1 Weakly Typed View</h5>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
약한 형식 뷰 (또는 무형식(Untyped) 뷰)라고 불리는 방법으로, ViewModel을 특정 타입으로 지정하지않고 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">object</code> instance로 취급합니다. 그렇기 때문에 사용시 형 변환을 해줘야 합니다. 이 경우에는 intellisense가 제공되지 않을 뿐더러, code가 다소 지저분해 질 수 있습니다.</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@{
ViewBag.Title = "Index";
}
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">h1</span>>Index</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">h1</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>>The day is: @(((DateTime)Model).DayOfWeek)</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>></pre>
</div>
<h5 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#4312-strongly-typed-view" id="user-content-4312-strongly-typed-view" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.3.1.2 Strongly Typed View</h5>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
강력한 형식 뷰에서는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">@model</code> 키워드로 ViewModel type을 지정합니다. 그러면 View내에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">@Model</code> 키워드로 사용이 가능합니다. 이 경우 intellisense 기능을 사용할 수가 있어서 편리하며, code도 깔끔하게 만들 수 있습니다.</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@model DateTime
@{
ViewBag.Title = "Index";
}
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">h1</span>>Index</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">h1</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>>The day is: @Model.DayOfWeek</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>></pre>
</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#432-viewbag" id="user-content-432-viewbag" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4.3.2 ViewBag</h4>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Action Method에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ViewBag</code>이라는 dynamic object에 임의의 속성을 정의하면 View에서 읽을 수 있습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">HomeController</span> : <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">Controller</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ViewResult <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Index</span>()
{
ViewBag.Now = DateTime.Now;
ViewBag.MyName = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> View();
}
}</pre>
</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@{
ViewBag.Title = "Index";
}
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">h1</span>>Index</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">h1</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>>The day is: @ViewBag.Now.DayOfWeek</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>>My name is @ViewBag.MyName</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span>></pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
여러 개의 값을 전달할 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ViewModel</code>보다 편리하게 사용할 수 있습니다. 위 예제와 같이 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">DateTime</code> 과 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">string</code> 2개의 값을<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ViewModel</code>로 전달하고자 한다면, 따로 정의를 해야합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">IndexViewModel</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> DateType Now;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> MyName;
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">TempData</code>와 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">SessionData</code>를 이용한 전달도 가능한데, 이것은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Redirect</code> 시에 주로 사용되므로 다음에 그때 가서 설명드리겠습니다.</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#5-redirect-재전송" id="user-content-5-redirect-재전송" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5. Redirect (재전송)</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Action Method의 결과를 직접적으로 출력하는게 아니라, 다른 URL로 재전송해야 하는 경우 사용합니다.</div>
<blockquote style="border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 4px; box-sizing: border-box; color: #777777; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin: 0px 0px 16px; padding: 0px 15px;">
<div style="box-sizing: border-box;">
만약 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HTTP</code> <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">POST</code> 요청에 대해서 처리결과를 바로 출력할 경우, 사용자가 다시 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Browser Refresh</code>를 할 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">POST</code>요청이 다시 수행되게 됩니다. 그래서 이런 경우에는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">POST</code>에 관련된 처리를 한 후 그 결과를 보여주는 View를 따로 생성하여<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">GET</code> 요청으로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">URL Redirect</code>를 수행하는 것이 더 안전합니다. 그럼 사용자가 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Refresh</code>를 하더라도 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">POST</code> 요청이 다시 수행되지 않습니다.</div>
</blockquote>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Redirect</code>에는 2가지 방식이 있습니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HTTP 302</code> : 임시적인 재전송을 의미합니다. 가장 많이 사용되는 방식이며, Post/Redirect/Get 패턴을 사용할 경우에도<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">302</code>로 전송되어야 합니다.</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HTTP 301</code> : 영구적인 재전송을 의미합니다. 이 경우 원본 URL은 더이상 사용되지 않을 것이고, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Redirect</code>된 새로운 URL이 앞으로 사용됩니다.</li>
</ul>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#51-action-method에서-redirect하는-방법" id="user-content-51-action-method에서-redirect하는-방법" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5.1 Action Method에서 Redirect하는 방법</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> RedirectResult Index()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> Redirect(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>/Example/Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 문자열로 URL을 작성하여 Redirect</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> RedirectPermanent(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>/Example/Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 영구적인 Redirect (Redirect("...", true);를 사용하는 것도 가능)</span>
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> RedirectToRouteResult Index()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> RedirectToRoute(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { <span class="pl-c" style="box-sizing: border-box; color: #969896;">// Redirect to Routing System URL</span>
controller = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Example<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
action = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
ID = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
});
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> RedirectToAction(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// Redirect to Action Method</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> RedirectToAction(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Example<span class="pl-pds" style="box-sizing: border-box;">"</span></span>); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// other Controller</span>
}</pre>
</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#52-redirect시-data-전달" id="user-content-52-redirect시-data-전달" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5.2 Redirect시 Data 전달</h3>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#521-tempdata" id="user-content-521-tempdata" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5.2.1 TempData</h4>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Redirect하기 전에 TempData에 필요한 값들을 저장합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> RedirectToRouteResult Index()
{
TempData[<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>MyName<span class="pl-pds" style="box-sizing: border-box;">"</span></span>] = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>;
TempData[<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Now<span class="pl-pds" style="box-sizing: border-box;">"</span></span>] = DateTime.Now;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> RedirectToAction(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Hello<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
전달받은 TempData는 값을 읽기 전까지는 유지가 되며, 읽으면 삭제됩니다. 값을 읽는 방법은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">TempData["MyName"]</code>으로 읽을 수 있습니다. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">TempData.Peek(""MyName)</code>을 이용하면 값을 삭제하지 않고 읽을 수 있습니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
이 값을 View까지 전달하고자 한다면 TempData에서 읽어서 ViewBag이나 ViewModel에 넣어서 전송을 하면 됩니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ViewResult Hello()
{
ViewBag.MyName = TempData[<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>MyName<span class="pl-pds" style="box-sizing: border-box;">"</span></span>];
ViewBag.Now = TempData[<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Now<span class="pl-pds" style="box-sizing: border-box;">"</span></span>];
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> View();
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
그냥 따로 전달하지 않고, View에서 바로 읽는 것도 가능합니다.</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">strong</span>>@TempData.TryPeek("MyName") Entered.</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">strong</span>></<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">p</span>>
The day is : @(((DateTime)TempData["Now"]).DayOfWeek) </<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">p</span>>
My Name is @TempData["MyName"]</pre>
</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#522-session-data" id="user-content-522-session-data" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5.2.2 Session Data</h4>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">TempData</code>와 비슷한 방법으로 사용이 가능하지만, 해당 Session 내에서 계속해서 유지가 된다는 차이점이 있습니다. 일회성으로 사용할 정보는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">TempData</code>를 활용하는 것이 좋고, Session 내에서 계속해서 필요한 정보는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Session</code>을 사용하는게 좋습니다.</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/04.ControllerAndAction.md#6-http-code-error-전송" id="user-content-6-http-code-error-전송" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>6. HTTP Code, Error 전송</h2>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> HttpStatusCodeResult StatusCode()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> HttpStatusCodeResult(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">404</span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>URL cannot be serviced<span class="pl-pds" style="box-sizing: border-box;">"</span></span>); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 직접 생성해서 반환</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> HttpNotFound(); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 404</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> HttpUnauthorizedResult(); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 401</span>
}</pre>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-9361440751546415802016-05-10T22:16:00.002+09:002016-05-10T22:16:19.108+09:00ASP.NET MVC URL Routing #2<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
고급 Routing</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#1-view에서-outgoing-url-생성-using-routing-system" id="user-content-1-view에서-outgoing-url-생성-using-routing-system" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1. View에서 outgoing URL 생성 (using routing system)</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
View에서 왜 굳이 routing system을 사용해서 outgoing URL을 생성해야 할까요 ? 그냥 static link를 사용해서 쉽게 생성이 가능한데 말이죠.</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">href</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>/Home/Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>Home</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span>></pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Static link (정적 링크)의 문제점은 URL Schema가 바뀔 경우 hard-coding된 URL들을 모두 찾아서 바꿔줘야 합니다. 그러므로 Route 시스템을 이용하여 outgoing URL을 동적으로 생성하는게 더 바람직합니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#11-동일-controller에서의-다른-action-method-호출" id="user-content-11-동일-controller에서의-다른-action-method-호출" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1.1 동일 Controller에서의 다른 Action Method 호출</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@Html.ActionLink(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>This is a outgoing URL<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>ActionMethod<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Html.ActionLink</code> helper method를 이용하여 rendering된 page의 html을 보면 아래와 같이 생성이 됩니다</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">href</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>/Home/ActionMethod<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>This is a outgoing URL</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span>></pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RouteConfig.cs</code>의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RouteConfig</code>에 설정된 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.MapRoute()</code>중 matching되는 패턴을 찾아서 해당 URL로 rendering됩니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#12-다른-controller-호출" id="user-content-12-다른-controller-호출" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1.2 다른 Controller 호출</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
다른 Controller로 가려면 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Html.ActionLink</code>의 overloading된 다른 함수를 사용하면 됩니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@Html.ActionLink(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>This is a outgoing URL<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>ActionMethod<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>ControllerName<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)</pre>
</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#13-추가값-전달" id="user-content-13-추가값-전달" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1.3 추가값 전달</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Controller, Action Method 이외에 추가값을 전달할 경우 익명타입을 이용하여 전달합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@Html.ActionLink(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>This is a outgoing URL<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>ActionMethod<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>ControllerName<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { id = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span> )</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
이 경우 다음과 같은 Link로 rendering 됩니다.</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">href</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>/ControllerName/ActionMethod?id=Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>This is a outgoing URL</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span>></pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
물론 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">routes.MapRoute(null, "{controller}/{action}/{id}", ...);</code>로 URL pattern이 설정되어 있을 경우에는<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">"/ControllerName/ActionMethod/Luna"</code> 로 생성합니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#14-html-attribute가-적용된-앵커a-생성" id="user-content-14-html-attribute가-적용된-앵커a-생성" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1.4 Html Attribute가 적용된 앵커(a) 생성</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
익명타입의 추가값 다음 인자로 익명타입으로 전달하면 됩니다. 전달할 추가값이 없는 경우에는 추가값에 대한 익명타입란에<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">null</code>을 넣어주면 됩니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@Html.ActionLink(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Home<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Home<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>,
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { id = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>anchorID<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, @<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>cssStyleClass<span class="pl-pds" style="box-sizing: border-box;">"</span></span> } )</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
다음과 같이 rendering 됩니다.</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">href</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>/<span class="pl-pds" style="box-sizing: border-box;">"</span></span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">id</span> = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>anchorID<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-e" style="box-sizing: border-box; color: #795da3;">class</span> = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>cssStyleClass<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>Home</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span>></pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">@class</code>를 좀 주의해야하는데, 아마도 C# keyword의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">class</code>와 중복이 되어서가 아닐까라 추측됩니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#15-정규화된-url-생성" id="user-content-15-정규화된-url-생성" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1.5 정규화된 URL 생성</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@Html.ActionLink(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Home<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Home<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>https<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>mySite.com<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>fragment<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { id = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span> },
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { id = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>anchorID<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, @<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>cssStyleClass<span class="pl-pds" style="box-sizing: border-box;">"</span></span> } )</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Controller</code> 다음에 새로 추가된 3개의 매개변수는 각각 Protocol, Server의 URL, FragmentName을 나타냅니다. 그래서 다음과 같이 rendering 됩니다.</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">href</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>https://mySite.com?id=Luna#fragment<span class="pl-pds" style="box-sizing: border-box;">"</span></span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">id</span> = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>anchorID<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-e" style="box-sizing: border-box; color: #795da3;">class</span> = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>cssStyleClass<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>Home</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span>></pre>
</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#16-링크a없이-url만-생성하기" id="user-content-16-링크a없이-url만-생성하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1.6 링크(a)없이 URL만 생성하기</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Html.ActionLink()</code> 대신 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Html.Action()</code>를 사용하면 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;"><a></a></code>없는 URL만 Text로 생성합니다. 말 그대로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Link</code>를 빼면 Link없이 URL만 생성합니다. 사용법은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Html.ActionLink()</code>와 같습다만 처음의 text 인자와 html attribute 인자가 없습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@Html.Action(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>ActionMethod<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>ControllerName<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { id = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span> )</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
의 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">/ControllerName/ActionMethod?id=Luna</code>라는 문자열을 생성합니다. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">routes.MapRoute(null, "{controller}/{action}/{id}", ...);</code>로 URL pattern이 설정되어 있을 경우에는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">/ControllerName/ActionMethod/Luna</code> 로 생성합니다.</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#2-action-method에서-outgoing-url-생성하기" id="user-content-2-action-method에서-outgoing-url-생성하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2. Action Method에서 outgoing URL 생성하기</h2>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#21-view에서-사용한-helper-method-그대로-사용하여-url생성" id="user-content-21-view에서-사용한-helper-method-그대로-사용하여-url생성" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2.1 View에서 사용한 helper method 그대로 사용하여 URL생성</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ViewResult MyActionMethod()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> url = Url.Action(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { id = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>}); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// /Home/Index?id=Luna or /Home/Index/Luna </span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> url2 = Url.RouteUrl(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { controller = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Home<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, action = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>}); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// /Home/Index or /</span>
...
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> View();
}</pre>
</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#22-다른-url로-재전송" id="user-content-22-다른-url로-재전송" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2.2 다른 URL로 재전송</h3>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#221-다른-action-method-호출" id="user-content-221-다른-action-method-호출" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2.2.1 다른 Action Method 호출</h4>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> RedirectToRouteResult MyActionMethod()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> RedirectToAction(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
다른 Controller 호출 및 segement 전달 가능한 overload된 함수들이 존재합니다.</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#222-url을-생성하여-재전송" id="user-content-222-url을-생성하여-재전송" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2.2.2 URL을 생성하여 재전송</h4>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> RedirectToRouteResult MyActionMethod()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> RedirectToRoute(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { controller = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Home<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, action = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, id = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>});
}</pre>
</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#3-특정-route를-선택적으로-사용하기" id="user-content-3-특정-route를-선택적으로-사용하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3. 특정 Route를 선택적으로 사용하기</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
이제껏 Routing system이 URL, Link를 Rule에 따라서 생성하였습니다. 우리가 직접 Route를 선택하는 방법도 있습니다. (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">routes.MapRoute()</code>의 첫번째 인자로 명칭을 입력했는데 그것을 명시적으로 사용하면 됩니다.)</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">routes.MapRoute(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Route1<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>{controller}/{action}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
routes.MapRoute(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Route2<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>App/{action}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { controller = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Home<span class="pl-pds" style="box-sizing: border-box;">"</span></span> });</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위와 같이 설정된 경우</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@Html.ActionLink(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Customer Infomation<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Customer<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
는 항상 다음의 Link로 생성됩니다.</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">href</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>/Customer/Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>Customer Information</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span>></pre>
</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#31-view에서-특정-route-사용하기" id="user-content-31-view에서-특정-route-사용하기" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.1 View에서 특정 Route 사용하기</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
만약 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Route2</code>를 이용한 Link의 생성을 원할 경우 다음과 같이 명시적으로 Route Name을 선택 할 수 있습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@Html.ActionLink(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Customer Infomation<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Route2<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Customer<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)</pre>
</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">href</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>/Home/Index?Length=5<span class="pl-pds" style="box-sizing: border-box;">"</span></span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">Length</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>8<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>Customer Information</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">a</span>></pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
사용자가 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Customer</code>라는 Controller를 사용하라고 했지만, 해당 Route Pattern에 의해서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">HomeController</code>로 연결이 됩니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#32-route-attribute에서-특정-route를-지정" id="user-content-32-route-attribute에서-특정-route를-지정" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.2 Route Attribute에서 특정 Route를 지정</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">[Route(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Add/{user}/{id:int}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, Name=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>AddRoute<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)]
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> Add(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> user, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> id)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> $<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Add User - Name : {user} , ID : {id}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>;
}</pre>
</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#4-area" id="user-content-4-area" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4. Area</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Project에서 Area를 추가 할 수 있습니다. 각 영역(Area)별로 다른 Controller, Model, View 및 다른 Route 규칙 등을 가집니다. Area의 특징은 다음과 같습니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Area별로 다른 Folder안에 MVC Project의 구조들을 그대로 가지고 있습니다.</li>
<li style="box-sizing: border-box;">Area내의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">(Area명칭)AreaRegistration.cs</code> 내에 Route 규칙을 정의합니다.</li>
<li style="box-sizing: border-box;">Project의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Global.asax.cs</code>내에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">AreaRegistration.RegisterAllAreas();</code>를 호출하는 부분이 추가됩니다.</li>
<li style="box-sizing: border-box;">Attribute로 Routing하는 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">[RouteArea("Area명칭")]</code>으로 적용이 가능합니다.</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Html.ActionLink()</code>에서 Area를 명시할 경우에는 추가정보를 적는 무명 타입란에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">area</code>를 지정하면 됩니다.</li>
</ul>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@Html.ActionLink(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Go to Another Area<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { area = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Admin<span class="pl-pds" style="box-sizing: border-box;">"</span></span> })</pre>
</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/03.Route.adv.md#5-disk-file에-대한-요청" id="user-content-5-disk-file에-대한-요청" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5. Disk file에 대한 요청</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px;">
정적 파일 (Image, html, JavaScript 등...)에 대한 접근은 그냥 해당 주소를 그대로 적어주면 접근이 됩니다. Routing system은 전달받은 URL이 disk상의 file과 매칭될 경우 Routing pattern과는 상관없이 해당 file을 전달해 줍니다. 단, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RouteConfig.cs</code>에서<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">routes.RouteExistingFiles = true;</code>로 설정할 경우 file을 찾기전에 Routing pattern을 먼저 적용합니다. 이렇게 설정한 경우 특정 패턴에 대해서는 file로 접근을 먼저 시키고자 할때는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">routes.IgnoreRoute("Content/{filename}.html")</code>과 같은 형식으로 적용이 가능합니다.</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-3475592721824838442016-05-10T22:10:00.000+09:002016-05-11T11:07:25.558+09:00WebSockets in .NET Core<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
WebSockets in .NET Core</h1>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.NET Core</code> (현재는 ASP.NET 5)로 간단한 Web Socket을 구현하는 예제코드와 설명입니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
작업은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Visual Studio 2015</code> , <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ASP.NET5-rc1</code> 으로 진행하였습니다.</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/CSharp/tree/master/ASP.NET/WebSocket5#개요" id="user-content-개요" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>개요</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<ul style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.NET Core</code> (ASP.NET 5 Template)로 Web Application Project를 생성</li>
<li style="box-sizing: border-box;">Server : Echo Server 를 Web Socket으로 구현<ul style="box-sizing: border-box; margin-bottom: 0px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Client에서 전달한 Text Message를 그대로 전달</li>
</ul>
</li>
<li style="box-sizing: border-box;">Client : jQuery를 이용한 간단한 Web Socket page를 생성</li>
<li style="box-sizing: border-box;">여러 Client가 접속한 경우 접속된 모든 Client에게 echo message를 전달</li>
</ul>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/CSharp/tree/master/ASP.NET/WebSocket5#1-project-생성" id="user-content-1-project-생성" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1. Project 생성</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">C#</code> -> <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Web</code> -> <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ASP.NET Web Application</code> 선택 후 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ASP.NET 5 Templates</code> -> <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Web Appliacaion</code>으로 Project를 생성합니다.<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ASP.NET 5 Templates</code>가 설치되지 않은 경우 아래 설치 버튼이 활성화되며, 설치가 짧은 순간에 끝나지는 않으니 조금 기다리셔야 합니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/CSharp/blob/master/ASP.NET/WebSocket5/image/ws5.01.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 WS5.01" src="https://github.com/DevStarSJ/CSharp/raw/master/ASP.NET/WebSocket5/image/ws5.01.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a><br style="box-sizing: border-box;" /><a href="https://github.com/DevStarSJ/CSharp/blob/master/ASP.NET/WebSocket5/image/ws5.02.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 WS5.02" src="https://github.com/DevStarSJ/CSharp/raw/master/ASP.NET/WebSocket5/image/ws5.02.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/CSharp/tree/master/ASP.NET/WebSocket5#2-server-web-socket-구현" id="user-content-2-server-web-socket-구현" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2. Server Web Socket 구현</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Startup.cs</code> 파일을 열어서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">public void Configure()</code> 함수에 아래 Code를 추가합니다. 단 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">app.UseMvc()</code>보다 위에 위치해야 합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">app.UseWebSockets();
app.Use(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">async</span> (http, next) =>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (http.WebSockets.IsWebSocketRequest)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> webSocket = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">await</span> http.WebSockets.AcceptWebSocketAsync())
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (webSocket != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span> && webSocket.State == WebSocketState.Open)
{
<span class="pl-c" style="box-sizing: border-box; color: #969896;">// Handle the socket here</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (webSocket.State == WebSocketState.Open)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> token = CancellationToken.None;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> buffer = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> ArraySegment<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">4096</span>]);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> received = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">await</span> webSocket.ReceiveAsync(buffer, token);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">switch</span> (received.MessageType)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">case</span> WebSocketMessageType.Text:
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> request = Encoding.UTF8.GetString(buffer.Array, buffer.Offset, buffer.Count);
<span class="pl-c" style="box-sizing: border-box; color: #969896;">// Handle request here</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">await</span> webSocket.SendAsync(buffer, WebSocketMessageType.Text, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>, token);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">break</span>;
}
}
}
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">else</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">await</span> next();
}
});</pre>
</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
위 Code가 실행되려면 Assembly를 하나 추가해 줘야합니다.</div>
<blockquote style="border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 4px; box-sizing: border-box; color: #777777; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin: 0px 0px 16px; padding: 0px 15px;">
<div style="box-sizing: border-box;">
"Microsoft.AspNet.WebSockets.Server": "1.0.0-rc1-final"</div>
</blockquote>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Nuget package manager</code>를 사용하지 않더라도 오류가 발생한 Code에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Ctrl + .</code> (Quick Action)을 이용하면 자동으로 추가가 됩니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/CSharp/blob/master/ASP.NET/WebSocket5/image/ws5.03.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 WS5.03" src="https://github.com/DevStarSJ/CSharp/raw/master/ASP.NET/WebSocket5/image/ws5.03.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
또 필요한 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">namespace</code>를 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">using</code>에 추가를 해주는 작업도 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Ctrl +.</code>으로 쉽게 작업이 가능합니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/CSharp/blob/master/ASP.NET/WebSocket5/image/ws5.04.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 WS5.04" src="https://github.com/DevStarSJ/CSharp/raw/master/ASP.NET/WebSocket5/image/ws5.04.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
Client에서 Connection을 연결할때마다 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">app.Use</code>안에 선언한 함수가 실행됩니다. Request가 아닌 경우에는 그냥 무시 (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">next();</code>)를 하며 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Request</code>인 경우에는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Accept</code>수행 후 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Receive</code>작업을 기다리며 Pending 상태가 됩니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> webSocket = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">await</span> http.WebSockets.AcceptWebSocketAsync();
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (webSocket != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span> && webSocket.State == WebSocketState.Open)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (webSocket.State == WebSocketState.Open)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> token = CancellationToken.None;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> buffer = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> ArraySegment<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">4096</span>]);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> received = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">await</span> webSocket.ReceiveAsync(buffer, token);
<span class="pl-c" style="box-sizing: border-box; color: #969896;">// Processing received message</span>
}
}</pre>
</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
Message가 도착하면 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">await webSocket.ReceiveAsync()</code>의 Pending이 해제되면서 다음 Line을 수행합니다. 현재 예제는 Text 타입에 대해서만 그대로 Client에게 echo message를 전달하고 있습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">switch</span> (received.MessageType)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">case</span> WebSocketMessageType.Text:
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">await</span> webSocket.SendAsync(buffer, WebSocketMessageType.Text, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>, token);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">break</span>;
}</pre>
</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/CSharp/tree/master/ASP.NET/WebSocket5#3-client-web-socket-구현" id="user-content-3-client-web-socket-구현" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3. Client Web Socket 구현</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
편의상 추가로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Controller</code>를 추가하지 않고 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Home</code> Controller에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Chat</code>이라는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Action Method</code>를 추가하도록 하겠습니다.<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Controllers/HomeController.cs</code>파일을 열어서 아래 Action을 추가해 주세요.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ActionResult Chat()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> View();
}</pre>
</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
아무런 내용없이 그냥 기본 Routing되는 View를 return합니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Views/Home</code> 폴더 아래에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Chat.cshtml</code>파일을 추가해서 다음과 같이 입력해주세요.</div>
<div class="highlight highlight-text-html-basic" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">@{
ViewData["Title"] = "WebSocket Chat Page";
}
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">form</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">id</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>chatform<span class="pl-pds" style="box-sizing: border-box;">"</span></span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">action</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span><span class="pl-pds" style="box-sizing: border-box;">"</span></span>>
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">input</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">id</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>inputbox<span class="pl-pds" style="box-sizing: border-box;">"</span></span> />
</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">form</span>>
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">div</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">id</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>message<span class="pl-pds" style="box-sizing: border-box;">"</span></span> />
<<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">script</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">src</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>//code.jquery.com/jquery-1.11.0.min.js<span class="pl-pds" style="box-sizing: border-box;">"</span></span>></<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">script</span>>
<span class="pl-s1" style="box-sizing: border-box;"><<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">script</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">type</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>text/javascript<span class="pl-pds" style="box-sizing: border-box;">"</span></span>></span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">$</span>(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">document</span>).<span class="pl-en" style="box-sizing: border-box; color: #795da3;">ready</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">function</span>()</span>
<span class="pl-s1" style="box-sizing: border-box;"> {</span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> username <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">=</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">prompt</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span>Enter your name: <span class="pl-pds" style="box-sizing: border-box;">'</span></span>);</span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> uri <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">=</span> <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span>ws://localhost:9258<span class="pl-pds" style="box-sizing: border-box;">'</span></span>;</span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> ws <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">=</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">WebSocket</span>(uri);</span>
<span class="pl-s1" style="box-sizing: border-box;"></span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-smi" style="box-sizing: border-box;">ws</span>.<span class="pl-en" style="box-sizing: border-box; color: #795da3;">onopen</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">=</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">function</span> () {</span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">$</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span>#message<span class="pl-pds" style="box-sizing: border-box;">'</span></span>).<span class="pl-en" style="box-sizing: border-box; color: #795da3;">prepend</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span><div>Connected.</div><span class="pl-pds" style="box-sizing: border-box;">'</span></span>);</span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">$</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span>#chatform<span class="pl-pds" style="box-sizing: border-box;">'</span></span>).<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">submit</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">function</span> (<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">event</span>) {</span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-smi" style="box-sizing: border-box;">ws</span>.<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">send</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span><strong><span class="pl-pds" style="box-sizing: border-box;">'</span></span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">+</span> username <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">+</span> <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span> : </strong><span class="pl-pds" style="box-sizing: border-box;">'</span></span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">+</span><span class="pl-en" style="box-sizing: border-box; color: #795da3;">$</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span>#inputbox<span class="pl-pds" style="box-sizing: border-box;">'</span></span>).<span class="pl-en" style="box-sizing: border-box; color: #795da3;">val</span>());</span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">$</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span>#inputbox<span class="pl-pds" style="box-sizing: border-box;">'</span></span>).<span class="pl-en" style="box-sizing: border-box; color: #795da3;">val</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span><span class="pl-pds" style="box-sizing: border-box;">'</span></span>);</span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">event</span>.<span class="pl-en" style="box-sizing: border-box; color: #795da3;">preventDefault</span>();</span>
<span class="pl-s1" style="box-sizing: border-box;"> });</span>
<span class="pl-s1" style="box-sizing: border-box;"> };</span>
<span class="pl-s1" style="box-sizing: border-box;"></span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-smi" style="box-sizing: border-box;">ws</span>.<span class="pl-en" style="box-sizing: border-box; color: #795da3;">onerror</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">=</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">function</span> (<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">event</span>) {</span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">$</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span>#message<span class="pl-pds" style="box-sizing: border-box;">'</span></span>).<span class="pl-en" style="box-sizing: border-box; color: #795da3;">prepend</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span><div>ERROR</div><span class="pl-pds" style="box-sizing: border-box;">'</span></span>);</span>
<span class="pl-s1" style="box-sizing: border-box;"> };</span>
<span class="pl-s1" style="box-sizing: border-box;"></span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-smi" style="box-sizing: border-box;">ws</span>.<span class="pl-en" style="box-sizing: border-box; color: #795da3;">onmessage</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">=</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">function</span> (<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">event</span>) {</span>
<span class="pl-s1" style="box-sizing: border-box;"> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">$</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span>#message<span class="pl-pds" style="box-sizing: border-box;">'</span></span>).<span class="pl-en" style="box-sizing: border-box; color: #795da3;">prepend</span>(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span><div><span class="pl-pds" style="box-sizing: border-box;">'</span></span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">+</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">event</span>.<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">data</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">+</span> <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">'</span></div><span class="pl-pds" style="box-sizing: border-box;">'</span></span>);</span>
<span class="pl-s1" style="box-sizing: border-box;"> };</span>
<span class="pl-s1" style="box-sizing: border-box;"> });</span>
<span class="pl-s1" style="box-sizing: border-box;"></<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">script</span>></span></pre>
</div>
<ul style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">접속주소(<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">uri</code>) 값은 Server 실행시 port 번호를 보고 수정해 주세요.</li>
</ul>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">jQuery</code>를 nuget으로 설치해도 되지만 편의상 online으로 참조하였습니다.</div>
<ul style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">해당 View가 열릴때 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">WebSocket()</code>으로 접속합니다.</li>
<li style="box-sizing: border-box;">접속에 성공하면 (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ws.onopen</code>) <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">chatform</code>의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">submit</code>작업으로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ws.send()</code>를 실행하도록 설정합니다.</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">WebSocket</code>으로 부터 message를 전달받으면 (<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ws,onmessage</code>)를 화면에 출력합니다.</li>
</ul>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
최대한 군더더기 없이 간단하게 구현하였습니다.</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/CSharp/tree/master/ASP.NET/WebSocket5#4-실행" id="user-content-4-실행" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4. 실행</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">F5</code>를 눌러서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Debug</code> 수행후 접속주소에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">/Home/Chat</code>를 붙여서 우리가 생성한 View를 열어주세요.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/CSharp/blob/master/ASP.NET/WebSocket5/image/ws5.06.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 WS5.06" src="https://github.com/DevStarSJ/CSharp/raw/master/ASP.NET/WebSocket5/image/ws5.06.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
이름을 입력해서 접속을 한 후에, 채팅 메세지를 입력하면 화면에 메세지가 출력됩니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/CSharp/blob/master/ASP.NET/WebSocket5/image/ws5.07.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 WS5.07" src="https://github.com/DevStarSJ/CSharp/raw/master/ASP.NET/WebSocket5/image/ws5.07.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
위 메세지는 Client에서 출력을 한 것이 아니라 Server로 부터 전달받은 메세지 입니다. 믿기 힘드시겠다면, 여러 Client끼리 Chat을 할 수 있도록 Server를 수정해 보도록 하겠습니다.</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/CSharp/tree/master/ASP.NET/WebSocket5#5-server를-여러-client에게-메세지-전달하도록-수정" id="user-content-5-server를-여러-client에게-메세지-전달하도록-수정" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5. Server를 여러 Client에게 메세지 전달하도록 수정</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Startup.cs</code> 파일의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">public class Startup</code>에 thread-safety한 map을 하나 선언합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">ConcurrentDictionay<WebSocket,<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span>> _sockets = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> ConcurrentDictionay<WebSocket,<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span>>();</pre>
</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/CSharp/blob/master/ASP.NET/WebSocket5/image/ws5.05.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 WS5.05" src="https://github.com/DevStarSJ/CSharp/raw/master/ASP.NET/WebSocket5/image/ws5.05.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
다음으로는 Client에서 접속시 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">_sockets</code>에 socket들을 저장해 놓습니다. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">// Handle the socket here</code> 바로 윗 부분에 아래 Code를 추가합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">_sockets.TryAdd(webSocket, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">false</span>);</pre>
</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
Client에게 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">SendAsync()</code>를 하는 부분을 전체 Client에게 전송하도록 수정합니다. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">// Handle request here</code> 아래에 있는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">await webSocket.SendAsync()</code>줄을 지우고 아래 Code를 입력해주세요.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> socket <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> _sockets.Keys)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">await</span> socket.SendAsync(buffer, WebSocketMessageType.Text, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>, token);
}</pre>
</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">while(...) { ... }</code> 아래에 다음과 같이 접속 종료시 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">_sockets</code>에서 삭제하는 Code도 추가합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span> temp;
_sockets.TryRemove(webSocket, out temp);</pre>
</div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/CSharp/tree/master/ASP.NET/WebSocket5#6-실행" id="user-content-6-실행" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>6. 실행</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
이제 실행하여 Browser를 2개 띄워서 Test해보면 한 쪽에서 입력해도 양쪽으로 모두 메세지가 출력되는 것을 확인 할 수 있습니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://github.com/DevStarSJ/CSharp/blob/master/ASP.NET/WebSocket5/image/ws5.08.png?raw=true" style="box-sizing: border-box; color: #4078c0; text-decoration: none;" target="_blank"><img alt="그림 WS5.08" src="https://github.com/DevStarSJ/CSharp/raw/master/ASP.NET/WebSocket5/image/ws5.08.png?raw=true" style="background-color: white; border-style: none; box-sizing: content-box; max-width: 100%;" /></a></div>
</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/CSharp/tree/master/ASP.NET/WebSocket5#참조-site" id="user-content-참조-site" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>참조 Site</h2>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<ul style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">ASP.NET 5 Server Web Socket</li>
</ul>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://medium.com/@turowicz/websockets-in-asp-net-5-6094319a15a2#.rpft766wb" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://medium.com/@turowicz/websockets-in-asp-net-5-6094319a15a2#.rpft766wb</a></div>
<ul style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Client jQuery Web Socket</li>
</ul>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px;">
<a href="https://blogs.msdn.microsoft.com/youssefm/2012/07/17/building-real-time-web-apps-with-asp-net-webapi-and-websockets" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://blogs.msdn.microsoft.com/youssefm/2012/07/17/building-real-time-web-apps-with-asp-net-webapi-and-websockets</a></div>
</h1>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
</h1>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-82376383045442347962016-05-06T16:39:00.001+09:002016-05-10T22:16:35.722+09:00ASP.NET MVC URL Routing #1<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
ASP.NET MVC URL Routing</h1>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#1-url-routing이란" id="user-content-1-url-routing이란" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1. URL Routing이란</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
ASP.NET MVC로 생성된 Web Application의 경우 아래와 같은 형식으로 접근이 가능합니다.</div>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; max-width: initial; overflow: initial; padding: 0px; word-break: normal; word-wrap: normal;">http://mySite.com/Home/Index
</code></pre>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
기본 URL Routing 형식으로 해석을 할 경우</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">mySite.com</code> : Web Application의 주소</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Home</code> : Controller 명칭</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Index</code> : Action method 명칭</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
으로 동작합니다.</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#2-routeconfigcs" id="user-content-2-routeconfigcs" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2. RouteConfig.cs</h2>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#21-globalasaxcs-를-보면-아래와-같이-route를-설정하는-code가-있습니다" id="user-content-21-globalasaxcs-를-보면-아래와-같이-route를-설정하는-code가-있습니다" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2.1 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: inherit; margin: 0px; padding: 0.2em 0px;">Global.asax.cs</code> 를 보면 아래와 같이 Route를 설정하는 Code가 있습니다.</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">RouteConfig.RegisterRoutes(RouteTable.Routes);</pre>
</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#22-app_startrouteconfigcs-파일에-routeconfigregisterroute라는-static-method가-있습니다" id="user-content-22-app_startrouteconfigcs-파일에-routeconfigregisterroute라는-static-method가-있습니다" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2.2 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: inherit; margin: 0px; padding: 0.2em 0px;">\App_Start\RouteConfig.cs</code> 파일에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: inherit; margin: 0px; padding: 0.2em 0px;">RouteConfig.RegisterRoute</code>라는 static method가 있습니다.</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
매개변수로 전달받은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RouteCollection route</code>에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">.MapRoute()</code>로 Routing 규칙들을 추가하는 Code들이 있습니다.</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#3-maproute-parameters" id="user-content-3-maproute-parameters" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3. <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: inherit; margin: 0px; padding: 0.2em 0px;">.MapRoute()</code> parameters</h2>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#31-name" id="user-content-31-name" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.1 name</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Mapping할 Routing 명칭입니다. 별 의미가 없으므로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">null</code>로 입력해도 됩니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#32-url" id="user-content-32-url" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.2 url</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
URL 패턴을 지정합니다.<br />
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Web Application 주소/</code> 다음부터의 패턴을 지정 할 수 있습니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Static URL Segment : url안에 일반 문자열로 입력이 가능합니다.</li>
<li style="box-sizing: border-box;">Dynamic URL Segment : 중괄호<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">{ }</code>내에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">변수명</code>을 입력하면 해당 ActionMethod에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RouteData.Vaues["변수명"]</code>으로 읽을 수 있습니다.</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
ex) <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">url: "Page{page}"</code>로 설정할 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://mySite.com/Page3</code>으로 접근하면 해당 Route로 mapping되며 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">{page}</code>에 3의 값이 전달됩니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
아래의 3가지 명칭은 변수명으로 지정이 불가능 합니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">controller</code> : Controller 이름을 지정합니다.</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">action</code> : Action Method 이름을 지정합니다.</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">area</code> : Area를 지정합니다.</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
만약 해당 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Controller</code>의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Action Method</code>의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">argument</code>와 같은 변수명으로 Mapping하게되면 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Action Method</code>의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">argument</code>로 그 값을 전달합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
ex) <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">url : "{controller}/{action}/{id}</code>로 설정하였을 경우,<br />
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://mySite.com/Product/Index/Luna</code>란 주소로 접근할 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">ProductController</code>에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Index(string id)</code>라는 Action Method가 있으면 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">id</code>라는 argument를 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Luna</code>로 전달하게 됩니다.</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#가변길이-parameter" id="user-content-가변길이-parameter" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>가변길이 parameter</h4>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">{controller}/{action}/{*all}</code> 이라고 정의한 경우 segment가 3개 이상인 경우 모두 all변수에 할당되어서 Matching됩니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#33-defaults" id="user-content-33-defaults" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.3 defaults</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
기본값 설정이 가능합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">defaults : <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { controller = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Product<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, action = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Index<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, id = <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span> }</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
와 같은 형식으로 지정이 가능합니다.<br />
해당 URL와 매칭되는 경우 URL 패턴의 변수명과 같은 곳에 아무런 값도 안 넣은 경우 default로 설정된 값이 사용되며,<br />
URL 패턴에 없는 변수명을 default로 설정한 경우 해당 변수명(또는 controller, action)에 대해서는 default로 설정된 값으로 동작합니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Optinal로 설정될 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">id = UrlParameter.Optional</code> 해당 segment는 입력되지 않아도 Matching 된 것으로 간주됩니다.</li>
</ul>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#34-constratins" id="user-content-34-constratins" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.4 constratins</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
URL parameter에 제약사항을 설정합니다.</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#341-regular-expression-정규표현식을-이용하여-검사" id="user-content-341-regular-expression-정규표현식을-이용하여-검사" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.4.1 Regular Expression (정규표현식)을 이용하여 검사</h4>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">constraints: <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { page = <span class="pl-s" style="box-sizing: border-box; color: #183691;">@"\d+"</span> }</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위의 경우 page의 값은 숫자형식만 가능하게 됩니다.</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#342-여러-개의-값을-지정하여-검사" id="user-content-342-여러-개의-값을-지정하여-검사" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.4.2 여러 개의 값을 지정하여 검사</h4>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">constraints: <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { page = <span class="pl-s" style="box-sizing: border-box; color: #183691;">@"\d+"</span>, action=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>^Index$|^About$<span class="pl-pds" style="box-sizing: border-box;">"</span></span>}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위의 경우 추가로 action segment가 Index 나 About인 URL만 Matching합니다.</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#343-http-method를-사용하여-검사" id="user-content-343-http-method를-사용하여-검사" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.4.3 HTTP Method를 사용하여 검사</h4>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">constraints: <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { page = <span class="pl-s" style="box-sizing: border-box; color: #183691;">@"\d+"</span>, action=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>^Index$|^About$<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
httpMethod = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> HttpMethodConstarint(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>GET<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>POST<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위의 경우 추가로 GET, POST 요청만 처리하도록 제한합니다.</div>
<h4 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.25em; line-height: 1.4; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#344-형식범위-등의-제약조건" id="user-content-344-형식범위-등의-제약조건" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.4.4 형식,범위 등의 제약조건</h4>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">constraints: <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> { page = <span class="pl-s" style="box-sizing: border-box; color: #183691;">@"\d+"</span>, action=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>^Index$|^About$<span class="pl-pds" style="box-sizing: border-box;">"</span></span>,
httpMethod = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> HttpMethodConstarint(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>GET<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>POST<span class="pl-pds" style="box-sizing: border-box;">"</span></span>),
id = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> RangeRouteConstraint(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">10</span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">20</span>) }</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위의 경우 추가로 id값이 10에서 20 사이에 경우에만 허용합니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Web.Mvc.Routing.Constarints<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span></pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위 namespace에 제약조건 class들이 정의되어 있으며 목록은 아래 link에서 확인이 가능합니다.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://msdn.microsoft.com/ko-kr/library/system.web.mvc.routing.constraints(v=vs.118).aspx" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://msdn.microsoft.com/ko-kr/library/system.web.mvc.routing.constraints(v=vs.118).aspx</a></div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#35-namespaces" id="user-content-35-namespaces" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3.5 namespaces</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">string[]</code> 타입으로 여러개의 namespace 값을 전달 받습니다.<br />
해당 값을 전달받은 경우 먼저 전달받은 namespace내의 controller부터 찾게 됩니다.<br />
배열로 전달받은 namespace들은 모두 동일한 우선순위를 가지게 됩니다.<br />
만약 특정 namespace에 우선순의를 두고자 할 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">MapRoute()</code>를 따로 설정하여야 합니다.</div>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#4-segment-matching-규칙" id="user-content-4-segment-matching-규칙" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4. Segment Matching 규칙</h2>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">위에 설정한 규칙부터 차례대로 적용합니다.</li>
<li style="box-sizing: border-box;">그러므로 동일한 segment를 가지는 Route를 여러개 설정할 경우 좀 더 특수한 경우를 먼저 선언해야 적용됩니다.</li>
</ul>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
ex)</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">routes.MapRoute(
name: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>,
url: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna{controller}/{action}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
);
routes.MapRoute(
name: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>,
url: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>{controller}/{action}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
);</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위와 같이 설정했을 경우에는</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://mySite.com/LunaProduct/Index</code>로 접근할 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Product</code> controller의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Index</code> Action Method를 실행하게 되며,</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://mySite.com/Product/Index</code>로 접근할 경우에도 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Product</code> controller의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Index</code> Action Method를 실행하게 됩니다.</li>
</ul>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">routes.MapRoute(
name: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>,
url: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>{controller}/{action}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
);
routes.MapRoute(
name: <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>,
url: <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna{controller}/{action}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
);
</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위와 같이 설정되었을 경우 segment가 2개인 경우 무조건 위에 것만 처리되며 아래에 설정된 URL패턴으로는 검사하지 않습니다.<br />
즉,</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://mySite.com/LunaProduct/Index</code>로 접근할 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">LunaProduct</code> controller의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Index</code> Action Method를 실행하게 되며, (없으면 404 오류)</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://mySite.com/Product/Index</code>로 접근할 경우에도 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Product</code> controller의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Index</code> Action Method를 실행하게 됩니다.</li>
</ul>
<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 1em; padding-bottom: 0.3em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#5-attribute-routing" id="user-content-5-attribute-routing" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5. Attribute Routing</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
위에 살펴본 것은 Rule-based Routing (규칙기반 라우팅)이었습니다.<br />
각각의 Action Method에 Attribute를 이용하여 적용하는 방법도 있습니다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#51-attribute-route가-동작하도록-설정" id="user-content-51-attribute-route가-동작하도록-설정" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5.1 Attribute Route가 동작하도록 설정</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RouteConfig.cs</code>의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">RegisterRoutes(RouteCollection routes)</code>함수 내에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">routes.MapMvcAttributeRoutes();</code>를 호출하면 Attribute 기반의 Route 기능을 활성화합ㄴ다.</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#52--attribute-route-설정" id="user-content-52--attribute-route-설정" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5.2 Attribute Route 설정</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">CustomerController</span> : <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">Controller</span>
{
[Route(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Test<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)]
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ActionResult <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Index</span>()
{
...
}
}</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
와 같이 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://mySite.com/Test</code>로 접근할 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Customer</code> Controller의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Index</code> Action method가 실행됩니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">[Route(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>User/Add/{user}/{id}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>]
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> Create(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> user, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> id) { ... }</pre>
</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">user</code>와 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">id</code>가 인자로 전달됩니다.<br />
각각의 인자에 제약조건 설정도 가능합니다.</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">{id:int}</code> : id는 int 값으로전달이 가능합니다.</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">{password:alpha:length(6)}</code> : password에 alpha와 length 2가지 제약조건을 설정합니다.</li>
</ul>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/MVC/02.Route.MD#53-prefix접두어-사용" id="user-content-53-prefix접두어-사용" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>5.3 Prefix(접두어) 사용</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;">[RoutePrefix(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>User<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)]
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">UserController</span> : <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">Controller</span>
{
[Route(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>~/Test<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)]
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ActionResult <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Index</span>() { ... }
[Route(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Add/{user}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)]
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> ActionResult <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Create</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">user</span>) { ... }
}</pre>
</div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 0px !important; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://mySite.com/User/Add/Luna</code>로 접근할 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Create</code> Action method가 실행됩니다.</li>
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">http://mySite.com/Test</code>로 접근할 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Index</code>가 실행됩니다. 즉, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">~/</code>로 설정할 경우 Prefix가 무시됩니다.</li>
</ul>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-61255339216620672482016-05-01T13:50:00.000+09:002016-05-02T07:32:23.950+09:00Using async method in static constructor ( C# )<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
Using async method in static constructor ( C# )</h1>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code> 내부에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async</code> 함수를 호출할 경우 제대로 동작을 하지 않습니다.<br style="box-sizing: border-box;" />(왠만해서는 이런식으로 code가 이루어지지 않도록 해야하지만, 어쩔수 없이 이렇게 사용해야 할 경우가 발생 할 수 있습니다.)</div>
<ul style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">참고로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>는 해당 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">class</code>가 가장 먼저 사용 될 때 실행됩니다.</li>
</ul>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/CSharp/StaticConstructorAsync/README.md#clr-internal-lock" id="user-content-clr-internal-lock" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>CLR-internal lock</h3>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>는 정확히 1번만 실행되어야 합니다.<br style="box-sizing: border-box;" />그러므로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>가 실행될 때는 내부적으로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">CLR-internal lock</code>으로 해당 code를 1번만 실행되도록 수행합니다.<br style="box-sizing: border-box;" />이렇게 lock이 걸린 상태에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async</code>를 이용하여 다른 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">thread</code>로 작업을 수행할 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">thread-lock</code>과 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">CLR-internal lock</code>간의<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">deadlock</code>이 발생해서 안된다고 생각 할 수 있습니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="http://blogs.msdn.com/b/pfxteam/archive/2011/05/03/10159682.aspx" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">http://blogs.msdn.com/b/pfxteam/archive/2011/05/03/10159682.aspx</a> 링크의 posting을 보면 설명이 되어 있습니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<a href="http://blog.stephencleary.com/2013/01/async-oop-2-constructors.html" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">http://blog.stephencleary.com/2013/01/async-oop-2-constructors.html</a> 링크의 posting에도 절대로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>에서<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async</code> 작업을 하는 건 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">BAD CODE!!!</code>라고 경고하고 있습니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
참고로 위 Link에 있는 posting에서 안된다고 하는 예제들을 만들어서 해보면 잘 됩니다.<br style="box-sizing: border-box;" />진짜로 async 한 작업 (DB, Network, disk I/O) 을 이용하는 경우에는 안 될 수 있지만, 단순히 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async</code> 키워드만 붙였다고 해서<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">deadlock</code>이 재현되지는 않습니다.</div>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/CSharp/StaticConstructorAsync/README.md#내가-상상하는-안되는-이유" id="user-content-내가-상상하는-안되는-이유" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>내가 상상하는 안되는 이유...</h3>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
위 내용들은 어느정도 검증(?)된 posting을 바탕으로 한 내용이구요.<br style="box-sizing: border-box;" />제가 생각했을 때 안되는 이유를 말씀드리겠습니다.<br style="box-sizing: border-box;" />어디까지나 혼자만의 상상의 나래로 기록한 썰(?)이지, 검증된 내용은 아닙니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">constructor</code>라 함은 object가 생성될때 가장 먼저 해줘야 하는 작업입니다.<br style="box-sizing: border-box;" /><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>는 해당 class의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static properties, method</code>들이 사용되기 전에 먼저 실행되어야 할 code들을 모아둔 곳이어야 겠죠.<br style="box-sizing: border-box;" /><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">C++98</code>까지의 modern하지 않은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">C++</code>에서는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">member variable</code> (C# 의 properties) 들을 초기화 하는 작업을 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">constructor</code>에서 했습니다.<br style="box-sizing: border-box;" />C++11 에서는 C# 과 같이 선언과 동시에 초기값를 바로 써 줄 수 있지만, 아마 동작은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">constuctor</code>실행시 할 거라 생각됩니다.<br style="box-sizing: border-box;" />C# 도 편의상 선언과 동시에 초기값을 써 줄 수는 있지만, 아마 동작은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">constuctor</code> 수행시 할 거라 생각됩니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constuctor</code>는 해당 class의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static method</code>보다 먼저 수행되어야 할 code라는 썰을 전제로 생각해 본다면,<br style="box-sizing: border-box;" />그럼 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>에서 다른 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static method</code>를 호출하면 어떻게 될까요 ???<br style="box-sizing: border-box;" />아마 그 시점에 해당 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static method</code>의 code를 실행가능 하도록 해주지 않을까 예상됩니다.<br style="box-sizing: border-box;" />(memory에 load한다던지, 아니면 다른 방법으로 실행가능하게 뭔가 조치를 해주겠죠.)<br style="box-sizing: border-box;" />이게 동일 thread 내에서는 당연히 판단이 가능하여서 아무런 문제가 없이 동작하지만,<br style="box-sizing: border-box;" /><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>가 수행중이고 아직 완료되지 않은 시점에,<br style="box-sizing: border-box;" />갑자기 다른 thread가 해당 class의 다른 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static method</code>에 접근을 할 경우에는 어떻게 해야 할까요 ?<br style="box-sizing: border-box;" />아마 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>가 수행중이니 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">CLR-internal lock</code>으로 보호되고 있겠지요 ?<br style="box-sizing: border-box;" />이 lock은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>가 수행을 종료해야 풀리겠구요.<br style="box-sizing: border-box;" />그런데 그 다른 thread가 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static method</code>를 수행완료해야만 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>가 종료될 수 있다면 ??? 여기서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">dead lock</code>이 발생할 것입니다.<br style="box-sizing: border-box;" />동일 thread 내에서는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">CLR-internal lock</code> 내부에서 수행이 되도록 잘 설계 했습니다. 당연히 다른 thread에서 접근은 lock으로 보호해야하는 건 맞구요.<br style="box-sizing: border-box;" />하지만, 해당 thread가 종료되길 기다리는게 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>인 경우에는 ???</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
그래서 아래에 제가 적어놓은 해결 방법 중에,<br style="box-sizing: border-box;" /><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>에서 자신의 class가 아닌 다른 class의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async</code> 작업을 기다리는 경우는 잘 동작합니다. 이것을 이용해서<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async</code>한 작업을 별도 class로 나누면 역시나 잘 동작합니다.</div>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/CSharp/StaticConstructorAsync/README.md#deadlock-in-async-method-in-static-constuctor" id="user-content-deadlock-in-async-method-in-static-constuctor" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>Deadlock in async method in static constuctor</h3>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
강제로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">deadlock</code>을 발생시키는 code를 만들어 보았습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Collections.Generic<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Threading.Tasks<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StaticClass</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> IEnumerable<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Names</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StaticClass</span>()
{
Names = Task.Run(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">async</span> () => { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">await</span> GetNamesAsync(); }).Result;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">async</span> Task<IEnumerable<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>>> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">GetNamesAsync</span>()
{
List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> nameList = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>>
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Star<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
};
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> nameList;
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Program</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Main</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string[]</span> <span class="pl-smi" style="box-sizing: border-box;">args</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> name <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> StaticClass.Names)
{
System.Console.WriteLine(name);
}
}
}</pre>
</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
이런 code를 어떻게 고쳐야 하는지 3가지 방법을 살펴보겠습니다.</div>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/CSharp/StaticConstructorAsync/README.md#1-async한-구현의-method를-추가" id="user-content-1-async한-구현의-method를-추가" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>1. async한 구현의 method를 추가</h3>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
위 예제의 경우 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">GetNamesAsync()</code> method와 같은 기능을 하는 sync한 metho인 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">GetNames()</code>를 추가하는 방법이 있습니다.<br style="box-sizing: border-box;" />동일한 구현이 2개가 되므로 별로 추천드리는 방법은 아닙니다.</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
참고로 아래 예제도 썩 그렇게 좋은 예제코드는 아닙니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Collections.Generic<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Threading.Tasks<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StaticClass</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> IEnumerable<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Names</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StaticClass</span>()
{
Names = GetNames();
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">async</span> Task<IEnumerable<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>>> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">GetNamesAsync</span>()
{
List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> nameList = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>>
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Star<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
};
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> nameList;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> IEnumerable<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">GetNames</span>()
{
List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> nameList = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>>
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Star<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
};
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> nameList;
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Program</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Main</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string[]</span> <span class="pl-smi" style="box-sizing: border-box;">args</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> name <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> StaticClass.Names)
{
System.Console.WriteLine(name);
}
}
}</pre>
</div>
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
하지만 sync한 작업으로 구현 자체가 될 것을 굳이 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async</code>로 선언할 일은 잘 없습니다.<br style="box-sizing: border-box;" />그러므로 이렇게 해결될 수 있는 일이라면 애초에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async</code>로 구현한거 자체가 제대로 된 설계가 아닐 수 있습니다.</div>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/CSharp/StaticConstructorAsync/README.md#2-async-작업을-별도-class로-분리-또는-async-작업-호출을-별도-class로-제한" id="user-content-2-async-작업을-별도-class로-분리-또는-async-작업-호출을-별도-class로-제한" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2. async 작업을 별도 class로 분리 (또는 async 작업 호출을 별도 class로 제한)</h3>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async</code> 작업을 별도 class로 분리하거나, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>에서 호출하는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async</code> 작업을 다른 class의 method로 제한하는 방법이 있습니다.<br style="box-sizing: border-box;" />이렇게 구현할 경우 원래 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">class</code>에서 sync한 구현과 async한 구현이 모두 필요할 경우 1번과 같은 code 모양이 될 경우가 많습니다.<br style="box-sizing: border-box;" /><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>에서 호출하는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async method</code>가 다른 class의 method일 경우에는 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">deadlock</code>이 걸리지 않았습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Collections.Generic<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Threading.Tasks<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StaticClass</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> IEnumerable<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Names</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StaticClass</span>()
{
Names = GetNames();
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> IEnumerable<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">GetNames</span>()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> Task.Run(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">async</span> () => { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">await</span> AsyncClass.GetNamesAsync(); }).Result; ;
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">AsyncClass</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">async</span> Task<IEnumerable<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>>> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">GetNamesAsync</span>()
{
List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> nameList = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>>
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Star<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
};
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> nameList;
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Program</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Main</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string[]</span> <span class="pl-smi" style="box-sizing: border-box;">args</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> name <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> StaticClass.Names)
{
System.Console.WriteLine(name);
}
}
}</pre>
</div>
</h1>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/CSharp/StaticConstructorAsync/README.md#3-초기화-작업을-별도-init-method로-분리" id="user-content-3-초기화-작업을-별도-init-method로-분리" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3. 초기화 작업을 별도 Init method로 분리</h3>
<h1 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 2.25em; line-height: 1.2; margin-bottom: 16px; margin-left: 0px; margin-right: 0px; margin-top: 0px !important; padding-bottom: 0.3em;">
<div style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
개인적으로 이 방법이 가장 깔끔해 보입니다.<br style="box-sizing: border-box;" />해당 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">class</code>가 사용되기 전에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Init()</code>을 호출한 뒤에 사용하면 됩니다.<br style="box-sizing: border-box;" /><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Init()</code>함수가 호출되기 전에 이미 해당 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">class</code>의 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">static constructor</code>가 실행된 상태이기 때문에 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">CLR-internal lock</code>은 이미<code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">unlcok</code>된 상태에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">async</code>작업을 수행하게 됩니다.<br style="box-sizing: border-box;" />하지만 여러 thread에서 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">Init()</code> 함수가 호출될 가능성이 있을 경우에는 사용자가 별도로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">lock</code>을 걸어서 호출을 해야 합니다.<br style="box-sizing: border-box;" />해당 기능은 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">clsss</code>가 최초로 사용되기 이전 시점의 아무 곳에서나 호출이 가능하므로, <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">lock</code>이 필요없는 적당한 시점에 호출시켜 주는 것이 좋습니다.</div>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; font-weight: normal; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Collections.Generic<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Threading.Tasks<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StaticClass</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> IEnumerable<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Names</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">StaticClass</span>()
{
...
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Init</span>()
{
Names = Task.Run(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">async</span> () => { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">await</span> GetNamesAsync(); }).Result;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">async</span> Task<IEnumerable<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>>> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">GetNamesAsync</span>()
{
List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> nameList = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>>
{
<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Luna<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Star<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Philip<span class="pl-pds" style="box-sizing: border-box;">"</span></span>
};
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> nameList;
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Program</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Main</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string[]</span> <span class="pl-smi" style="box-sizing: border-box;">args</span>)
{
StaticClass.Init();
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> name <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> StaticClass.Names)
{
System.Console.WriteLine(name);
}
}
}</pre>
</div>
</h1>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-17898563213576547012016-04-06T18:38:00.000+09:002016-04-11T13:34:42.426+09:00C# 애서 ZIP 파일 압축 및 해제와 unix 압축파일 (Z, tar, tgz) 압축 해제하기<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 0px !important; padding-bottom: 0.3em;">
FileCompression.NET</h2>
<div>
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="line-height: 25.6px;">사용하는 곳이 많지는 않겠지만, 예전에 작업해 놓은게 있어서 소스를 정리해서 올립니다.</span></span></div>
<div>
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="line-height: 25.6px;"><br /></span></span></div>
<div>
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="line-height: 25.6px;">Unix에서 사용하는 압축형식 중 Z, Tgz, Tar의 압축을 해제하는 소스코드 입니다.</span></span></div>
<div>
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="line-height: 25.6px;"><br /></span></span></div>
<div>
<span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol"; font-size: 16px; line-height: 25.6px;">evenZip, SharpZipLib, 7zip 의 3가지 외부 라이브러리를 사용했으며,</span></div>
<div>
<span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol"; font-size: 16px; line-height: 25.6px;">7zip의 경우 C#용 dll이 아니므로 해당 dll을 사용하는 </span><span style="background-color: rgba(0 , 0 , 0 , 0.0392157); color: #333333; font-family: "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 13.6px; line-height: 21.76px;">LzwInputStream.cs</span><span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol"; font-size: 16px; line-height: 25.6px;">를 포함시켰습니다.</span></div>
<div>
<span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol"; font-size: 16px; line-height: 25.6px;"><br /></span></div>
<div>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 0px !important; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">Z file : <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">7z.dll</code> and <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">LzwInputStream.cs</code></li>
<li style="box-sizing: border-box;">Zip file : SharpZipLib</li>
<li style="box-sizing: border-box;">Tgz file : SevenZip</li>
<li style="box-sizing: border-box;">Tar file : SharpZipLib</li>
</ul>
</div>
<div>
<span style="background-color: white; color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol"; font-size: 16px; line-height: 25.6px;"><br /></span></div>
<div>
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="background-color: white; line-height: 25.6px;">* 2016-04-08 수정</span></span><br />
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="background-color: white; line-height: 25.6px;"> - UnTgz를 Thread Safe한 코드로 수정하였습니다. 방법을 알려주신 Alex Lee ( <a href="https://www.facebook.com/csharpstudy">https://www.facebook.com/csharpstudy</a> )님께 감사드립니다.</span></span><br />
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="background-color: white; line-height: 25.6px;"><br /></span></span>
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="background-color: white; line-height: 25.6px;">* 2016-04-11 수정</span></span><br />
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="background-color: white; line-height: 25.6px;"> - UnTgz의 Event가 재사용 가능성이 희박한 코드라서 Lambda식으로 수정하였습니다. Pull Request 주신 Bongho Lee님 (<a href="https://github.com/techcap">https://github.com/techcap</a>) 님께 감사드립니다.</span></span><br />
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="background-color: white; line-height: 25.6px;"><br /></span></span>
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="background-color: white; line-height: 25.6px;">전체 소스 및 Project 설정 사항은 아래 Link를 참고해 주세요.</span></span></div>
<div>
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="background-color: white; line-height: 25.6px;"><br /></span></span></div>
<div>
<span style="background-color: white; line-height: 25.6px;"><span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><a href="https://github.com/DevStarSJ/CSharp/tree/master/Utilities/FileCompression">https://github.com/DevStarSJ/CSharp/tree/master/Utilities/FileCompression</a></span></span></div>
<div>
<span style="background-color: white; line-height: 25.6px;"><span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><br /></span></span></div>
<div>
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="background-color: white; line-height: 25.6px;"><b>* 소스코드</b></span></span><br />
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="background-color: white; line-height: 25.6px;"><b><br /></b></span></span>
<span style="color: #333333; font-family: "helvetica neue" , "helvetica" , "segoe ui" , "arial" , "freesans" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol";"><span style="background-color: white; line-height: 25.6px;"></span></span><br />
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> ICSharpCode.SharpZipLib.Tar<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> ICSharpCode.SharpZipLib.Zip<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> SevenZip<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Collections.Generic<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.IO<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">// 솔루션 빌드 후 이벤트에 아래 줄 추가 (단 최종경로 확인 필수 : Project명에 . 들어가는 경우 실제 폴더 구조랑 다를 수 있음</span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">// COPY /Y "$(SolutionDir)$(ProjectName)\7z.dll" "$(SolutionDir)$(SolutionName)\$(OutDir)\7z.dll"</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">namespace</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">LunaStar.Util</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">FileCompression</span>
{
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// Unix에서 생성한 Z 파일의 압축해제</span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// </<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>zFileName<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>압축해제할 Z 파일이름</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">returns</span>>압축 해제 성공 여부</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">returns</span>></span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">UnUnixZ</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">zFileName</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">try</span>
{
FileInfo fi = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> FileInfo(zFileName);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> directoryName = fi.DirectoryName;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> fileName = Path.GetFileNameWithoutExtension(zFileName);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> outputFileName = $<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>{directoryName}<span class="pl-cce" style="box-sizing: border-box;">\\</span>{fileName}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> (Stream inStream = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> LzwInputStream(File.OpenRead(zFileName)))
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> (FileStream outStream = File.Create(outputFileName))
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> bytesRead;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[] buffer = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">4096</span>];
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> ((bytesRead = inStream.Read(buffer, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>, buffer.Length)) > <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>)
{
outStream.Write(buffer, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>, bytesRead);
}
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">catch</span> (Exception e)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> AggregateException(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Fail FileCompression.UnUnixZ<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, e);
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>;
}
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// 특정 폴더를 ZIP으로 압축</span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// </<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>targetFolderPath<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>압축 대상 폴더 경로</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>zipFilePath<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>저장할 ZIP 파일 경로</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>password<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>압축 암호</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>isDeleteFolder<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>폴더 삭제 여부</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">returns</span>>압축 성공 여부</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">returns</span>></span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Zip</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">targetFolderPath</span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">zipFilePath</span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">password</span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span> <span class="pl-smi" style="box-sizing: border-box;">isDeleteFolder</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (!Directory.Exists(targetFolderPath)) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 폴더가 존재하는 경우에만 수행</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">false</span>;
List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> fileList = GenerateFileList(targetFolderPath); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 압축 대상 폴더의 파일 목록</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> pathLength = (Directory.GetParent(targetFolderPath)).ToString().Length + <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">1</span>; <span class="pl-c" style="box-sizing: border-box; color: #969896;">// find number of chars to remove. from orginal file path. remove '\'</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> (ZipOutputStream zipOutputStream = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> ZipOutputStream(File.Create(zipFilePath))) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// ZIP 스트림 생성.</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (password != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span> && password != <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>.Empty) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 패스워드가 있는 경우 패스워드 지정</span>
zipOutputStream.Password = password;
zipOutputStream.SetLevel(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">9</span>); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 암호화 레벨.(최대 압축)</span>
ZipEntry zipEntry;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> fileName <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> fileList)
{
zipEntry = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> ZipEntry(fileName.Remove(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>, pathLength));
zipOutputStream.PutNextEntry(zipEntry);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">try</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (!fileName.EndsWith(<span class="pl-s" style="box-sizing: border-box; color: #183691;">@"/"</span>)) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 파일인 경우</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> (FileStream fileStream = File.OpenRead(fileName))
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[] buffer = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[fileStream.Length];
fileStream.Read(buffer, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>, buffer.Length);
zipOutputStream.Write(buffer, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>, buffer.Length);
}
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">catch</span> (Exception e)
{
<span class="pl-c" style="box-sizing: border-box; color: #969896;">// 오류가 난 경우 생성 했던 파일을 삭제.</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (File.Exists(zipFilePath))
File.Delete(zipFilePath);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> AggregateException(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>FileCompression.Zip : Fail to ZipOutputStream<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, e);
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">finally</span>
{
zipOutputStream.Finish(); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 압축 종료</span>
zipOutputStream.Close();
}
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (isDeleteFolder) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 폴더 삭제를 원할 경우 폴더 삭제</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">try</span>
{
Directory.Delete(targetFolderPath, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>);
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">catch</span> (Exception e)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> AggregateException(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>FileCompression.Zip : Fail to delete folder<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, e);
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>;
}
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// 파일, 폴더 목록 생성</span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// </<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>directory<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>폴더 경로</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">returns</span>>폴더, 파일 목록(ArrayList)</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">returns</span>></span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">private</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">GenerateFileList</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">directory</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> fileList = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>>();
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span> isEmpty = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">try</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> fileName <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> Directory.GetFiles(directory)) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 폴더 내의 파일 추가</span>
{
fileList.Add(fileName);
isEmpty = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">false</span>;
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">catch</span> (Exception e)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> AggregateException(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>FileCompression.GenetateFileList : Fail to add files<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, e);
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (isEmpty)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">try</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (Directory.GetDirectories(directory).Length == <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 파일이 없고, 폴더도 없는 경우 자신의 폴더 추가</span>
fileList.Add(directory + <span class="pl-s" style="box-sizing: border-box; color: #183691;">@"/"</span>);
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">catch</span> (Exception e)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> AggregateException(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>FileCompression.GenetateFileList : Fail to add self<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, e);
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">try</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> directoryName <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> Directory.GetDirectories(directory)) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 폴더 내 폴더 목록</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> fileName <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> GenerateFileList(directoryName)) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 해당 폴더로 다시 GenerateFileList 재귀 호출</span>
{
fileList.Add(fileName); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 해당 폴더 내의 파일, 폴더 추가</span>
}
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">catch</span> (Exception e)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> AggregateException(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>FileCompression.GenetateFileList : Fail to add directories<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, e);
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> fileList;
}
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// ZIP 압축 파일 풀기</span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// </<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>zipFilePath<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>ZIP파일 경로</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>unZipTargetFolderPath<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>압축 풀 폴더 경로</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>password<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>해지 암호</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>isDeleteZipFile<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>zip파일 삭제 여부</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">returns</span>>압축 풀기 성공 여부 </<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">returns</span>></span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Unzip</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">zipFilePath</span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">unZipTargetFolderPath</span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">password</span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span> <span class="pl-smi" style="box-sizing: border-box;">isDeleteZipFile</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (!File.Exists(zipFilePath)) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// ZIP 파일이 있는 경우만 수행</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">false</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> (ZipInputStream zipInputStream = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> ZipInputStream(File.OpenRead(zipFilePath))) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// ZIP 스트림 생성</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (password != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span> && password != <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>.Empty) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 패스워드가 있는 경우 패스워드 지정</span>
zipInputStream.Password = password;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">try</span>
{
ZipEntry theEntry;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> ((theEntry = zipInputStream.GetNextEntry()) != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 반복하며 파일을 가져옴</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> directoryName = Path.GetDirectoryName(theEntry.Name); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 폴더 명칭</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> fileName = Path.GetFileName(theEntry.Name); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 파일 명칭</span>
Directory.CreateDirectory(unZipTargetFolderPath + directoryName); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 폴더 생성</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (fileName == <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>.Empty) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 파일 이름이 없으면 Pass</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">continue</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> (FileStream streamWriter = File.Create((unZipTargetFolderPath + theEntry.Name))) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 파일 스트림 생성.(파일생성)</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[] data = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">2048</span>];
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 파일 복사</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> size = zipInputStream.Read(data, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>, data.Length);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (size > <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>)
streamWriter.Write(data, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>, size);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">else</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">break</span>;
}
streamWriter.Close(); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// 파일스트림 종료</span>
}
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">catch</span> (Exception e)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> AggregateException(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>FileCompression.Unzip : Fail to ZipInputStream<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, e);
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">finally</span>
{
zipInputStream.Close(); <span class="pl-c" style="box-sizing: border-box; color: #969896;">// ZIP 파일 스트림 종료</span>
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (isDeleteZipFile) <span class="pl-c" style="box-sizing: border-box; color: #969896;">// ZIP파일 삭제를 원할 경우 파일 삭제</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">try</span>
{
File.Delete(zipFilePath);
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">catch</span> (Exception e)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> AggregateException(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>FileCompression.Unzip : Fail to delete zip file<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, e);
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>;
}
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// tgz 파일 압축 풀기</span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// </<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>fileName<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>tgz 파일명</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>savePath<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>저장할 파일 위치</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">returns</span>>압축 풀기 성공 여부 </<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">returns</span>></span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">UnTgz</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">fileName</span>, <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">savePath</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (!File.Exists(fileName))
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">false</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> (SevenZipExtractor sevenZipExtractor = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> SevenZipExtractor(fileName))
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">try</span>
{
sevenZipExtractor.EventSynchronization = EventSynchronizationStrategy.AlwaysSynchronous;
savePath = savePath.Replace(<span class="pl-s" style="box-sizing: border-box; color: #183691;">@"\\"</span>, <span class="pl-s" style="box-sizing: border-box; color: #183691;">@"\"</span>);
sevenZipExtractor.ExtractionFinished +=
(sender, e) =>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">try</span>
{
List<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>> fileList = GenerateFileList(savePath);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> file <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> fileList)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">var</span> fi = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> FileInfo(file);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (fi.Extension.ToUpper() == <span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>.TAR<span class="pl-pds" style="box-sizing: border-box;">"</span></span>)
{
UnTar(file);
fi.Delete();
}
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">catch</span> (Exception ex)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> AggregateException(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>FileCompression.ExtractionFinishedHandler : Fail sevenZipExtractor<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, ex);
}
};
sevenZipExtractor.ExtractArchive(savePath);
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">catch</span> (Exception e)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> AggregateException(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>FileCompression.UnTgz : Fail sevenZipExtractor<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, e);
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>;
}
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// tar 파일 압축 해제</span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// </<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">summary</span>></span>
<span class="pl-c" style="box-sizing: border-box; color: #969896;">/// <<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span> <span class="pl-e" style="box-sizing: border-box; color: #795da3;">name</span>=<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>TarName<span class="pl-pds" style="box-sizing: border-box;">"</span></span>>tar 파일명</<span class="pl-ent" style="box-sizing: border-box; color: #63a35c;">param</span>></span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">UnTar</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> <span class="pl-smi" style="box-sizing: border-box;">TarName</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">try</span>
{
FileInfo fi = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> FileInfo(TarName);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> (TarInputStream s = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> TarInputStream(File.OpenRead(TarName)))
{
TarEntry theEntry;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> ((theEntry = s.GetNextEntry()) != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> FullName = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>.Format(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>{0}<span class="pl-cce" style="box-sizing: border-box;">\\</span>{1}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, fi.DirectoryName, theEntry.Name);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> DirName = Path.GetDirectoryName(FullName);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span> FileName = Path.GetFileName(FullName);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (!Directory.Exists(DirName)) Directory.CreateDirectory(DirName);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (FileName != <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>.Empty)
{
FileStream SW = File.Create(FullName);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> Size = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">2048</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[] data = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">byte</span>[<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">2048</span>];
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>)
{
Size = s.Read(data, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>, data.Length);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (Size > <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>) SW.Write(data, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>, Size);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">else</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">break</span>;
}
SW.Close();
}
}
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">catch</span> (Exception e)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> AggregateException(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>FileCompression.UnTar : Fail untar<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, e);
}
}
}
}</pre>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-15440301828706725462016-04-04T16:29:00.001+09:002016-04-04T16:29:21.175+09:00Windows Symbol Repository 구성 및 관리<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 0px !important;">
1. Debugging Tools for Windows 설치</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://msdn.microsoft.com/en-us/library/windows/hardware/ff551063(v=vs.85).aspx" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://msdn.microsoft.com/en-us/library/windows/hardware/ff551063(v=vs.85).aspx</a></div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/CI/symbolRepository.md#2-symbol-등록" id="user-content-2-symbol-등록" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>2. Symbol 등록</h3>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; max-width: initial; overflow: initial; padding: 0px; word-break: normal; word-wrap: normal;">call svnindex.cmd -source="{SolutionFolder}" -symbols="{SolutionFolder}\bin\Unicode Release"
</code></pre>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; max-width: initial; overflow: initial; padding: 0px; word-break: normal; word-wrap: normal;">symstore.exe add /r /f "{SolutionFolder}\bin\Unicode Release\*.*" /s "{SymbolRepository}" /t "{Name}" /compress
</code></pre>
<blockquote style="border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 4px; box-sizing: border-box; color: #777777; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin: 0px 0px 16px; padding: 0px 15px;">
<div style="box-sizing: border-box;">
e.g.<br style="box-sizing: border-box;" />call svnindex.cmd -source="d:\svn\trunk" -symbol="d:\svn\trunk\bin\Unicode Release"<br style="box-sizing: border-box;" />symstore add /r /f "d:\svn\trunk\bin\Unicode Release*.*" /s "d:\symbol" /t "MyApp" /compress</div>
</blockquote>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;">통상적으로 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">symstore.exe</code>는 아래 폴더에 위치합니다.</li>
</ul>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; max-width: initial; overflow: initial; padding: 0px; word-break: normal; word-wrap: normal;">C:\Program Files\Debugging Tools for Windows (x64)
</code></pre>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">svnindex.cmd</code>는 설치된 Debugging Tools for Windows 폴더 아래 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">srcsrv</code> 폴더 내에 있으며 다른 CI 제품들의 cmd 파일들도 존재합니다.</li>
</ul>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/CI/symbolRepository.md#3-저장된-symbol-확인" id="user-content-3-저장된-symbol-확인" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>3. 저장된 Symbol 확인</h3>
<ul style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">{SymbolRepository}\000Admin\server.txt</code>에서 확인</li>
<li style="box-sizing: border-box;">각 ID별 Build일시. 이름 (/t 옵션 뒤에 이름) 확인이 가능</li>
</ul>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/CI/symbolRepository.md#4-symbol-삭제" id="user-content-4-symbol-삭제" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>4. Symbol 삭제</h3>
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; color: #333333; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 16px; overflow: auto; padding: 16px; word-wrap: normal;"><code style="background: transparent; border-radius: 3px; border: 0px; box-sizing: border-box; display: inline; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; line-height: inherit; margin: 0px; max-width: initial; overflow: initial; padding: 0px; word-break: normal; word-wrap: normal;">symstore del /i ID /s "{SymbolRepository}"
</code></pre>
<blockquote style="border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 4px; box-sizing: border-box; color: #777777; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin: 0px 0px 16px; padding: 0px 15px;">
<div style="box-sizing: border-box;">
e.g.<br style="box-sizing: border-box;" />symstore del /i 142 /s "d:\symbol"</div>
</blockquote>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/blob/master/Blog/CI/symbolRepository.md#symstore-사용법-symbol-삭제-포함" id="user-content-symstore-사용법-symbol-삭제-포함" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>symstore 사용법 (Symbol 삭제 포함)</h3>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px;">
<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms681378(v=vs.85).aspx" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://msdn.microsoft.com/en-us/library/windows/desktop/ms681378(v=vs.85).aspx</a></div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-10428454292071087832016-04-01T21:31:00.002+09:002016-04-01T21:31:32.931+09:00[Top 20 Coding Interview] 20.Selection Sort (C#)<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 0px !important; padding-bottom: 0.3em;">
Selection Sort</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Sorting an Array using Selection Sort</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
출처 : <a href="http://www.csharpstar.com/top-20-google-amazon-programming-interview-questions" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">http://www.csharpstar.com/top-20-google-amazon-programming-interview-questions</a></div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Selection Sort(선택정렬)을 구현하세요.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
Selection Sort가 무엇인지는 아래 Link를 참조하세요.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<a href="https://en.wikipedia.org/wiki/Selection_sort" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">https://en.wikipedia.org/wiki/Selection_sort</a></div>
<hr style="background: rgb(231, 231, 231); border: 0px none; box-sizing: content-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; height: 4px; line-height: 25.6px; margin: 16px 0px; overflow: hidden; padding: 0px;" />
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/Algorithm/Top20CodingInterview/Q.20.SelectionSort#c" id="user-content-c" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>C#</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Program</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> SelectionSort<T>(ref T[] array ) where T : IComparable
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">for</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> i = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>; i < array.Length; i++)
{
T minValue = array[i];
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> minIndex = i;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">for</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> j = i + <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">1</span>; j < array.Length; j++)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (array[j].CompareTo(minValue) < <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>)
{
minValue = array[j];
minIndex = j;
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (i != minIndex)
{
T temp = array[i];
array[i] = minValue;
array[minIndex] = temp;
}
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Main</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string[]</span> <span class="pl-smi" style="box-sizing: border-box;">args</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>[] array = { <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">9</span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">4</span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">6</span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">5</span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">7</span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">8</span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">3</span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">2</span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">1</span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span> };
SelectionSort<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>>(ref array);
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> n <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> array)
{
Console.Write($<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>{n}<span class="pl-cce" style="box-sizing: border-box;">\t</span><span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
}
Console.WriteLine();
}
}</pre>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-8073044433340565282016-04-01T21:30:00.003+09:002016-04-01T21:30:38.272+09:00[Top 20 Coding Interview] 19. Sum Digits (C#)<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 0px !important; padding-bottom: 0.3em;">
Sum Digits</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
How to find sum of digits of a number using Recursion?</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
출처 : <a href="http://www.csharpstar.com/top-20-google-amazon-programming-interview-questions" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">http://www.csharpstar.com/top-20-google-amazon-programming-interview-questions</a></div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
재귀함수를 사용해서 입력된 숫자의 각 자리수를 더하세요.</div>
<hr style="background: rgb(231, 231, 231); border: 0px none; box-sizing: content-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; height: 4px; line-height: 25.6px; margin: 16px 0px; overflow: hidden; padding: 0px;" />
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/Algorithm/Top20CodingInterview/Q.19.SumDigits#c" id="user-content-c" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>C#</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Program</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">SumDigits</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> <span class="pl-smi" style="box-sizing: border-box;">number</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (number < <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>)
number *= -<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">1</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (number < <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">10</span>)
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> number;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> number % <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">10</span> + SumDigits(number / <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">10</span>);
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Main</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string[]</span> <span class="pl-smi" style="box-sizing: border-box;">args</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>[] digits = { <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">123456</span>, <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">654321</span>, -<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">126543</span> };
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>[] result = { SumDigits(digits[<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>]),
SumDigits(digits[<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">1</span>]),
SumDigits(digits[<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">2</span>]) };
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">for</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span> i = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>; i < result.Length; i++)
{
System.Console.WriteLine($<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Sum Digits of {digits[i]} is {result[i]}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
}
}
}</pre>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0tag:blogger.com,1999:blog-4260387637383881918.post-3331028716727973152016-04-01T21:29:00.002+09:002016-04-01T21:29:37.063+09:00[Top 20 Coding Interview] 18.Remove Duplicates In Sorted Linked List (C#)<h2 style="border-bottom-color: rgb(238, 238, 238); border-bottom-style: solid; border-bottom-width: 1px; box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.75em; line-height: 1.225; margin-bottom: 16px; margin-top: 0px !important; padding-bottom: 0.3em;">
Q.18.Remove Duplicates In Sorted Linked List</h2>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
How to remove duplicates from a sorted linked list?</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
출처 : <a href="http://www.csharpstar.com/top-20-google-amazon-programming-interview-questions" style="box-sizing: border-box; color: #4078c0; text-decoration: none;">http://www.csharpstar.com/top-20-google-amazon-programming-interview-questions</a></div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
정렬된 Linked List에서 중복값을 제거하세요.</div>
<div style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
16번문제에서 만든 <code style="background-color: rgba(0, 0, 0, 0.0392157); border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0px;">LinkedNode<T></code> class에 아래 1개의 method를 추가했습니다.</div>
<hr style="background: rgb(231, 231, 231); border: 0px none; box-sizing: content-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; height: 4px; line-height: 25.6px; margin: 16px 0px; overflow: hidden; padding: 0px;" />
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/Algorithm/Top20CodingInterview/Q.18.RemoveDuplicatesInSortedLinkedList#c-추가한-method" id="user-content-c-추가한-method" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>C# 추가한 method</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> RemoveDuplicatesInSortedLinkedList()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (!IsSorted())
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> Exception(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Not Sorted<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
LinkedNode<T> traveling = GetFisrt();
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (traveling._next != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (traveling.Value.CompareTo(traveling._next.Value) == <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>)
{
traveling.Next = traveling._next._next;
}
traveling = traveling._next;
}
}</pre>
</div>
<h3 style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 1.5em; line-height: 1.43; margin-bottom: 16px; margin-top: 1em;">
<a aria-hidden="true" class="anchor" href="https://github.com/DevStarSJ/Study/tree/master/Blog/Algorithm/Top20CodingInterview/Q.18.RemoveDuplicatesInSortedLinkedList#c-전체-code-test-포함" id="user-content-c-전체-code-test-포함" style="box-sizing: border-box; color: #4078c0; display: inline-block; line-height: 1.2; margin-left: -18px; padding-right: 2px; text-decoration: none;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewbox="0 0 16 16" width="16"><path d="M4 9h1v1h-1c-1.5 0-3-1.69-3-3.5s1.55-3.5 3-3.5h4c1.45 0 3 1.69 3 3.5 0 1.41-0.91 2.72-2 3.25v-1.16c0.58-0.45 1-1.27 1-2.09 0-1.28-1.02-2.5-2-2.5H4c-0.98 0-2 1.22-2 2.5s1 2.5 2 2.5z m9-3h-1v1h1c1 0 2 1.22 2 2.5s-1.02 2.5-2 2.5H9c-0.98 0-2-1.22-2-2.5 0-0.83 0.42-1.64 1-2.09v-1.16c-1.09 0.53-2 1.84-2 3.25 0 1.81 1.55 3.5 3 3.5h4c1.45 0 3-1.69 3-3.5s-1.5-3.5-3-3.5z"></path></svg></a>C# 전체 Code (Test 포함)</h3>
<div class="highlight highlight-source-cs" style="box-sizing: border-box; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px; margin-bottom: 16px;">
<pre style="background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;"><span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">using</span> System.Collections.Generic<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">;</span>
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">LinkedNode</span><T> where T : <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">IComparable</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> T <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Value</span> { <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>; <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>; }
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">private</span> LinkedNode<T> _previous = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">private</span> LinkedNode<T> _next = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> LinkedNode<T> Previous
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>
{
_previous = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">value</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">value</span> != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">value</span>._next = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">this</span>;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> _previous;
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> LinkedNode<T> Next
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">set</span>
{
_next = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">value</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">value</span> != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">value</span>._previous = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">this</span>;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">get</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> _next;
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">LinkedNode</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">T</span> <span class="pl-smi" style="box-sizing: border-box;">value</span>)
{
Value = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">value</span>;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">DetectCirculation</span>()
{
List<LinkedNode<T>> vVisitedNodes = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> List<LinkedNode<T>>();
vVisitedNodes.Add(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">this</span>);
LinkedNode<T> traveling = Previous;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (traveling != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (LinkedNode<T> visited <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> vVisitedNodes)
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (visited == traveling)
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>;
vVisitedNodes.Add(traveling);
traveling = traveling.Previous;
}
traveling = Next;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (traveling != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">foreach</span> (LinkedNode<T> Visited <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">in</span> vVisitedNodes)
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (Visited == traveling)
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>;
vVisitedNodes.Add(traveling);
traveling = traveling.Next;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">false</span>;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> LinkedNode<T> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">GetFisrt</span>()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (DetectCirculation())
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> Exception(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Circulation Linked Node<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
LinkedNode<T> findFirst = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">this</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (findFirst._previous != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
findFirst = findFirst._previous;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> findFirst;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> LinkedNode<T> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">GetLast</span>()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (DetectCirculation())
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> Exception(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Circulation Linked Node<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
LinkedNode<T> findLast = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">this</span>;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (findLast._next != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
findLast = findLast._next;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> findLast;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">bool</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">IsSorted</span>()
{
LinkedNode<T> traveling = GetFisrt();
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (traveling._next != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (traveling.Value.CompareTo(traveling._next.Value) > <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>)
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">false</span>;
traveling = traveling._next;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">true</span>;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> LinkedNode<T> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Merge</span>(LinkedNode<T> list1, LinkedNode<T> list2)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (list1 != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span> && !list1.IsSorted())
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> Exception(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>No Sorted List Inserted : <span class="pl-pds" style="box-sizing: border-box;">"</span></span> + <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">nameof</span>(list1));
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (list2 != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span> && !list2.IsSorted())
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> Exception(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>No Sorted List Inserted : <span class="pl-pds" style="box-sizing: border-box;">"</span></span> + <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">nameof</span>(list2));
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (list1 == <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> list2;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">else</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (list2 == <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> list1;
}
LinkedNode<T> first = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>;
LinkedNode<T> current = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>;
LinkedNode<T> node1 = list1.GetFisrt();
LinkedNode<T> node2 = list2.GetFisrt();
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (node1.Value.CompareTo(node2.Value) >= <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>)
{
first = node2;
current = first;
node2 = node2.Next;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">else</span>
{
first = node1;
current = first;
node1 = node1.Next;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (node1 != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span> && node2 != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (node1.Value.CompareTo(node2.Value) >= <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>)
{
current.Next = node2;
current = current.Next;
node2 = node2.Next;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (node2 == <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
current.Next = node1;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">break</span>;
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">else</span>
{
current.Next = node1;
current = current.Next;
node1 = node1.Next;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (node1 == <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
current.Next = node2;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">break</span>;
}
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">return</span> first;
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Reverse</span>()
{
LinkedNode<T> newFirst = GetLast();
LinkedNode<T> travelingForward = newFirst;
LinkedNode<T> travelingBackward = travelingForward._previous;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (travelingBackward != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
travelingForward._next = travelingBackward;
travelingForward = travelingForward._next;
travelingBackward = travelingBackward._previous;
}
travelingForward._next = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>;
newFirst._previous = <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>;
travelingForward = newFirst;
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (travelingForward._next != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
travelingForward.Next = travelingForward._next;
travelingForward = travelingForward._next;
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">public</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">RemoveDuplicatesInSortedLinkedList</span>()
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (!IsSorted())
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">throw</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> Exception(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>Not Sorted<span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
LinkedNode<T> traveling = GetFisrt();
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (traveling._next != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">if</span> (traveling.Value.CompareTo(traveling._next.Value) == <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">0</span>)
{
traveling.Next = traveling._next._next;
}
traveling = traveling._next;
}
}
}
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">class</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Program</span>
{
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">static</span> <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">void</span> <span class="pl-en" style="box-sizing: border-box; color: #795da3;">Main</span>(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string[]</span> <span class="pl-smi" style="box-sizing: border-box;">args</span>)
{
LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>> node1 = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>>(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">1</span>);
LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>> node2 = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>>(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">3</span>);
LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>> node3 = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>>(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">5</span>);
LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>> node4 = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>>(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">6</span>);
node1.Next = node2;
node2.Next = node3;
node3.Next = node4;
LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>> node5 = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>>(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">1</span>);
LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>> node6 = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>>(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">5</span>);
LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>> node7 = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>>(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">8</span>);
LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>> node8 = <span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">new</span> LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>>(<span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">9</span>);
node5.Next = node6;
node6.Next = node7;
node7.Next = node8;
LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>> merged = LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>>.Merge(node1, node5);
merged.RemoveDuplicatesInSortedLinkedList();
LinkedNode<<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">int</span>> ret = merged.GetFisrt();
<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">while</span> (ret != <span class="pl-c1" style="box-sizing: border-box; color: #0086b3;">null</span>)
{
System.Console.Write(<span class="pl-k" style="box-sizing: border-box; color: #a71d5d;">string</span>.Format(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span>{0,4}<span class="pl-pds" style="box-sizing: border-box;">"</span></span>, ret.Value));
ret = ret.Next;
}
System.Console.WriteLine(<span class="pl-s" style="box-sizing: border-box; color: #183691;"><span class="pl-pds" style="box-sizing: border-box;">"</span><span class="pl-pds" style="box-sizing: border-box;">"</span></span>);
}
}</pre>
</div>
Anonymoushttp://www.blogger.com/profile/11730421242342687122noreply@blogger.com0