<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>정착소</title>
    <link>https://settlelib.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 13 Aug 2026 09:12:53 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ro_ot</managingEditor>
    <item>
      <title>태양곱창 본점</title>
      <link>https://settlelib.tistory.com/100</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_7277.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1067&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JDFCz/btsLgcOH8ik/SvzaECTF1xd7o2KYoowk8k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JDFCz/btsLgcOH8ik/SvzaECTF1xd7o2KYoowk8k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JDFCz/btsLgcOH8ik/SvzaECTF1xd7o2KYoowk8k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJDFCz%2FbtsLgcOH8ik%2FSvzaECTF1xd7o2KYoowk8k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;592&quot; height=&quot;790&quot; data-filename=&quot;IMG_7277.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;1067&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어제 저녁, 매콤하니 야들한게 급하게 끌려 야채곱창볶음을 주문했습니다. &lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;사이드로 볶음밥을 추가해 완벽한 식사를 완성했어요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;메뉴&amp;nbsp;및&amp;nbsp;가격&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 야채곱창볶음 (기본맛): 15,000원&lt;br /&gt;- 볶음밥: 4,000원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;총 19,000원으로 두 명이서 곱창볶음과 볶음밥으로 푸짐하게 식사 하였어요.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;곱창볶음:&amp;nbsp;부드러운&amp;nbsp;곱창의&amp;nbsp;매력&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;곱창볶음은&amp;nbsp;&lt;u&gt;&lt;b&gt;기본맛&lt;/b&gt;&lt;/u&gt;으로&amp;nbsp;선택했는데,&amp;nbsp;신라면&amp;nbsp;보다&amp;nbsp;조금&amp;nbsp;더&amp;nbsp;매콤하고&amp;nbsp;자극적이지&amp;nbsp;않아&amp;nbsp;맛있게&amp;nbsp;즐길&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;맛이었어요.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히&amp;nbsp;곱창이&amp;nbsp;&lt;u&gt;&lt;b&gt;굉장히&amp;nbsp;부드러워&lt;/b&gt;&lt;/u&gt;서&amp;nbsp;씹는&amp;nbsp;식감이&amp;nbsp;정말&amp;nbsp;좋았습니다.&amp;nbsp;야채와&amp;nbsp;곱창의&amp;nbsp;조화도&amp;nbsp;훌륭했고,&amp;nbsp;적당한&amp;nbsp;양으로&amp;nbsp;만족스러운&amp;nbsp;한&amp;nbsp;접시였어요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;볶음밥: 곱창볶음과의 완벽한 마무리&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;곱창볶음을 어느 정도 먹고 난 뒤, &lt;u&gt;&lt;b&gt;*남은 양념에 볶음밥을 비벼&lt;/b&gt; &lt;/u&gt;먹었는데 정말 최고였어요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고슬고슬한 밥알이 양념을 잘 머금고 있어서, 한 숟갈 한 숟갈이 감탄을 자아냈습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;곱창볶음과 볶음밥은 정말 &lt;u&gt;&lt;b&gt;찰떡궁합&lt;/b&gt;&lt;/u&gt;이라 함께 주문하는 것을 강력 추천합니다.&lt;br /&gt;&lt;b&gt;*약간 기름지니 참고!&lt;/b&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;총평&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적당한 가격에 만족스러운 맛과 양을 제공하는 야채곱창볶음은 두 명이서 부담 없이 즐길 수 있는 메뉴였어요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다 먹고나서 조금 부족하다고 얘기하니 알고 보니 1인분!?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;곱창의 부드러운 식감&lt;/b&gt;&lt;/u&gt;과 볶음밥의 풍미 덕분에 저녁 식사가 정말 행복한 시간이 되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음에도 꼭 다시 주문하고 싶을 정도로 만족스러웠어요!&lt;br /&gt;&lt;br /&gt;곱창볶음을&amp;nbsp;고민하고&amp;nbsp;계신다면,&amp;nbsp;사이드로&amp;nbsp;볶음밥까지&amp;nbsp;추가해서&amp;nbsp;완벽한&amp;nbsp;조합을&amp;nbsp;즐겨보세요.&amp;nbsp;정말&amp;nbsp;추천합니다!&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;iframe mapdata=&quot;addr=%EC%84%9C%EC%9A%B8%20%EC%86%A1%ED%8C%8C%EA%B5%AC%20%EB%B0%A9%EC%9D%B4%EB%8F%99%2071-1%201%EC%B8%B5%20%ED%83%9C%EC%96%91%EA%B3%B1%EC%B0%BD%20%EB%B3%B8%EC%A0%90&amp;amp;addtype=1&amp;amp;confirmid=377517929&amp;amp;docid=&amp;amp;idx=1&amp;amp;ifrH=362px&amp;amp;ifrW=490px&amp;amp;mapHeight=362&amp;amp;mapInfo=%7B%22version%22%3A2%2C%22mapWidth%22%3A490%2C%22mapHeight%22%3A362%2C%22mapCenterX%22%3A524250%2C%22mapCenterY%22%3A1114808%2C%22mapLevel%22%3A4%2C%22coordinate%22%3A%22wcongnamul%22%2C%22markInfo%22%3A%5B%7B%22markerType%22%3A%22standPlace%22%2C%22coordinate%22%3A%22wcongnamul%22%2C%22x%22%3A524250%2C%22y%22%3A1114814%2C%22clickable%22%3Atrue%2C%22draggable%22%3Atrue%2C%22icon%22%3A%7B%22width%22%3A35%2C%22height%22%3A56%2C%22offsetX%22%3A17%2C%22offsetY%22%3A56%2C%22src%22%3A%22%26%23x2F%3B%26%23x2F%3Bt1.daumcdn.net%26%23x2F%3Blocalimg%26%23x2F%3Blocalimages%26%23x2F%3B07%26%23x2F%3B2012%26%23x2F%3Battach%26%23x2F%3Bpc_img%26%23x2F%3Bico_marker2_150331.png%22%7D%2C%22content%22%3A%22%ED%83%9C%EC%96%91%EA%B3%B1%EC%B0%BD%20%EB%B3%B8%EC%A0%90%22%2C%22confirmid%22%3A377517929%7D%5D%2C%22graphicInfo%22%3A%5B%5D%2C%22roadviewInfo%22%3A%5B%5D%7D&amp;amp;mapWidth=490&amp;amp;mapX=524250&amp;amp;mapY=1114808&amp;amp;map_hybrid=false&amp;amp;map_level=4&amp;amp;map_type=TYPE_MAP&amp;amp;rcode=1171056200&amp;amp;tel=070-4304-0308&amp;amp;title=%ED%83%9C%EC%96%91%EA%B3%B1%EC%B0%BD%20%EB%B3%B8%EC%A0%90&quot; src=&quot;/proxy/plusmapViewer.php?id=maps_1733993289059&quot; id=&quot;maps_1733993289059&quot; width=&quot;540px&quot; height=&quot;350px&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; data-ke-type=&quot;map&quot; data-maps-data=&quot;addr=%EC%84%9C%EC%9A%B8%20%EC%86%A1%ED%8C%8C%EA%B5%AC%20%EB%B0%A9%EC%9D%B4%EB%8F%99%2071-1%201%EC%B8%B5%20%ED%83%9C%EC%96%91%EA%B3%B1%EC%B0%BD%20%EB%B3%B8%EC%A0%90&amp;amp;addtype=1&amp;amp;confirmid=377517929&amp;amp;docid=&amp;amp;idx=1&amp;amp;ifrH=362px&amp;amp;ifrW=490px&amp;amp;mapHeight=362&amp;amp;mapInfo=%7B%22version%22%3A2%2C%22mapWidth%22%3A490%2C%22mapHeight%22%3A362%2C%22mapCenterX%22%3A524250%2C%22mapCenterY%22%3A1114808%2C%22mapLevel%22%3A4%2C%22coordinate%22%3A%22wcongnamul%22%2C%22markInfo%22%3A%5B%7B%22markerType%22%3A%22standPlace%22%2C%22coordinate%22%3A%22wcongnamul%22%2C%22x%22%3A524250%2C%22y%22%3A1114814%2C%22clickable%22%3Atrue%2C%22draggable%22%3Atrue%2C%22icon%22%3A%7B%22width%22%3A35%2C%22height%22%3A56%2C%22offsetX%22%3A17%2C%22offsetY%22%3A56%2C%22src%22%3A%22%26%23x2F%3B%26%23x2F%3Bt1.daumcdn.net%26%23x2F%3Blocalimg%26%23x2F%3Blocalimages%26%23x2F%3B07%26%23x2F%3B2012%26%23x2F%3Battach%26%23x2F%3Bpc_img%26%23x2F%3Bico_marker2_150331.png%22%7D%2C%22content%22%3A%22%ED%83%9C%EC%96%91%EA%B3%B1%EC%B0%BD%20%EB%B3%B8%EC%A0%90%22%2C%22confirmid%22%3A377517929%7D%5D%2C%22graphicInfo%22%3A%5B%5D%2C%22roadviewInfo%22%3A%5B%5D%7D&amp;amp;mapWidth=490&amp;amp;mapX=524250&amp;amp;mapY=1114808&amp;amp;map_hybrid=false&amp;amp;map_level=4&amp;amp;map_type=TYPE_MAP&amp;amp;rcode=1171056200&amp;amp;tel=070-4304-0308&amp;amp;title=%ED%83%9C%EC%96%91%EA%B3%B1%EC%B0%BD%20%EB%B3%B8%EC%A0%90&quot; data-maps-thumbnail=&quot;https://ssl.daumcdn.net/map3/staticmap/image?center=524250%2C1114808&amp;amp;lv=4&amp;amp;size=540x350&amp;amp;srs=WCONGNAMUL&amp;amp;markers=symbol%3Asc_marker%7Clocation%3A524250%2C1114814&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://naver.me/5fPbWol3&quot;&gt;https://naver.me/5fPbWol3&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>먹고 보자!/배달로 먹고 보자!</category>
      <category>맛집</category>
      <category>배달음식</category>
      <category>배달추천</category>
      <category>볶음밥</category>
      <category>본점</category>
      <category>야채곱창</category>
      <category>잠실</category>
      <category>추천</category>
      <category>태양곱창</category>
      <category>태양곱창 본점</category>
      <author>ro_ot</author>
      <guid isPermaLink="true">https://settlelib.tistory.com/100</guid>
      <comments>https://settlelib.tistory.com/100#entry100comment</comments>
      <pubDate>Thu, 12 Dec 2024 17:55:23 +0900</pubDate>
    </item>
    <item>
      <title>etc</title>
      <link>https://settlelib.tistory.com/98</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;660&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3L684/btqTcQSiwQe/8KHJ5XGplgzWIKyKk4GFN0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3L684/btqTcQSiwQe/8KHJ5XGplgzWIKyKk4GFN0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3L684/btqTcQSiwQe/8KHJ5XGplgzWIKyKk4GFN0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3L684%2FbtqTcQSiwQe%2F8KHJ5XGplgzWIKyKk4GFN0%2Fimg.jpg&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;660&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;프론트 엔드(FRONT-END)&lt;/p&gt;
&lt;p&gt;사용자들이 웹사이트에서 보고 상호작용하는 모든 것들이 프론트엔드 개발 분야에 속함&lt;/p&gt;
&lt;p&gt;주로 웹 및 모바일 솔루션의 사용자 인터페이스(UI) 사용자 경험(UX)을 만드는데 초점을 맞춤&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;백엔드(BACK-END)&lt;/p&gt;
&lt;p&gt;데이터를 저장하고 관리하며, 웹사이트의 클라이언트 측(client-side)에서 모든 것이 매끄럽게 작동할 수 있게 해줌.&lt;/p&gt;
&lt;p&gt;프론트엔드에 있는 사용자들이 취하는 행동들을 처리&lt;/p&gt;
&lt;p&gt;사용자(User)가 블로그 등에서 포스팅을 쓰고 난 후 그 글을 발행하는 일이나 예약일을 맞추는 등의 행동을 하였을 때 백엔드 서버에서는 그 이벤트들에 반응하고, 그에 따른 응답값을 내려줌.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;데이터베이스(Database)&lt;/p&gt;
&lt;p&gt;웹서비스의 데이터를 저장할 방법으로 오래 보관할 내용은 데이터베이스에 기록함.&lt;/p&gt;
&lt;p&gt;* RDB(Relational Data Base) : &lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;MySQL, PostgreSQL, Oracle&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;DB에 컬럼, 레코드, 테이블의 구조를 갖춰 데이터를 기록하는데, 이는 우리가 흔히 쓰는 스프레드시트 프로그램의 구조와 비슷함. 엑셀이나 구글시트의 시트가 DB의 테이블이고, 각 시트의 행이 레코드이며, 열이 컬럼임.&lt;/p&gt;
&lt;p&gt;엑셀로 가계부를 정리할 때, 날짜/내역/금액/비고 등의 열을 두고, 각각의 행에 입출금 내역을 적어 놓는 것과 같습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li id=&quot;4b5c&quot; data-selectable-paragraph=&quot;&quot;&gt;가계부(시트) =&amp;gt; 테이블&lt;/li&gt;
&lt;li id=&quot;8b7e&quot; data-selectable-paragraph=&quot;&quot;&gt;날짜/내역/금액/비고(열) =&amp;gt; 컬럼&lt;/li&gt;
&lt;li id=&quot;5f9c&quot; data-selectable-paragraph=&quot;&quot;&gt;입출금 내역(행) =&amp;gt; 레코드&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>ro_ot</author>
      <guid isPermaLink="true">https://settlelib.tistory.com/98</guid>
      <comments>https://settlelib.tistory.com/98#entry98comment</comments>
      <pubDate>Tue, 12 Jan 2021 10:35:31 +0900</pubDate>
    </item>
    <item>
      <title>python 기초 문법</title>
      <link>https://settlelib.tistory.com/92</link>
      <description>&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;Lambda(익명 함수)&lt;/p&gt;
&lt;p&gt;try ~ expect, finally(예외처리)&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;if,&amp;nbsp; elif, else (조건문, conditional statements)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;조건문이란? 주어진 조건식의 결과에 따라 다른 &lt;b&gt;&lt;u&gt;명령을 수행하도록 프로그램의 흐름을 제어하는 명령문&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;if 문&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1601969674782&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if 조건:
    참인경우 실행할 명령 1
    참인경우 실행할 명령 2
    참인경우 실행할 명령 3
    ....
다음 명령 &lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;if문의 조건이 참인 경우 명령을 실행합니다.&lt;/li&gt;
&lt;li&gt;if조건문에서 &quot;조건문&quot;이란 참과 거짓을 판단하는 문장을 말합니다.&lt;/li&gt;
&lt;li&gt;if 조건문 뒤에는 반드시 콜론( ' : ' ) 이 붙어야 합니다.&lt;/li&gt;
&lt;li&gt;들여 쓰기가 끝나면 조건문을 종료합니다.&lt;/li&gt;
&lt;li&gt;위의 예제에서 조건이 거짓이면 아무런 일도 하지 않습니다.(조건이 거짓일 때는 'not', '!='이라는 연산자를 사용합니다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1601970004791&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a = 10
b = 10
c = 10

if a == 10:
	print('a는 10입니다.')

if a == 9:
	print('9가 아닙니다') # 조건이 거짓이므로 아무런 일도 일어나지 않습니다.

if not b == 9:
	print('b는 9가 아니고', b ,'입니다.')
    
if c != 8:
	print('c는 8가 아니고', c ,'입니다.')&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;if - else 문&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;파이썬에서는 조건 분기를 표현하기 위해 if-else 문을 사용합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1601971075766&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if 조건식:
    조건식의 결과가 참(True)일 때만 실행되는 명령문
else:
    조건식의 결과가 거짓(False)일 때만 실행되는 명령문&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조건식의 결과가 참(True)인 경우 if 문 다음의 명령문이 실행되며, else 문 다음의 명령문들은 실행되지 않습니다.&lt;/li&gt;
&lt;li&gt;조건식의 결과가 거짓(False)인 경우 else문 다음의 명령문들이 실행됩니다.&lt;/li&gt;
&lt;li&gt;if 및 else 키워드의 맨 끝에도 콜론 ( ' : ' )을 삽입해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601971452873&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a = 'sweet'

if a == 'sweet':
	print('삼키다')
else:
	print('뱉는다')&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;if - elif - else 문&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1601971557330&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if 조건식1:
    조건식1의 결과가 참(True)일 때만 실행되는 명령문
elif 조건식2:
    조건식2의 결과가 참(True)일 때만 실행되는 명령문
else:
    조건식1, 2의 결과가 모두 거짓(False)일 때만 실행되는 명령문&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 개의 조건이 있을 경우 사용합니다.&lt;/li&gt;
&lt;li&gt;모든 명령문은 중첩이 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601971583543&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;season = &quot;winter&quot;  

if season == &quot;spring&quot;:
    print(&quot;봄이 왔네요!&quot;)

elif season == &quot;summer&quot;:
    print(&quot;여름에는 더워요~&quot;)

elif season == &quot;fall&quot;:
    print(&quot;가을은 독서의 계절!&quot;)

elif season == &quot;winter&quot;:
    print(&quot;겨울에는 눈이 와요~&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;while, for (반복문, iteration statements)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;어떤 조건을 만족시킬 때까지 특정 행동을 지속적으로 반복해서 수행해야 한다는 의미이다.&lt;/p&gt;
&lt;p&gt;프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어해 주는 명령문&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;while 문&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1601973073219&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;while 조건식:
    조건식의 결과가 참(True)인 동안 반복적으로 실행되는 명령문&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;while문에 진입하기 위해서는 조건식의 결과가 참(True)이어야 합니다.&lt;/li&gt;
&lt;li&gt;들여 쓰기가 끝나면 반복문을 종료합니다.&lt;/li&gt;
&lt;li&gt;조건이 거짓인 경우 아무런 일도 하지 않습니다.&lt;/li&gt;
&lt;li&gt;반복문 내에서 'break' 명령을 만나면 현재의 반복문을 탈출합니다.&lt;/li&gt;
&lt;li&gt;반복문 내에서 'continue' 명령을 만나면 현재의 반복문의 처음으로 돌아가서 조건을 비교합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601974069156&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;i = 1

while i &amp;lt;= 10:
    print('{0}번째 계단을 밟고 올라가고 있습니다.'.format(i) )
    i+=1
print('정상에 올라섰습니다.')&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;break 문&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;while문의 동작에서 가장 중요한 것이 바로 조건식의 결과를 변경하는 명령문입니다.&lt;/li&gt;
&lt;li&gt;while문은 조건문이 참인 동안 계속해서 반복적으로 명령문을 수행할 것입니다. 이때 강제로 멈추게 하는 것이 'break' 문입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;다음은 커피가 떨어졌다면 판매를 중단하고 &quot;판매 중지&quot; 메시지를 사용자에게 보여주는 코드입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UByfS/btqKgEsVBfa/lfP9Uvquo2SANra4br0NP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UByfS/btqKgEsVBfa/lfP9Uvquo2SANra4br0NP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UByfS/btqKgEsVBfa/lfP9Uvquo2SANra4br0NP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUByfS%2FbtqKgEsVBfa%2FlfP9Uvquo2SANra4br0NP0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1601975715497&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;coffee = 10
money = 300

while money:
    print(&quot;잠시만 기다려주세요, 커피 추출중입니다.&quot;)
    coffee = coffee -1
    print(&quot;남은 커피양은 {0}개 입니다.&quot;.format(coffee))
    if coffee == 0:
        print(&quot;커피가 다 떨어져서 판매를 중지합니다.&quot;)
        break&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위에 코드를 보면 coffee == 0: 의 조건이 참이 되므로 if문 다음 문장이 실행되고 'break'문이 호출되어 'while'문을 빠져나갑니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;continue문&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;while문 안의 문장을 수행하다 조건이 거짓(False)일 때 while문을 빠져나가지 않고 맨 처음(조건문)으로 돌아가는 것입니다.&lt;/li&gt;
&lt;li&gt;해당 키워드 바로 다음 명령문부터 해당 반복문의 마지막 명령문 까지를 모두 건너뛰고 바로 다음 반복을 실행하는 것입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;다음은 1 ~ 10까지의 숫자 중 짝수만 출력하는 코드입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1601976605334&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a = 0

while a &amp;lt; 10:
    a = a+1
    if (a%2) == 1:
        continue
    print(a)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위 코드에서 보면 a가 1 만큼씩 증가하다 if(조건문)이 참이 되는 경우 'continue' 문장을 수행하도록 합니다.&lt;/p&gt;
&lt;p&gt;즉, if문을 건너뛰고 while문의 처음으로(조건문 : a &amp;lt; 10 ) 돌아가게 하는 명령어입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;for문&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1601976822157&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for 변수 in 문자열(or 튜플 or 리스트):
    반복적으로 실행하고자 하는 명령문&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문자열이나 튜플, 리스트의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입되어 실행하고자 하는 명령문 등이 수행됩니다.&lt;/li&gt;
&lt;li&gt;in 키워드가 가리키는 첫 번째 요소를 꺼내 변수에 대입하고, 이런 대입된 변수는 for문 내부의 명령문에서 사용됩니다.&lt;/li&gt;
&lt;li&gt;for문 내부의 모든 명령문을 수행하고 나면 다시 해당 요소로 돌아가 다음 요소가 있는지를 검사하고 존재한다면 변수에 대입하고 루프를 실행하며, 존재하지 않는다면 for문은 종료됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601977923309&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;string = &quot;python&quot;
tu = ('1,2,3')
li = [&quot;가&quot;,&quot;나&quot;,&quot;다&quot;,&quot;라&quot;]

for c in string:
    print(c)

for t in tu:
    print(t)

for l in li:
    print(l)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위에 코드를 실행해보면 하나씩 출력되는 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;range( ) 함수&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전달된 인수에 따라 연속된 정수들을 반환하는 함수입니다.&lt;/li&gt;
&lt;li&gt;range 괄호 ( ' ( ) ' ) 안에 인자를 주면 그 범위 안의 정수들을 만들어 줍니다.&lt;/li&gt;
&lt;li&gt;시작 정수와 step는 생략이 가능합니다.&lt;/li&gt;
&lt;li&gt;인수가 하나만 전달될 경우 0부터 (마지막 정수-1)까지 1씩 증가하는 연속된 정수들을 반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601978158243&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1. range(마지막정수)
2. range(시작정수, 마지막정수)
3. range(시작정수, 마지막정수, step)&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1601978357077&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in range(5):
	print(i)
    
for i in range(0,5):
	print(i)
    
for i in range(0,5,2):
	print(i)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;enumerate( ) 함수&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;반복문 사용 시 몇 번째 반복문인지 확인이 필요할 때 사용합니다.&lt;/li&gt;
&lt;li&gt;인덱스 번호와 컬렉션의 원소를 tuple형태로 반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601980123745&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;t = [1,3,5,7,43,23]
for p in enumerate(t):
    print(p)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;tuple형태 반환을 이용하여 아래처럼 활용할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601980275483&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;t = [1,3,5,7,43,23]
for i, v in enumerate(t):
    print('index : {}, value : {}'.format(i, v))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Try, Except, else, Finally문(예외 처리, E&lt;span&gt;&lt;span&gt;xception&lt;/span&gt;&lt;/span&gt;)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;프로그램을 만들다 보면 많은 오류를 만나게 되는데 이러한 오류를 무시하고 싶을 때 Try, except를 사용해서 예외 적으로 오류를 처리할 수 있게 해줍니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다음은 오류 처리를 위한 try, except문의 기본 구조입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1602139682152&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;try:
    ...
except [발생 오류[as 오류 메시지 변수]]:
    ...&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;try 블록 수행 중 오류가 발생하면 except 블록이 수행되지만 오류가 발생하지 않는다면 except 블록은 수행되지 않습니다.&lt;/li&gt;
&lt;li&gt;except 중 발생오류 및 오류 메시지 변수는 생략이 가능합니다.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;다음은 try, except, else, finally를 사용한 코드입니다&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;첫번째 루프 : 에러가 발생하지 않으므로 else절과 finally절이 실행되었습니다.&lt;/li&gt;
&lt;li&gt;두번째 루프 : 에러가 발생했으므로 except절과 finally절이 실행되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1602145239747&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for i in [&quot;11&quot;,&quot;number&quot;]:
    try:
        int(i)
    except ValueError as m:
        print(m)
    else:
        print(&quot;No Error!&quot;)
    finally:
        print(&quot;Finally Code&quot;)
    print(&quot;\n&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;try : 정상적으로 실행할 프로그램 코드 작성&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;except : 'try'에서 실행한 코드에 예외가 발생했을 경우 실행하&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;else : 예외처리할 오류가 없을 때 실행되는 코드&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;finally : 오류 발생여부 상관 없이 마지막에 실행되는 코드&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;raise : 오류를 일부러 발생시키기&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;※오류 회피&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단순히 오류를 회피하고 다음 실행코드로 넘어가고 싶을 때는 pass를 활용하면 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1602145536603&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;try:
    int(&quot;number&quot;)
except ValueError:
    pass&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;함수(function)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로그래밍을 하다 보면 같은 내용을 반복해서 작성할 때가 종종 있습니다. 이때 필요한 것이 함수입니다.&lt;/li&gt;
&lt;li&gt;자신이 만든 프로그램을 함수 화하면 프로그램의 가독성이 좋아지고, 오류가 발생한 부분도 쉽게 파악할 수 있습니다.&lt;/li&gt;
&lt;li&gt;하나의 특정 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합을 함수(function)라고 부릅니다.&lt;/li&gt;
&lt;li&gt;함수를 만들 때는 def 예약어를 사용하며, 내용은 들여쓰기합니다.(들여쓰기가 종료되면 함수 정의가 종료됩니다.)&lt;/li&gt;
&lt;li&gt;사용자에 임의로 변수명을 만들 수 있습니다.&lt;/li&gt;
&lt;li&gt;매개 변수에 초기값 지정이 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601981184360&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def 함수명 (매개변수1, ...):
	실행할 코드1
    실행할 코드2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수명은 함수를 호출할 때 사용하기 위한 이름이며, 매개변수(parameter)는 함수 호출 시 전달 되는 인수의 값을 함수 내부에서 사용 가능하도록 저장할 변수의 이름입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 코드와 같은 방식으로 함수를 작성 및 호출합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1601981554009&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def hello(): # 함수의 선언
    print(&quot;- 함수 시작 -&quot;)
    print(&quot;안녕하세요!&quot;)
    print(&quot;- 함수 끝 -&quot;)

hello() # 함수의 호출

def sum(a,b):
	print(a + b)
    
sum(1, 2)
sum(3, 4)&lt;/code&gt;&lt;/pre&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;리턴 값(return)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리턴값이란 함수가 어떠한 기능을 수행하고 결과를 호출한 곳으로 돌려주는 값을 말합니다.&lt;/li&gt;
&lt;li&gt;함수의 결과값은 하나입니다.&lt;/li&gt;
&lt;li&gt;return 명령어를 만나면 함수가 종료 됩니다.&lt;/li&gt;
&lt;li&gt;값을 되돌려 줄때 return 명령어를 사용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;매개변수(parameter)와 인수(arguments) 비교&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;매개변수는 함수에 입력으로 전달된 값을 받는 변수를 의미하고 인수는 함수를 호출할 때 전달하는 입력값을 의미합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601981838816&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def add(a, b): # a, b는 매개변수
	return a+b
    
print(add(3,4)) # 3, 4는 인수&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;람다 함수(익명함수)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;람다함수를 통해 이름이 없는 함수를 만들 수 있습니다.&lt;/li&gt;
&lt;li&gt;람다함수의 장점은 코드의 간결함과 메모리의 절약이라고 할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;다음은 람다 함수의 기본 구조 입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1602148651281&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;lambda 인자1, 인자2, ... : 표현식&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;람다함수는 보통 한 줄로 정의 됩니다.&lt;/li&gt;
&lt;li&gt;람다함수는 결과부분된 부분을 return키워드 없이 자동으로 return 해줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;598&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZb5ka/btqKwQZwWpZ/YtWEKd8vImCi6BcgeIwrvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZb5ka/btqKwQZwWpZ/YtWEKd8vImCi6BcgeIwrvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZb5ka/btqKwQZwWpZ/YtWEKd8vImCi6BcgeIwrvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZb5ka%2FbtqKwQZwWpZ%2FYtWEKd8vImCi6BcgeIwrvk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;598&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;익명함수라는 이름처럼 lambda 함수는 함수의 이름을 지정하지 않습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1602150578789&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 인자로 받은 숫자에 +1을 해주는 함수
(lambda x : x+1)(3)  # 4&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위 코드는 함수에 이름이 없고, 저장된 변수가 없기 때문에 다시 사용할 수는 없습니다.&lt;/p&gt;
&lt;p&gt;다만, 람다함수도 객체이기 때문에 정의와 동시에 변수에 담을 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1602152130909&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;func = lambda x : x + 1
func(4)		# 5&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;클래스(Class)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로그램의 청사진이라고 볼 수 있습니다.&lt;/li&gt;
&lt;li&gt;틀 또는 공장과 같은 성격을 가지고 있습니다.&lt;/li&gt;
&lt;li&gt;함수와 변수를 모아놓은 것으로 변수는 '멤버 변수', 함수는 '메서드'라고 칭합니다.&lt;/li&gt;
&lt;li&gt;클래스명은 CapWords 방식으로 명명합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;Capwords 방식 : 단어를 대문자로 시작&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;클래스를 생성하는 방법은 아래와 같습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1602032963225&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  class 클래스 이름:
    변수1
    변수2
    .....필요한만큼 변수 제공...
    
    def 메소드1(인수):
      ...메소드 처리...
    def 메소드2(인수):
      ...메소드 처리...
   
      ... 필요한만큼 메소드 제공...&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;다음은 2대의 계산기의 기능을 구현한 일반적인 코드입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1602034626224&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;result1 = 0
result2 = 0

def add1(num):
    global result1
    result1 += num
    return result1

def add2(num):
    global result2
    result2 += num
    return result2

print(add1(3))
print(add1(4))
print(add2(3))
print(add2(7))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;계산기처럼 결괏값을 유지하기 위해 result 전역 변수를 사용하였고, 함수를 각각 따로 만들어야 합니다.&lt;/p&gt;
&lt;p&gt;이처럼 구현이 가능하지만 계산기가 더 많아지면 구현하기 어려워질 것입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;클래스를 사용한다면 아래 코드와 같이 쉽게 해결이 가능합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1602034979923&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Calculator:
	def __init__(self):
    self.result = 0
    
    def add(self, num):
    self.result += num
    return self.result
    
cal1 = Calculator()
cal2 = Calculator()

print(cal1.add(3))
print(cal1.add(4))
print(cal2.add(3))
print(cal2.add(7))&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Calculator 클래스로 만든 별개의 계산기 cal1, cal2(파이썬에서는 이것을 객체라고 부릅니다)가 각각의 역할을 수행합니다.&lt;/li&gt;
&lt;li&gt;다른 계산기의 결괏값과 상관없이 독립적인 값을 유지합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;클래스와 객체&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgArUJ/btqKopAXUFR/cRrTs5cWY29zKFGrMxq3w0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgArUJ/btqKopAXUFR/cRrTs5cWY29zKFGrMxq3w0/img.png&quot; data-alt=&quot;과자 틀 및 과자&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgArUJ/btqKopAXUFR/cRrTs5cWY29zKFGrMxq3w0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgArUJ%2FbtqKopAXUFR%2FcRrTs5cWY29zKFGrMxq3w0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;과자 틀 및 과자&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;위 그림을 비유하여 클래스와 객체를 설명하면 다음과 같습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;과자 틀 &amp;rarr; 클래스 (class)&lt;/li&gt;
&lt;li&gt;과자 틀에 의해서 만들어진 과자 &amp;rarr; 객체 (object)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;클래스(Class)란 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 설계 도면이고(과자 틀), 객체(object)란 클래스로 만든 피조물(과자 틀을 사용해 만든 과자)을 뜻합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;클래스로 만든 객체는 각각의 객체마다 고유한 성격을 가집니다.&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;객체와 인스턴스의 차이&lt;/p&gt;
&lt;p&gt;클래스로 만든 객체를 인스턴스라 합니다.&lt;/p&gt;
&lt;p&gt;만약, a = Cookie( )가 있다고 가정한다면 다음과 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;a 는 객체&lt;/li&gt;
&lt;li&gt;a 객체는 Cookie의 인스턴스&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;즉, 인스턴스는 특정 객체(a)가 어떤 클래스(Cookie)의 객체인지를 &lt;b&gt;&lt;u&gt;관계 위주&lt;/u&gt;&lt;/b&gt;로 설명할 때 사용합니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;클래스 멤버&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클래스는 테이터를 표현하는 속성(attribute)과 행위를 표현하는 메서드(method)를 포함하는 논리적인 컨테이너입니다.&lt;/li&gt;
&lt;li&gt;세부적으로 메서드(method), 프로퍼티(property), 클래스 변수(class variable), 인스턴스 변수(instance variable), 초기자(initializer), 소멸자(destructor) 등 다양한 종류의 멤버들로 구분할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;메서드&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클래스의 행위를 표현하는 것으로 클래스 내의 함수로 볼 수 있습니다.&lt;/li&gt;
&lt;li&gt;파이썬에서 메서드는 다음과 같이 볼 수 있습니다.
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;인스턴스 메서드(instance method) - 인스턴스 변수에 액세스 할 수 있도록 메서드의 첫 번째 파라미터에 항상 객체 자신을 의미하는 &quot;self&quot;라는 파라미터를 가집니다.&lt;/li&gt;
&lt;li&gt;클래스 메서드(class method)&lt;/li&gt;
&lt;li&gt;정적 메서드(static method)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1602036501067&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Rectangle:
    count = 0  # 클래스 변수
 
    # 초기자(initializer)
    def __init__(self, width, height):
        # self.* : 인스턴스변수
        self.width = width
        self.height = height
        Rectangle.count += 1
 
    # 메서드
    def calcArea(self):
        area = self.width * self.height
        return area&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;클래스 변수&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메서드 밖에 존재하는 변수를 클래스 변수 합니다.&lt;/li&gt;
&lt;li&gt;클래스를 사용하는 모두에게 공용으로 사용되는 변수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;인스턴스 변수&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하나의 클래스로부터 여러 객체 인스턴스를 생성해서 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;각 객체 인스턴스마다 별도로 존재합니다.&lt;/li&gt;
&lt;li&gt;클래스 정의에서 메서드 안에 사용되면서 &quot;self. 변수명&quot;처럼 사용되는 변수를 인스턴스 변수(instance variable)라 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Initializer(초기자)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클래스로부터 새 객체를 생성할 때마다 실행되는 특별한 메서드로 __init__()이라는 메서드가 있습니다.&lt;/li&gt;
&lt;li&gt;클래스로부터 객체를 만들 때, 인스턴스 변수를 초기화하거나 객체의 초기 상태를 만들기 위한 문장들을 실행하는 곳입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;아래의 예제를 보면 width와 height라는 입력 파라미터들을 각각 self.width와 self.height라는 인스턴스 변수에 할당하여 객체 내에서 계속 사용할 수 있도록 준비하고 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1602043272616&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def __init__(self, width, height):
    self.width = width
    self.height = height
 
    # private 변수 __area
    self.__area = width * height
 
# private 메서드
def __internalRun(self):
    pass&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;정적 메서드&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인스턴스 메서드가 객체의 인스턴스 필드를 self를 통해 접근할 수 있는 반면, 정적 메서드는 이러한 self 파라미터를 갖지 않고 인스턴스 변수에 접근할 수 없습니다.&lt;/li&gt;
&lt;li&gt;객체 필드와 독립적이지만 로직상 클래스 내에 포함되는 메서드에 사용됩니다.&lt;/li&gt;
&lt;li&gt;메서드 앞에 &lt;u&gt;&lt;b&gt;@staticmethod라는&lt;/b&gt;&lt;/u&gt; Decorator를 표시하여 해당 메서드가 정적 메서드임을 표시합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;클래스 메서드&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메서드 앞에 &lt;u&gt;&lt;b&gt;@classmethod라는&lt;/b&gt;&lt;/u&gt; Decorator를 표시하여 해당 메서드가 클래스 메서드임을 표시합니다.&lt;/li&gt;
&lt;li&gt;객체 인스턴스를 의미하는 self 대신 cls라는 클래스를 의미하는 파라미터를 전달받습니다.&lt;/li&gt;
&lt;li&gt;전달받은 cls파라미터를 통해 클래스 변수 등을 액세스 할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;정적 메서드와 클래스 메서드&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일반적으로 인스턴스 데이터를 액세스 할 필요가 없는 경우 사용합니다.&lt;/li&gt;
&lt;li&gt;클래스 변수를 액세스 할 필요가 있을 때 &lt;u&gt;&lt;b&gt;클래스 메서드&lt;/b&gt;&lt;/u&gt;를 사용합니다.&lt;/li&gt;
&lt;li&gt;클래스 변수를 액세스 할 필요가 없을 때 &lt;u&gt;&lt;b&gt;정적 메서드&lt;/b&gt;&lt;/u&gt;를 사용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1602043506318&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Rectangle:
    count = 0  # 클래스 변수
 
    def __init__(self, width, height):
        self.width = width
        self.height = height
        Rectangle.count += 1
 
    # 인스턴스 메서드
    def calcArea(self):
        area = self.width * self.height
        return area
 
    # 정적 메서드
    @staticmethod
    def isSquare(rectWidth, rectHeight):
        return rectWidth == rectHeight   
 
    # 클래스 메서드
    @classmethod
    def printCount(cls):
        print(cls.count)   
 
 
# 테스트
square = Rectangle.isSquare(5, 5)        
print(square)   # True        
 
rect1 = Rectangle(5, 5)
rect2 = Rectangle(2, 5)
rect1.printCount()  # 2 &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;클래스 상속&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클래스를 상속받기 위해서는 파생 클래스(자식 클래스)에서 클래스명 뒤에 베이스 클래스(부모 클래스) 이름을 괄호와 함께 넣어 주면 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1602044467250&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Animal:
    def __init__(self, name):
        self.name = name
    def move(self):
        print(&quot;move&quot;)
    def speak(self):
        pass
 
class Dog (Animal):
    def speak(self):
        print(&quot;bark&quot;)
 
class Duck (Animal):
    def speak(self):
        print(&quot;quack&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파생 클래스는 베이스 클래스의 멤버들을 호출하거나 사용할 수 있으며, 물론 파생 클래스 자신의 멤버들을 사용할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1602044595253&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dog = Dog(&quot;doggy&quot;) # 부모클래스의 생성자
n = dog.name # 부모클래스의 인스턴스변수
dog.move()   # 부모클래스의 메서드
dog.speak()  # 파생클래스의 멤버&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;자료형&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. 리스트 자료형(List)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 요소들을 갖는 집합으로 새로운 요소를 추가하거나 갱신, 삭제하는 일이 가능합니다.&lt;/li&gt;
&lt;li&gt;리스트 자료형은 아래와 같은 구조를 가지게 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1602133848247&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;리스트명 = [요소1, 요소2, 요소3, ...]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이와 같은 구조를 통해 아래와 같은 리스트들을 만들 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1602134921348&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a = []
b = [1, 2, 3]
c = ['Life', 'is', 'too', 'short']
d = [1, 2, 'Life', 'is']
e = [1, 2, ['Life', 'is']]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;리스트는 a처럼 아무것도 포함하지 않아 비어 있는 리스트 ( '[ ]' )일 수 도 있고 숫자나 문자열등을 요솟값으로 가질 수 도 있습니다.&lt;/p&gt;
&lt;p&gt;즉, 리스트 안에는 어떠한 자료형도 포함할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. 튜플 자료형(Tuple)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷합니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;리스트는 [ ]으로 둘러싸지만 튜플은 ( )를 사용합니다..&lt;/li&gt;
&lt;li&gt;리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없습니다.&lt;/li&gt;
&lt;li&gt;튜플은 t2처람 하나의 요소만 가질 때는 요소 뒤에 콤마( ' , ' )를 붙여야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1602135516390&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;t1 = ()
t2 = (1,)
t3 = (1, 2, 3)
t4 = 1, 2, 3
t5 = ('a', 'b', ('ab', 'cd'))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. 딕셔너리 자료형(Dictionary)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Key와 Value를 한 쌍으로 갖는 자료형입니다.&lt;/li&gt;
&lt;li&gt;Key로 신속하게 Value를 찾아내는 해시테이블 구조를 갖습니다.&lt;/li&gt;
&lt;li&gt;딕셔너리 자료형은 아애와 같은 구조를 가지게 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1602136357620&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{Key1:Value1, Key2:Value2, Key3:Value3, ...}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Key와 Value의 쌍 여러 개가 { }로 둘러싸여 있습니다.&lt;/li&gt;
&lt;li&gt;각각의 요소는 Key : Value 형태로 이루어져 있고 쉼표(,)로 구분되어 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1602136721197&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;※ Key에는 변하지 않는 값을 사용하고, Value에는 변하는 값과 변하지 않는 값 모두 사용할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4. 집합 자료형(Set)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중복이 없는 요소들로 구성된 자료형입니다.&lt;/li&gt;
&lt;li&gt;내부적으로 요소들을 순서대로 저장하지 않기 때문에, 순서에 의존하는 기능 사용이 불가능합니다.&lt;/li&gt;
&lt;li&gt;아래 코드 처럼 중복된 값은 한번만 가지고 있게 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1602137364785&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# set 정의
myset = { 1, 1, 3, 5, 5 }
print(myset)    # 출력: {1, 3, 5}
 
# 리스트를 set으로 변환
mylist = [&quot;A&quot;, &quot;A&quot;, &quot;B&quot;, &quot;B&quot;, &quot;B&quot;]
s = set(mylist)
print(s)        # 출력: {'A', 'B'}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;※ 비어 있는 집합 자료형은 s = set( )로 만들 수 있습니다.&lt;/p&gt;</description>
      <category>python</category>
      <author>ro_ot</author>
      <guid isPermaLink="true">https://settlelib.tistory.com/92</guid>
      <comments>https://settlelib.tistory.com/92#entry92comment</comments>
      <pubDate>Tue, 6 Oct 2020 17:27:25 +0900</pubDate>
    </item>
    <item>
      <title>자주 사용하는 keyword</title>
      <link>https://settlelib.tistory.com/91</link>
      <description>&lt;p&gt;지속적으로 업데이트 예정입니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아래의 코드는 python에서 이미 예약 돼 있는 키워드들을 확인할 수 있는 코드 입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1601957053542&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import keyword

klist = keyword.kwlist

for i in range(len(klist)):
	print(&quot;[{:^10}]&quot;.format(klist[i]), end = '')
    if(i+1) % 5 == 0:
    	print()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-10-06 오후 1.04.37.png&quot; data-origin-width=&quot;428&quot; data-origin-height=&quot;123&quot; width=&quot;560&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpxKp6/btqKgFY38rh/cHqtuPKpW0XkIrMpb89AJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpxKp6/btqKgFY38rh/cHqtuPKpW0XkIrMpb89AJk/img.png&quot; data-alt=&quot;실행 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpxKp6/btqKgFY38rh/cHqtuPKpW0XkIrMpb89AJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpxKp6%2FbtqKgFY38rh%2FcHqtuPKpW0XkIrMpb89AJk%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-10-06 오후 1.04.37.png&quot; data-origin-width=&quot;428&quot; data-origin-height=&quot;123&quot; width=&quot;560&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;자주 사용하는 키워드들을 살펴봅니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;True/False&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Python에서 진리 값을 나타내고 비교 연산이나 논리적(Boolean) 연산의 결과를 나타냅니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601957326864&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(True or False)	# True
print(True and False)	# False
print(True==1)			# True
print(False==0)			# True
print(True + True)		# 2&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;None&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;값이 없음을 나타내는 Python의 특수 상수입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601957464650&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(None == 0)		# False
print(None == [])		# False
print(None == False)	# False
print(None == &quot;&quot;)		# False&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;assert&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주로 디버깅 목적으로 사용됩니다.&lt;/li&gt;
&lt;li&gt;디버그(debug), 디버깅(debugging)은 컴퓨터 프로그램의 정확성이나 논리적인 오류(버그)를 찾아내는 테스트 과정을 뜻합니다.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;assert&lt;/b&gt;&lt;/u&gt;를 사용하여 프로그래밍을 하는 동안 프로그램의 내부 상태나 우리의 가정이 사실인지를 파악할 수 있습니다.&lt;/li&gt;
&lt;li&gt;조건이 False이면 AssertionError가 발생합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601958321825&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a = 10
assert a &amp;gt; 5

b = 10
assert b &amp;lt; 5, &quot;b의 값이 더 큽니다&quot; &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>python</category>
      <category>assert</category>
      <category>FALSE</category>
      <category>keyword</category>
      <category>None</category>
      <category>Python</category>
      <category>True</category>
      <category>자주</category>
      <author>ro_ot</author>
      <guid isPermaLink="true">https://settlelib.tistory.com/91</guid>
      <comments>https://settlelib.tistory.com/91#entry91comment</comments>
      <pubDate>Tue, 6 Oct 2020 13:08:51 +0900</pubDate>
    </item>
    <item>
      <title>Python 기초</title>
      <link>https://settlelib.tistory.com/90</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;들여쓰기(indent)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;python은 들여쓰기로 영역 지정.&lt;/li&gt;
&lt;li&gt;코드 블럭을 구성하기 위해 if, for, class, def 등을 작성하면서 나오는 ':' 다음 아랫 줄은 반드시 들여 쓰기를 해야 함.&lt;/li&gt;
&lt;li&gt;들여쓰기 방법은 한칸, 두칸, 4칸, 탭 등 여러가지 방식이 있으나 블록 내에서 들여쓰기 칸 수가 같아야 함.&lt;/li&gt;
&lt;li&gt;위반 시, &quot;IndentationError: unexpected indent&quot;라는 에러를 출력함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;행결합 : 세미콜론(&amp;nbsp; ' ; ' )&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파이썬은 구문이 끝나고 다음 줄로 내려갈 때 세미콜론이 필요 없습니다.&lt;/li&gt;
&lt;li&gt;파이썬은 줄이 바뀌면 자동으로 구분이 종료되었음을 인식 합니다.&lt;/li&gt;
&lt;li&gt;여러 구문을 이어 쓸 때는 세미콜론을 쓰기도 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;※ 아래 코드를 입력해 보면 주석 처리가 된 부분에서 에러가 발생한다는 것을 알 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1601946586413&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;print(&quot;Hello Python!!&quot;)
print(&quot;Hello Python!!&quot;);
# print(&quot;첫번째 줄!!&quot;) print(&quot;두번째 줄&quot;) # 에러발생
print(&quot;첫번째 줄!!&quot;); print(&quot;두번째 줄&quot;)
print(&quot;첫번째 줄!!&quot;); print(&quot;두번째 줄&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;행분리 : 역슬레쉬(&amp;nbsp; ' \ '&amp;nbsp; ), 괄호 (&amp;nbsp; '( )'&amp;nbsp; )&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1줄의 내용이 길어서 여러 줄로 타이핑해야 할 경우에는 (&amp;nbsp; ' \ '&amp;nbsp; )나 &amp;nbsp; ( &amp;nbsp; ' (&amp;nbsp; ) ' &amp;nbsp; )를 이용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601946826236&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 긴 내용을 한줄인것 처럼 인식 시키기(\ 사용)
a = 1 + 2 + 3 + \
      4 + 5 + 6
      
# 긴 내용을 한줄인것 처럼 인식 시키기(괄호 사용)
b = (1 + 2 + 3 +
        4 + 5 + 6)
        
#  파라메터를 넘기는 것이라면 콤마(comma) 뒤에서 그냥 엔터를 쓰면 됩니다.
print(&quot;Hello&quot;,  &quot;Python&quot;,
          sep=&quot;\t&quot;)

# 문자열 중간에 줄바꿈을 하면 자동으로 &quot;&quot;가 열고닫히며 1줄로 인식한다.
print(&quot;아주 아주 아주 긴 문자열이라고 가정하자 &quot; 
         &quot;한줄에 모두 타이핑이 힘들다면&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;확장 문자 (escape sequence)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다음은 자주 사용되는 확장 문자입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601950710641&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;\  : backslash 문자
\a : bell 문자
\b : backslash 문자
\n : newline 문
\r : carriage return 문자  	# \n과 헷갈릴때는 과거 사용하던 타자기를 생각하면 됩니다.
\t : tab 문자
\v : vertical tab 문자(수직 탭)
\f : Formfeed 문자			# \v와 \f는 프린트 출력용이기에 모니터 출력에서는 별 의미가 없습니다.
\' : 따옴표 문자
\&quot; : 쌍따옴표 문자&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;키워드(Keyword)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파이썬에서 이미 예약되어있는 문자열로 다른 용도로 사용이 불가능합니다.&lt;/li&gt;
&lt;li&gt;아래 코드로 python에 예약되어 있는 키워드들을 확인할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1601951534822&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import keyword

klist = keyword.kwlist
for i in range(len(klist)):
	print(klist[i])&lt;/code&gt;&lt;/pre&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;[False ] [None ] [True ] [and ] [as ] [assert ] [break ] [class ] [continue ] [def ] [del ] [elif ] [else ] [except ] [finally ] [for ] [from ] [global ] [if ] [import ] [in ] [is ] [lambda ] [nonlocal ] [not ] [or ] [pass ] [raise ] [return ] [try ] [while ] [with ] [yield ]&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;자세한 사항은 아래의 링크(자주 사용하는 keyword)를 확인하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://settlelib.tistory.com/91&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://settlelib.tistory.com/91&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1601959573178&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;자주 사용하는 keyword&quot; data-og-description=&quot;지속적으로 업데이트 예정입니다. 아래의 코드는 python에서 이미 예약 돼 있는 키워드들을 확인할 수 있는 코드 입니다. import keyword klist = keyword.kwlist for i in range(len(klist)): print(&amp;quot;[{:^10}]&amp;quot;.f..&quot; data-og-host=&quot;settlelib.tistory.com&quot; data-og-source-url=&quot;https://settlelib.tistory.com/91&quot; data-og-url=&quot;https://settlelib.tistory.com/91&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ertqVb/hyHKR7LLln/LZDTUV0tPItEOPR515zIm0/img.png?width=428&amp;amp;height=123&amp;amp;face=0_0_428_123,https://scrap.kakaocdn.net/dn/jQXYx/hyHKRGGTtU/480iPkkUMFS6fyycKdJ6Hk/img.png?width=428&amp;amp;height=123&amp;amp;face=0_0_428_123&quot;&gt;&lt;a href=&quot;https://settlelib.tistory.com/91&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://settlelib.tistory.com/91&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ertqVb/hyHKR7LLln/LZDTUV0tPItEOPR515zIm0/img.png?width=428&amp;amp;height=123&amp;amp;face=0_0_428_123,https://scrap.kakaocdn.net/dn/jQXYx/hyHKRGGTtU/480iPkkUMFS6fyycKdJ6Hk/img.png?width=428&amp;amp;height=123&amp;amp;face=0_0_428_123');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;자주 사용하는 keyword&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;지속적으로 업데이트 예정입니다. 아래의 코드는 python에서 이미 예약 돼 있는 키워드들을 확인할 수 있는 코드 입니다. import keyword klist = keyword.kwlist for i in range(len(klist)): print(&quot;[{:^10}]&quot;.f..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;settlelib.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;식별자(identifier)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변수, 상수, 함수, 사용자 정의 타입 등에서 다른 것들과 구분하기 위해 사용되는 각각의 이름입니다.&lt;/li&gt;
&lt;li&gt;사용자가 임의로 지정하여 사용하며 지정한 이름만 보아도 내용을 파악하기 쉽게 지정하는 것이 좋습니다.&lt;/li&gt;
&lt;li&gt;식별자는 소문자(a~z), 대문자(A~Z), 숫자(0~9), 밑줄( ' _ ' )의 조합입니다.&lt;/li&gt;
&lt;li&gt;식별자는 숫자로 시작될 수 없습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;다음은 식별자(identifier) 명칭의 작성 스타일입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;카멜 표기법(Camel Case) : 여러 단어를 사용할 때 첫 글자를 대문자로 적되, 맨 앞에 오는 글자는 소문자로 표기.&lt;/li&gt;
&lt;li&gt;파스칼 표기법(Pascal Case) : 단어의 모든 앞글자를 대문자로 표기.&lt;/li&gt;
&lt;li&gt;스네이크 표기법(Snake Case) : 단어 사이에 언더바를 넣어서 표기하는 방법. 언더바&quot;_&quot; or &quot;__&quot;로 시작되는 식별자들은 예약되어 있는 경우가 많아 사용하지 않는 것이 관례입니다.&lt;/li&gt;
&lt;li&gt;헝가리안 표기법(Hungarian Notation) : 접두어에 자료형을 붙이는 표기법.(언어의 종류, 자료형 등이 다양해져 접두어의 의미가 없어졌기 때문에 최근에는 잘 사용하지 않습니다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;python에서 제공하는 &quot;Style Guide for Python Code&quot; 링크입니다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.python.org/dev/peps/pep-0008/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.python.org/dev/peps/pep-0008/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1601959567543&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;PEP 8 -- Style Guide for Python Code&quot; data-og-description=&quot;The official home of the Python Programming Language&quot; data-og-host=&quot;www.python.org&quot; data-og-source-url=&quot;https://www.python.org/dev/peps/pep-0008/&quot; data-og-url=&quot;https://www.python.org/dev/peps/pep-0008/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/z0Zlz/hyHKSew6x3/maeR9ukS5oKwDlKKYqbgnk/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://www.python.org/dev/peps/pep-0008/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.python.org/dev/peps/pep-0008/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/z0Zlz/hyHKSew6x3/maeR9ukS5oKwDlKKYqbgnk/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;PEP 8 -- Style Guide for Python Code&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;The official home of the Python Programming Language&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.python.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;변수(Variable)&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로그램 실행 중에 변경되는 값을 일시적으로 저장하는 기억 저장소의 별명입니다.&lt;/li&gt;
&lt;li&gt;문자나 숫자 같은 값을 담는 컨테이너입니다.&lt;/li&gt;
&lt;li&gt;항상 맨 마지막에 저장한 값만을 저장합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://settlelib.tistory.com/88&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://settlelib.tistory.com/88&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1601962141786&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Python 변수&quot; data-og-description=&quot;변수란? 객체를 가리키는 것이라고 말 할 수 있다. 어떤 값을 저장하는 공간 또는 저장소 변수의 값을 할당하기 위해서는 대입 연산자인 ' = '를 사용한다. 예를 들어, 5,000원을 들고 2,000원 짜리 ��&quot; data-og-host=&quot;settlelib.tistory.com&quot; data-og-source-url=&quot;https://settlelib.tistory.com/88&quot; data-og-url=&quot;https://settlelib.tistory.com/88&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dbZ0Ga/hyHMhRl92s/QTf0ubkUkoldCA9lMKSNOK/img.png?width=562&amp;amp;height=86&amp;amp;face=0_0_562_86,https://scrap.kakaocdn.net/dn/bffNPv/hyHMfTxyxh/XvbIG7K5MG3A9wxhgWKfLk/img.png?width=562&amp;amp;height=86&amp;amp;face=0_0_562_86&quot;&gt;&lt;a href=&quot;https://settlelib.tistory.com/88&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://settlelib.tistory.com/88&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dbZ0Ga/hyHMhRl92s/QTf0ubkUkoldCA9lMKSNOK/img.png?width=562&amp;amp;height=86&amp;amp;face=0_0_562_86,https://scrap.kakaocdn.net/dn/bffNPv/hyHMfTxyxh/XvbIG7K5MG3A9wxhgWKfLk/img.png?width=562&amp;amp;height=86&amp;amp;face=0_0_562_86');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Python 변수&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;변수란? 객체를 가리키는 것이라고 말 할 수 있다. 어떤 값을 저장하는 공간 또는 저장소 변수의 값을 할당하기 위해서는 대입 연산자인 ' = '를 사용한다. 예를 들어, 5,000원을 들고 2,000원 짜리 ��&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;settlelib.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;파이썬 문서 문자열&lt;/b&gt;&lt;/h3&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;Docstring이란 무엇입니까? 파이썬 문서화 문자열 (또는 문서화 문자열)은 파이썬 모듈, 함수, 클래스 및 메소드와 문자열을 연결시키는 것을 말합니다.&lt;/p&gt;
&lt;p&gt;작성하는 모듈, 함수, 클래스 및 메소드의 첫 번째 줄에 개체의 정의에 포함시킵니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;주석과 같지만 소스 코드에서 문서화하기 위해 사용됩니다. 모든 함수에는 docstring이 있어야 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Docstring은 객체의 &lt;b&gt;doc&lt;/b&gt; 속성과 help명령을 통해 액세스 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;작은따옴표 또는 큰 따옴표 세 개를 연달아 입력하는 방법으로 Docstring을 지정합니다. 권장사항으로 큰따옴표 세개를 사용합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1601966940026&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def show1(message):
    '''
    메시지를 출력해주는 함수
    형식) show1(message)
    '''
    print(message)


def show2(message='Hello Python!!'):
    &quot;&quot;&quot;
    메시지를 출력해주는 함수
    형식) show2(message='Hello Python!!')
    &quot;&quot;&quot;
    print(message)


print(show1.__doc__)
print('-' * 50)

help(show1)
print('*' * 50)

print(show2.__doc__)
print('*' * 50)

help(show2)
print('*' * 50)

show1(&quot;반갑습니다. 파이썬!!!&quot;)
show2()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;※ 실행 결과&lt;/p&gt;
&lt;pre id=&quot;code_1601966989190&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    메시지를 출력해주는 함수
    형식) show1(message)

--------------------------------------------------
Help on function show1 in module __main__:

show1(message)
    메시지를 출력해주는 함수
    형식) show1(message)

**************************************************

    메시지를 출력해주는 함수
    형식) show2(message='Hello Python!!')

**************************************************
Help on function show2 in module __main__:

show2(message='Hello Python!!')
    메시지를 출력해주는 함수
    형식) show2(message='Hello Python!!')

**************************************************
반갑습니다. 파이썬!!!
Hello Python!!

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;출처 : &lt;a href=&quot;https://wikidocs.net/20623&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://wikidocs.net/20623&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>python</category>
      <category>Python</category>
      <category>python 기초</category>
      <category>python 사용</category>
      <category>python3</category>
      <category>기초</category>
      <category>파이썬</category>
      <author>ro_ot</author>
      <guid isPermaLink="true">https://settlelib.tistory.com/90</guid>
      <comments>https://settlelib.tistory.com/90#entry90comment</comments>
      <pubDate>Mon, 5 Oct 2020 19:00:08 +0900</pubDate>
    </item>
    <item>
      <title>OOP(객체 지향 프로그래밍)</title>
      <link>https://settlelib.tistory.com/89</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;OOP&lt;/b&gt;(&lt;b&gt;O&lt;/b&gt;bject-&lt;b&gt;O&lt;/b&gt;riented &lt;b&gt;P&lt;/b&gt;rogramming) : 객체 지향 프로그래밍&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;객체 지향 프로그래밍&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 &quot;&lt;u&gt;객체&lt;/u&gt;&quot;들의 모임으로 파악하고자 하는 것이다.&lt;/p&gt;
&lt;p&gt;각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;가장 큰 특징은 클래스를 이용해 연관 있는 처리부분(함수)과 데이터 부분(변수)를 하나로 묶어 객체(인스턴스)를 생성해 사용한다는 점이다.&lt;/p&gt;
&lt;p&gt;또한, 프로젝트를 독립적인 객체 단위로 분리해서 작업할 수 있기 때문에 유지보수 측면도 뛰어나다.&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;&lt;b&gt;객체 지향 프로그래밍과 클래스 기반 프로그래밍의 차이점&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;객체지향&lt;/b&gt;은 네 가지 특징(추상화, 캡슐화, 상속, 다형성)을 골고루 사용해 코딩하는 프로그래밍이다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;클래스 단위 프로그래밍&lt;/b&gt;은 이런 특징을 고려하지 않고 클래스만을 이용해 코딩하는 방식을 말한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;클래스 단위 코딩을 객체지향 프로그래밍이라고도 부를 수 있다.&lt;/p&gt;
&lt;p&gt;클래스를 만들어 코딩 하는 자체에 이미 객체지향의 네 가지 특징중 캡슐화와 은닉성을 사용하고 있기 때문이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;객체 지향 프로그래밍의 장점&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클래스에 문제 해결을 위한 데이터를 모아 놓은 데이터형 사용으로 인한 응집력(Strong Cohesion) 강화 및 클래스 간 독립적 디자인에 의한 결합력(Weak Coupling) 약화 가능&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로그램을 유연하고 변경이 용이하게 만든다.&lt;/li&gt;
&lt;li&gt;소프트웨어 개발과 보수를 간편하게 한다.&lt;/li&gt;
&lt;li&gt;직관적인 코드 분석을 가능하게 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;객체 지향 프로그래밍의 단점&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;처리속도가 상대적으로 느리다.&lt;/li&gt;
&lt;li&gt;객체가 많으면 용량이 커진다.&lt;/li&gt;
&lt;li&gt;설계시 많은 시간과 노력이 필요하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;기본 구성 요소&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클래스(Class)&lt;/li&gt;
&lt;li&gt;객체(Object)&lt;/li&gt;
&lt;li&gt;메서드(Method), 메시지(Message)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자료 추상화 - 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 것&lt;/li&gt;
&lt;li&gt;상속 - 새로운 클래스가 기존의 클래스의 자료와 연산을 이용할 수 있게 하는 기능&lt;/li&gt;
&lt;li&gt;다형성 개념 - 어떤 한 요소에 여러 개념을 넣어 놓는 것으로 일반적으로 &lt;u&gt;오버라이딩&lt;/u&gt;이나 &lt;u&gt;오버로딩&lt;/u&gt;을 의미&lt;/li&gt;
&lt;li&gt;캡슐화(은닉화) - 내부의 동작 방법을 숨기고 사용자에게는 사용 방법만 노출시키는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;추상화(abstractions)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 공통의 속성이나 기능을 묶어 이름을 붙히는 것&lt;/li&gt;
&lt;li&gt;기린, 사자, 호랑이, 강아지라는 각각의 객체를 동물이라는 추상적인 객체로 정의 하는 것&lt;/li&gt;
&lt;li&gt;공통된 속성과 행위를 추출하는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;상속(inheritances)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;상위 객체의 속성을 하위 객체가 물려 받는 것&lt;/li&gt;
&lt;li&gt;부모 클래스의 속성을 자식 클래스가 물려 받아 재사용이 가능하며 자식 클래스에서 재정의 하여 사용이 가능하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;다형성(polymorphism)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;상속 받은 기능을 변경 및 확장하는 것&lt;/li&gt;
&lt;li&gt;하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될 수 있다.&lt;/li&gt;
&lt;li&gt;오버라이딩(overriding), 오버로딩(overloading) 이 가능하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;&lt;b&gt;오버라이딩&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;같은 이름의 메소드가 여러 클래스에서 다른 기능을 하는 것&lt;/li&gt;
&lt;li&gt;부모 클래스로부터 상속을 받은 속성에 대해, 자식 클래스에서 물려받은 속성을 재정의 하는 것&lt;/li&gt;
&lt;li&gt;부모 클래스의 기능을 그대로 사용하면서 동시에 기능을 추가 가능하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;오버로딩&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;같은 이름의 메소드가 인자의 개수나 자료형에 따라 다른 기능을 하는 것&lt;/li&gt;
&lt;li&gt;즉, 같은 클래스에서 같은 이름을 가진 메소드가 여러개 존재하고 있는 상태&lt;/li&gt;
&lt;li&gt;메소드의 이름은 같으나 매개변수(arguments)가 다르다.&lt;/li&gt;
&lt;li&gt;같은 이름의 함수를 여러개 정의하고, 매개변수의 타입과 개수를 다르게 하여 매개변수에 따라 다르게 호출할 수 있게 하는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;캡슐화(encapsulation)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하나의 객체가 특정한 목적을 달성하기 위해 변수, 함수를 하나로 묶는 것&lt;/li&gt;
&lt;li&gt;변수 및 함수가 분산돼 있어 재활용이 어려웠으나 캡슐화를 통해 기능과 특성을 한 곳에 모으고 분류함으로써 재활용이 원할해짐&lt;/li&gt;
&lt;li&gt;객체 지향 프로그래밍에서 기능과 특성의 모음을 &quot;클래스&quot;라는 &quot;캡슐&quot;에 분류해서 넣는 것&lt;/li&gt;
&lt;li&gt;클래스를 만들 때 목적을 명확하게 정하고 그에 따른 기능들을 관련성 있게 변수나 함수를 만들어야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;클래스(Class)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문제 해결을 위한 데이터를 만들기 위해 추상화를 거쳐 속성(attribute)과 행위(behavior)를 변수와 메서드로 정의한 것&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;인스턴스(객체)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클래스에서 정의한 것을 토대로 실제 메모리상에 할당괸 것으로 실제 프로그램에서 사용되는 데이터&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;객체&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;물리적으로 존재하거나(자동차, 책, 사람), 추상적인 것(회사, 날짜) 중에서 자신의 속성과 동작을 가지는 모든 것을 말함&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>python</category>
      <category>Object</category>
      <category>OOP</category>
      <category>Python</category>
      <category>객체지향</category>
      <category>특징</category>
      <author>ro_ot</author>
      <guid isPermaLink="true">https://settlelib.tistory.com/89</guid>
      <comments>https://settlelib.tistory.com/89#entry89comment</comments>
      <pubDate>Mon, 5 Oct 2020 11:21:29 +0900</pubDate>
    </item>
    <item>
      <title>Python 변수</title>
      <link>https://settlelib.tistory.com/88</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;변수란?&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;객체를 가리키는 것이라고 말 할 수 있다.&lt;/li&gt;
&lt;li&gt;어떤 값을 저장하는 공간 또는 저장소&lt;/li&gt;
&lt;li&gt;변수의 값을 할당하기 위해서는 대입 연산자인 ' = '를 사용한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;예를 들어,&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;5,000원을 들고 2,000원 짜리 커피를 마셨다고 가정 한다했을 때 이를 컴퓨터 상에 표현한다면 아래와 같다.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;my_money&lt;/u&gt;, &lt;u&gt;coffee&lt;/u&gt;, &lt;u&gt;changes&lt;/u&gt;가 변수이며, &lt;u&gt;my_money&lt;/u&gt;에는 5,000원이 &lt;u&gt;coffee&lt;/u&gt;에는 2,000원이 저장이 돼 있을 것이다.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;changes&lt;/u&gt; 변수가 사용된 줄을 보면 &lt;u&gt;my_money&lt;/u&gt;변수와 &lt;u&gt;coffee&lt;/u&gt;변수의 연산 즉, 변수끼리의 연산이 가능하다는 것을 알 수 있다.&lt;/p&gt;
&lt;p&gt;변수끼리의 연산이 끝난 뒤 그 값을 &lt;u&gt;changes&lt;/u&gt;에 저장한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;스크린샷 2020-09-29 오전 10.39.22.png&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;86&quot; width=&quot;640&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wChA5/btqJMwa5Q8L/yN673f2omfPOte5jINJLz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wChA5/btqJMwa5Q8L/yN673f2omfPOte5jINJLz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wChA5/btqJMwa5Q8L/yN673f2omfPOte5jINJLz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwChA5%2FbtqJMwa5Q8L%2FyN673f2omfPOte5jINJLz1%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-09-29 오전 10.39.22.png&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;86&quot; width=&quot;640&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;만약 위 코드처럼 coffee = 2000이라고 하면 coffee는 직접적으로 2000이라는 값을 가지고 있는 것이 아니라 메모리의 주소를 담고 있는 것이라고 할 수 있다.&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;※ 메모리란 컴퓨터가 프로그램에서 사용하는 데이터를 기억하는 공간이다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;다시말해, 객체가 저장되어 있는 공간에다가 coffee라는 이름표를 붙이는 것이라고 생각 할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;스크린샷 2020-09-29 오전 11.00.56.png&quot; data-origin-width=&quot;443&quot; data-origin-height=&quot;69&quot; width=&quot;616&quot; height=&quot;96&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PYvKP/btqJKwvEyxJ/FhHwq9qJGUxscJRtkMebuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PYvKP/btqJKwvEyxJ/FhHwq9qJGUxscJRtkMebuK/img.png&quot; data-alt=&quot;변수가 가리키는 주소 값은 id( )로 확인할 수 있다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PYvKP/btqJKwvEyxJ/FhHwq9qJGUxscJRtkMebuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPYvKP%2FbtqJKwvEyxJ%2FFhHwq9qJGUxscJRtkMebuK%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-09-29 오전 11.00.56.png&quot; data-origin-width=&quot;443&quot; data-origin-height=&quot;69&quot; width=&quot;616&quot; height=&quot;96&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;변수가 가리키는 주소 값은 id( )로 확인할 수 있다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;여러개 변수에 값 할당&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1601961830662&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a=b=c=&quot;모두같은 값&quot;
print(&quot;a의 값 : {}&quot;.format(a))
print(&quot;b의 값 : {}&quot;.format(b))
print(&quot;c의 값 : {}&quot;.format(c))

d,e,f = &quot;한사람&quot;,23,178.9
print(&quot;d의 값 : {}&quot;.format(d))
print(&quot;e의 값 : {}&quot;.format(e))
print(&quot;f의 값 : {}&quot;.format(f))

# 일반 언어의 경우 두 변수값 교환
g,h = 100,200
print(&quot;g의 값 : {}, h의 값 :{}&quot;.format(g,h))
t = g; 
g = h; 
h = t;
print(&quot;g의 값 : {}, h의 값 :{}&quot;.format(g,h))

# 파이선의 경우 두 변수값 교환
g,h = 100,200
print(&quot;g의 값 : {}, h의 값 :{}&quot;.format(g,h))
g,h = h,g
print(&quot;g의 값 : {}, h의 값 :{}&quot;.format(g,h))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>python</category>
      <author>ro_ot</author>
      <guid isPermaLink="true">https://settlelib.tistory.com/88</guid>
      <comments>https://settlelib.tistory.com/88#entry88comment</comments>
      <pubDate>Tue, 29 Sep 2020 11:09:35 +0900</pubDate>
    </item>
    <item>
      <title>문자열과 입출력 포맷</title>
      <link>https://settlelib.tistory.com/87</link>
      <description>&lt;p&gt;여기서는 printf( )와 scanf( )에 대해 자세히 설명한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;문자열이란?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;하나 또는 여러 개의 문자들이 연속되어 있는 것을 말한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;배열이란?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;연속되어 있는 여러 개의 메모리 셀&lt;/p&gt;
&lt;p&gt;동일한 데이터형을 가진 여러 데이터 원소들이 메모리에 순서대로 나열되어 있는 연속물&lt;/p&gt;
&lt;p&gt;아래 그림에서 각괄호([ ])에 의해 그것을 배열로 인식한다.&lt;/p&gt;
&lt;pre id=&quot;code_1601184203333&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;char name[40];&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;C는 문자열을 위한 어떤 특별한 데이터형을 제공하지 않는다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- C는 char형 배열에 문자열을 저장한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- 이때, 각각의 셀은 1바이트다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- 배열의 마지막 위치에 문자는 널 문자(null character)이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- 저장할 문자들의 수보다 셀의 수가 최소한 하나 더 많아야 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;444&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vVdws/btqJEzLKYjY/Wt1hKeGsnbf5d4rdf7Kvmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vVdws/btqJEzLKYjY/Wt1hKeGsnbf5d4rdf7Kvmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vVdws/btqJEzLKYjY/Wt1hKeGsnbf5d4rdf7Kvmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvVdws%2FbtqJEzLKYjY%2FWt1hKeGsnbf5d4rdf7Kvmk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;444&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;sizeof( ) 와 srtlen( )은 %zd 지정자를 사용한다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;sizeof( )를 사용할 때 괄호의 사용 여부는, 데이터형의 크기를 원하느냐, 데이터의 양에 대한 크기를 원하느냐에 달려 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;상수와 C 전처리기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1601214839817&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;circumference = 3.141592 * diameter;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위와 같이, 실제의 값을 그대로 타이핑할 수도 있지만 아래와 같이 기호상수(symbolic constant)를 사용할 수도 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1601214879280&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;circumference = pi * diameter;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기호 상수를 사용하면 좋은 점.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 이름이 수보다 더 많은 것을 알려준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 여러 곳에서 사용한 경우 기호 상수의 정의만 바꾸면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1601215010203&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;owed = 0.015 * housevalue;
owed = taxrate * housevalue;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;기호 상수의 사용법.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1. 변수를 선언하고 그 변수를 원하는 상수와 같게 설정한다.&lt;/p&gt;
&lt;pre id=&quot;code_1601215165306&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;float taxrate;
taxrate = 0.015;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;※ 아래는 C가 제공하는 방법이다&lt;/p&gt;
&lt;p&gt;2. C 전처리기 #define이다.&lt;/p&gt;
&lt;pre id=&quot;code_1601215274954&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#define TAXRATE 0.015&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;프로그램이 컴파일 될 때, TAXRATE가 사용된 모든 곳이 값 0.015로 대체된다.&lt;/p&gt;
&lt;p&gt;이를 컴파일 시간 대체(compile-time substitution)라 부른다.&lt;/p&gt;
&lt;p&gt;위를 사용하여 정의된 상수들을 명단 상수(manifest constant)라고 부른다.&lt;/p&gt;
&lt;p&gt;※ 명단상수명 규칙&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;명단상수명을 대문자로 하는 이유는 C의 전통으로 변수와 구분하여 코드를 쉽게 읽기 위함이다.&lt;/p&gt;
&lt;p&gt;대문자로 표기하지 않아도 프로그램은 동작한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;#define 지시자를 사용할 때 문자 상수에는 작은 따옴표, 문자열 상수에는 큰 따옴표를 사용한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. const 변경자&lt;/p&gt;
&lt;p&gt;const 키워드를 사용하여 변수 선언을 상수 선언으로 변환 할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1601216633431&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const int MONUHS = 12;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이것은 MONTHS를 읽기 전용 값으로 만든다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;명단 상수의 사용&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C의 헤더 파일, limits.h와 float.h는 정수형과 부동소&lt;span style=&quot;color: #333333;&quot;&gt;수점형의 크기 제한에&amp;nbsp; 관련된 정보를 제공한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;20200927_232846.png&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;299&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOLByx/btqJHakGUzF/di4KOGtiCjLW6N5r5GHXW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOLByx/btqJHakGUzF/di4KOGtiCjLW6N5r5GHXW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOLByx/btqJHakGUzF/di4KOGtiCjLW6N5r5GHXW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOLByx%2FbtqJHakGUzF%2Fdi4KOGtiCjLW6N5r5GHXW1%2Fimg.png&quot; data-filename=&quot;20200927_232846.png&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;299&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;printf()는 출력함수이고 scanf()는 입력함수이지만, 둘이 비슷하게 동작한다. 즉, 둘 다 하나의 포맷 문자열과 전달인자 리스트를 사용한다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;다음 이들의 동작에 대해 알아본다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;printf( ) 함수&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;printf( )를 사용하는 형식&lt;/p&gt;
&lt;pre id=&quot;code_1601218890135&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;printf(Control-string, item1, item2, ...);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;item1, item2등은 출력할 항목이다.&lt;/p&gt;
&lt;p&gt;control-string은 그 항목들을 어떤 포맷으로 출력할 것인지를 지정하는 문자열이다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;control-string은 큰 따옴표 안에 들어 있는 문구이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;printf( ) 플래그&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zE9Yu/btqJDj4gyMI/6LX6EXLx1ngZuK7xmwdZhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zE9Yu/btqJDj4gyMI/6LX6EXLx1ngZuK7xmwdZhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zE9Yu/btqJDj4gyMI/6LX6EXLx1ngZuK7xmwdZhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzE9Yu%2FbtqJDj4gyMI%2F6LX6EXLx1ngZuK7xmwdZhK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;printf( )의 리턴 값&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;일반적으로 C의 함수는 하나의 리턴값을 가진다.&lt;/p&gt;
&lt;p&gt;이것은 함수가 계산하여 자신을 호출한 프로그램에 리턴하는 값이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;printf( )함수는 자신이 출력할 문자의 수를 리턴한다.&lt;/p&gt;
&lt;p&gt;이 printf( ) 함수의 한 가지 용도는 출력 에러를 확인하는 것이다.&lt;/p&gt;
&lt;p&gt;또한, 정보를 출력하는 것과 어떤 값을 변수에 대입하는 것을 볼수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;scanf( )의 사용&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열의 문자 하나하나를 수치값으로 변환하는 것이 scanf( )가 하는 일이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;printf( )과 마찬가지로, scanf( )도 포맷 문자열과, 그 뒤를 따르는 전달인자 리스트를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;printf( )와 scanf의 차이점&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전달인자 리스트에 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;printf( ) 함수는 변수 이름, 상수, 수식을 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;scanf( ) 함수는 변수를 가리키는 포인터를 사용한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;scanf( )를 사용하여 기본 데이터형의 값을 읽는다면, 변수 이름 앞에 &amp;amp; 기호를 사용한다.&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;scanf( )를 사용하여 문자열을 읽어 문자 배열 안에 넣을때는 &amp;amp; 기호를 사용하지 않는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;scanf( )는 개별적인 필드들로 나누기 위해 화이트스페이스를 사용한다.&lt;/p&gt;
&lt;p&gt;다만, %c 지정자는 이 규칙의 적용을 받지 않&lt;span style=&quot;color: #333333;&quot;&gt;고 화이트스페이스라 할지라도 문자를 읽는다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;KakaoTalk_20200928_003453080.jpg&quot; data-origin-width=&quot;2159&quot; data-origin-height=&quot;1262&quot; width=&quot;431&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rmBTW/btqJF1atwk6/STuPTRvHP9GxGwwQ5ELfLk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rmBTW/btqJF1atwk6/STuPTRvHP9GxGwwQ5ELfLk/img.jpg&quot; data-alt=&quot;scanf( )에 대한 ANSI C변환 지정자&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rmBTW/btqJF1atwk6/STuPTRvHP9GxGwwQ5ELfLk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrmBTW%2FbtqJF1atwk6%2FSTuPTRvHP9GxGwwQ5ELfLk%2Fimg.jpg&quot; data-filename=&quot;KakaoTalk_20200928_003453080.jpg&quot; data-origin-width=&quot;2159&quot; data-origin-height=&quot;1262&quot; width=&quot;431&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;scanf( )에 대한 ANSI C변환 지정자&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;printf( ) 함수는 float형과 double형 모두에 %f, %e, %E, %g, %G를 사용하지만,&lt;/p&gt;
&lt;p&gt;scanf( ) 함수는 float형에 대해서만 이들을 사용하고 double형에 대해서는 ' L '변경자를 요구한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;20200928_003858.png&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;468&quot; width=&quot;581&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G8AQB/btqJF03H52W/QBWFN8rKmBCcYO5igRrZKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G8AQB/btqJF03H52W/QBWFN8rKmBCcYO5igRrZKK/img.png&quot; data-alt=&quot;scanf( )의 변환 변경자&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G8AQB/btqJF03H52W/QBWFN8rKmBCcYO5igRrZKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG8AQB%2FbtqJF03H52W%2FQBWFN8rKmBCcYO5igRrZKK%2Fimg.png&quot; data-filename=&quot;20200928_003858.png&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;468&quot; width=&quot;581&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;scanf( )의 변환 변경자&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;scanf( )의 리턴값&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;scanf( )함수는 읽은 항목의 수를 리턴한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;printf( )와 scanf( )에서의 * 변경자&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;printf( )와 scanf( )는 둘다 * 변경자를 사용하여 지정자의 의미를 변경 시킬 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;printf( )는 필드 너비를 사용자가 미리 지정하지 않고, 프로그램이 알아서 지정하게 만들어 준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;scanf( )는 %지정자와 문자 사이에 *를 넣으면 그에 해당하는 입력을 건너 뛴다.&lt;/p&gt;</description>
      <category>Study/C</category>
      <category>printf</category>
      <category>scanf</category>
      <category>명단상수</category>
      <category>문자열</category>
      <category>변경자</category>
      <category>변수</category>
      <category>상수</category>
      <category>입출력 포맷</category>
      <author>ro_ot</author>
      <guid isPermaLink="true">https://settlelib.tistory.com/87</guid>
      <comments>https://settlelib.tistory.com/87#entry87comment</comments>
      <pubDate>Sun, 27 Sep 2020 14:24:02 +0900</pubDate>
    </item>
    <item>
      <title>데이터와 C</title>
      <link>https://settlelib.tistory.com/85</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;C는 다양한 데이터형을 제공한다.&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;프로그래머가 용도에 따라 적당한 것을 선택하여 사용할 수 있게 하기 위해서 이다.&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;기본 데이터형은 정수형과 부동소수점형으로 나뉜다.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상수&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;상수&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;사용되기&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;전에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;미리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정해지며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;프로그램이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동안&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유지된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;변수&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;프로그램이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동안&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변하거나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대입되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;정수&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;소수부가 없는 수이다.&lt;/li&gt;
&lt;li data-ke-size=&quot;size16&quot;&gt;2진수 형태로 저장된다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;부동소수점 수&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;정수와 정수 사이에 들어 있는 수들을 포함한다.&lt;/li&gt;
&lt;li&gt;어떤 값에 소수점을 붙이면 부동소수점 값이 된다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;정수와 부동소수점의 차이점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정수는 소수부가 없다. 부동소수점 수는 소수부를 가질 수 있다.&lt;/li&gt;
&lt;li&gt;부동소수점 수는 정수보다 훨씬 큰 범위의 수를 나타낼 수 있다.&lt;/li&gt;
&lt;li&gt;일부 산술 연산에서, 부동소수점 수는 정밀도 손실을 입을 수 있다.&lt;/li&gt;
&lt;li&gt;부동소수점 값들은 흔히 실제 값들의 근사값이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;비트, 바이트, 워드의 간단한 설명&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;비트, 바이트, 워드 = 컴퓨터의 메모리 단위를 표시하는 데 사용된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. 비트&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; - 메모리의 가장 작은 단위이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; - 0 또는 1 두 값 중 하나만 저장할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. 바이트&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; - 컴퓨터 메모리의 통상적인 단위다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; - 거의 모든 컴퓨터에서 1바이트는 8비트다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; - 기억 용량을 말할 때 사용하는 표준 정의다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; - C언어는 다른 정의를 가지고 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. 워드&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; - 특정 컴퓨터를 설계할 때 정해지는 고유 메모리 단위이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; - 예를 들어, 마이크로컴퓨터에서 워드는 8비트이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; - 퍼스널 컴퓨터들은 16비트 워드, 32비트 워드, 그리고 64비트까지 발전해 왔다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; - 더 큰 워드 크기는 데이터를 더 빠르게 옮길 수 있고 더 많은 메모리에 접근할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;정수형은 두 가지 특징을 가지고 구별한다.&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터형에 할당되는 기억 공간의 크기&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부호의 유무&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;가장 작은 정수형은, 시스템에 따라 부호가 있을 수도 없을 수도 있는 Char형이다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하는 것을 명시적으로 지정하기 위해 signed char와 unsigned char를 사용할 수 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방법은 char형에 작은 정수들을 저장할 때 사용한다.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;그 밖의 정수형으로 short, int, long, long long형이 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이들은 크기 순서대로 정렬한 부호 있는 데이터 형이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부호 없는 데이터형을 나타내기 위해 키워드 unsigned를 붙여서 unsigned short, unsigned int처럼 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;다음은, _Bool형이 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;_Bool형이란 true, false를 각각 나타내는 값 0과 1만을 저장할 수 있는 부호 없는 데이터형이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;부동소수점형은 세 가지가 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;float형, double형, long double형 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이들도 크기 순서대로 정렬하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일부 컴파일러는 부동소수점형에 키워드 _Complex와 _Imaginary를 결합하여 복소수형과 허수형을 사용할 수 있도록 지원한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;C의 기본 데이터형&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; 1. int형&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt; - &lt;/span&gt;&lt;/span&gt;부호 있는 정수이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;- &lt;/span&gt;&lt;/span&gt;양수, 음수, 0이 될 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;b&gt; &amp;nbsp;&lt;span&gt; 2. int형 변수의 선언&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt; - int형 변수를 위한 기억 공간을 할당하고 각각의 변수명과 연결한다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1600581190892&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int erns;
int hogs, cows, goats;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt; &lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;- 위와 같은 선언들은 변수는 만들지만 값은 제공하지 않는다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - 변수의 값을 얻는 방법은,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt; 1. 대입&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt; 2. 함수로 부터(scanf( ) 같은) 값 리턴&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; 3. 변수의 초기화&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt; - 변수를 초기화 한다는 것은 변수에 초기값을 대입하는 것이다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt; - 변수를 저장하기 위한 기억 공간을 할당하고, 거기에 이름을 연결하여, 각 변수에 초기값을 대입한다.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;KakaoTalk_20200920_145955990.jpg&quot; data-origin-width=&quot;1729&quot; data-origin-height=&quot;703&quot; width=&quot;381&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OVJV2/btqI7wn57Uq/KKoSaJpkwaRQrRS4JC0ydK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OVJV2/btqI7wn57Uq/KKoSaJpkwaRQrRS4JC0ydK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OVJV2/btqI7wn57Uq/KKoSaJpkwaRQrRS4JC0ydK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOVJV2%2FbtqI7wn57Uq%2FKKoSaJpkwaRQrRS4JC0ydK%2Fimg.jpg&quot; data-filename=&quot;KakaoTalk_20200920_145955990.jpg&quot; data-origin-width=&quot;1729&quot; data-origin-height=&quot;703&quot; width=&quot;381&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;정수는 10진수, 8진수, 16진수 표기로 나타낼 수 있다. &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C에서는 특별한 접두사들이 사용자가 어느 진수를 지정한 것인지 알려준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0으로 시작하면 8진수, 0x나&amp;nbsp; 0X로 시작하면 16진수다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 32, 040, 0x20은 같은 값을 10진수, 8진수, 16진수로 나타낸 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;접미사&amp;nbsp; l 또는 L은 long형 값을 나타내고 ll 또는 LL은 long long형 값을 나타낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자 상수는 'Q', '8', '$'와 같이 작은따옴표로 문자의 좌우를 감싸서 나타낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이스케이프 시퀀스는 출력되지 않는 어떤 문자들을 나타낸다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-noaft=&quot;1&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXopwO/btqI5zr2RcV/uYA2yqCK4va1DLMHrtoiG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXopwO/btqI5zr2RcV/uYA2yqCK4va1DLMHrtoiG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXopwO/btqI5zr2RcV/uYA2yqCK4va1DLMHrtoiG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXopwO%2FbtqI5zr2RcV%2FuYA2yqCK4va1DLMHrtoiG0%2Fimg.png&quot; data-noaft=&quot;1&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'\007'과 같은 형식을 사용하여 문자를 ASCII코드로 나타낼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;부동소수점 수를 표현하는 방식은 다음과 같다.&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;93.912&amp;nbsp; = 소수점을 사용&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7.38E10 = 지수 표기법&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0xa.1fp10 = 16진수와 2의 거듭제곱을 사용하는 제 3의 지수표기&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;printf( ) 함수는 변환 지정자를 사용하여 다양한 데이터형의 값들을 출력할 수 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;%d, %f와 같이, 포맷 지정자는 퍼센트 기호와 데이터형을 나타내는 문자로 이루어져 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;접두사도 함께 출력하려면 %#o, %#x, %#X 처럼 사용하면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-noaft=&quot;1&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0M3Ur/btqI2FTOYG7/rKR9ka9BnjwPstHBikw9T0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0M3Ur/btqI2FTOYG7/rKR9ka9BnjwPstHBikw9T0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0M3Ur/btqI2FTOYG7/rKR9ka9BnjwPstHBikw9T0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0M3Ur%2FbtqI2FTOYG7%2FrKR9ka9BnjwPstHBikw9T0%2Fimg.png&quot; data-noaft=&quot;1&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Study/C</category>
      <category>C</category>
      <category>C언어</category>
      <category>공부</category>
      <category>데이터</category>
      <category>언어</category>
      <author>ro_ot</author>
      <guid isPermaLink="true">https://settlelib.tistory.com/85</guid>
      <comments>https://settlelib.tistory.com/85#entry85comment</comments>
      <pubDate>Sun, 20 Sep 2020 00:31:17 +0900</pubDate>
    </item>
    <item>
      <title>python 가상환경(pyenv)</title>
      <link>https://settlelib.tistory.com/77</link>
      <description>&lt;p&gt;파이썬은 다수의 서브 버전이 존재하고 엄청난 수의 패키지를 만들고 공유하고 있음. 이러한 패키지들 조차 여러 버전을 갖고 있음&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;개발 언어와 런타임 및 라이브러리가 전역적으로 설치되고 운영되기 때문에 파이썬 런타임 버전과 라이브러리 충돌 문제가 빈번하게 발생함.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위 문제를 해결하기 위해 애플리케이션별로 독립적인 환경을 사용할 수 있도록 환경을 가상화하는 방식을 통해서 해결 가능.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span&gt;pyenv(window&lt;/span&gt;&lt;span&gt;에서는&lt;/span&gt;&lt;span&gt; x)&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;파이썬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버전을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관리하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;툴&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;하나의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컴퓨터에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다양한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파이썬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버전을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관리&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;프로젝트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;홈페이지&lt;/span&gt;&lt;span&gt;:&amp;nbsp;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/pyenv/pyenv&quot;&gt;https://github.com/pyenv/pyenv&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span&gt;pyenv-virtualenv&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;virtualenv&lt;/b&gt;&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파이썬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;환경을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;격리하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;툴&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;pyenv-virtualenv&lt;/b&gt;&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; virtualenv&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt; pyenv &lt;/span&gt;&lt;span&gt;확장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;플러그인&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;파이썬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버전과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라이브러리의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;완전한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;격리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;환경을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제공&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span&gt;autoenv&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;autoenv&lt;/b&gt;&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;디렉터리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이동&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스크립트&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b&gt;pyenv-virtualenv&lt;/b&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불편한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수작업을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자동화&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;특정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로젝트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;폴더로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어가면&lt;/span&gt;&lt;span&gt; .env&lt;/span&gt;&lt;span&gt;파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실행하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가상환경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;활성화&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;* pip : package management system&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 저장소로부터 파이썬 패키지를 받아 설치하는 패키지 관리 도구&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. pyenv&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 하나의 컴퓨터에서 여러 파이썬 런타임 버전을 운영할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 파이썬을 쉽게 바꿔서 쓸 수 있게 해주는 도구&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 파이썬 버전에 대한 의존성을 해결할 수 있다.&lt;/p&gt;
&lt;p&gt;2. virtualenv&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 로컬에 다양한 파이썬 환경을 구축할 수 있도록 도와준다.&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 프로젝트별로 패키지들의 충돌을 막아주기 위한 가상환경 가상환경&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 각 프로그램별로 완전히 독립적인 가상의 환경을 만들어냄&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- python, pip, PyPI부터 설치된 라이브러리들의 복사본을 만듦으로써, 독립적인 파이썬 환경을 만들어주는 도구&lt;/p&gt;
&lt;p&gt;3. autoenv&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 스크립트를 이용해서 설정한 프로젝트 폴더로 들어가면 .env파일을 찾아 자동으로 개발 환경을 로딩해준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;=======================&lt;/p&gt;
&lt;p&gt;Conda vs Venv&lt;/p&gt;
&lt;p&gt;venv&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 파이썬의 환경관리자&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 파이썬 개발만을 위한 격리 된 환경을 만듬&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;conda&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 패키지 및 환경관리자&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;- 이론적으로 모든 언어에 대해 격리 된 환경을 만듬&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;명령어 차이점&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href=&quot;https://conda.io/projects/conda/en/latest/commands.html#conda-vs-pip-vs-virtualenv-commands&quot;&gt;https://conda.io/projects/conda/en/latest/commands.html#conda-vs-pip-vs-virtualenv-commands&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>python</category>
      <category>autoenv</category>
      <category>conda</category>
      <category>pyenv</category>
      <category>Python</category>
      <category>venv</category>
      <category>virtualenv</category>
      <category>가상환경</category>
      <author>ro_ot</author>
      <guid isPermaLink="true">https://settlelib.tistory.com/77</guid>
      <comments>https://settlelib.tistory.com/77#entry77comment</comments>
      <pubDate>Fri, 12 Jun 2020 19:01:24 +0900</pubDate>
    </item>
  </channel>
</rss>