<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>pengpengit.log</title>
        <link>https://velog.io/</link>
        <description>펭귄을 좋아하고 언어를 공부하는 기획자</description>
        <lastBuildDate>Mon, 05 Feb 2024 13:24:44 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>pengpengit.log</title>
            <url>https://velog.velcdn.com/images/pengpeng_it/profile/45ebbbb7-3e26-40b1-993f-d9f19a79610f/image.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. pengpengit.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/pengpeng_it" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[유니코드 시스템(Unicode System)]]></title>
            <link>https://velog.io/@pengpeng_it/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C-%EC%8B%9C%EC%8A%A4%ED%85%9CUnicode-System</link>
            <guid>https://velog.io/@pengpeng_it/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C-%EC%8B%9C%EC%8A%A4%ED%85%9CUnicode-System</guid>
            <pubDate>Mon, 05 Feb 2024 13:24:44 GMT</pubDate>
            <description><![CDATA[<p>소프트웨어 애플리케이션은 종종 영어, 프랑스어, 일본어, 히브리어 또는 힌디어와 같이 다양한 언어로 메시지를 출력해야 할 필요가 있다.
파이썬의 문자열 타입은 문자를 표현하기 위해 유니코드 표준을 사용한다.
이를 통해 프로그램은 이 모든 다양한 문자와 작업할 수 있게 된다.</p>
<p>문자는 텍스트의 가장 작은 구성 요소다.
&#39;A&#39;, &#39;B&#39;, &#39;C&#39; 등은 모두 다른 문자다. &#39;È&#39; 및 &#39;Í&#39;도 마찬가지다.
유니코드 문자열은 코드 포인트의 시퀀스로 구성되어 있다.
코드 포인트는 0에서 0x10FFFF(10진수로 1,114,111)까지의 숫자다.
이 코드 포인트 시퀀스는 코드 단위의 세트로 메모리에 나타내어야 하며, 코드 단위는 8비트 바이트로 매핑된다.</p>
<h2 id="문자-인코딩">문자 인코딩</h2>
<p>코드 포인트의 시퀀스는 메모리에서 코드 단위의 세트로 나타낸 후 8비트 바이트로 매핑된다.
유니코드 문자열을 바이트 시퀀스로 변환하는 규칙을 문자 인코딩이라고 한다.</p>
<p>세 가지 종류의 인코딩이 있으며, UTF-8, UTF-16 및 UTF-32가 있다.
UTF는 유니코드 변환 형식을 나타낸다.</p>
<h2 id="python의-유니코드-지원">Python의 유니코드 지원</h2>
<p>Python 3.0 이상에서는 내장된 유니코드 지원이 있다.
str 타입은 유니코드 문자를 포함하고 있으므로 단일, 이중 또는 삼중 따옴표 구문을 사용하여 생성된 모든 문자열은 유니코드로 저장된다.
Python 소스 코드의 기본 인코딩은 UTF-8이다.</p>
<p>따라서 문자열은 유니코드 문자(3/4)의 글자 표현 또는 유니코드 값(\u00BE)을 포함할 수 있다.</p>
<pre><code class="language-python">var = &quot;3/4&quot;
print (var)     #3/4
var = &quot;\u00BE&quot;
print (var)     #¾</code></pre>
<p>예시에서 문자열 &quot;10&quot;은 각각 \u0031과 \u0030인 1과 0의 유니코드 값을 사용하여 저장된다.</p>
<pre><code class="language-python">var = &quot;\u0031\u0030&quot;
print (var)     #10</code></pre>
<p>문자열은 텍스트를 사람이 읽을 수 있는 형식으로 표시하고, 바이트는 문자를 이진 데이터로 저장한다.
인코딩은 데이터를 문자열에서 일련의 바이트로 변환한다.
디코딩은 바이트를 다시 사람이 읽을 수 있는 문자와 기호로 변환한다.
이 두 가지 방법을 혼동하지 않는 것이 중요하다.
<code>encode</code>는 문자열 메서드이며 <code>decode</code>는 파이썬 바이트 객체의 메서드다.</p>
<p>다음 예시에서는 ASCII 문자로 구성된 문자열 변수가 있다.
ASCII는 유니코드 문자 집합의 하위 집합이다.
<code>encode()</code> 메서드는 이 문자열을 바이트 객체로 변환하는 데 사용된다.</p>
<pre><code class="language-python">string = &quot;Hello&quot;
tobytes = string.encode(&#39;utf-8&#39;)
print (tobytes)
string = tobytes.decode(&#39;utf-8&#39;)
print (string)</code></pre>
<p><code>decode()</code> 메서드는 바이트 객체를 다시 <code>str</code> 객체로 변환한다.
사용된 인코딩 방식은 utf-8이다.</p>
<pre><code class="language-python">b&#39;Hello&#39;
Hello</code></pre>
<p>다음 예시에서는 루피 심볼 (₹)이 유니코드 값을 사용하여 변수에 저장된다.
문자열을 바이트로 변환한 다음 다시 <code>str</code>로 변환한다.</p>
<pre><code class="language-python">string = &quot;\u20B9&quot;
print (string)     #₹
tobytes = string.encode(&#39;utf-8&#39;)
print (tobytes)    #b&#39;\xe2\x82\xb9&#39;
string = tobytes.decode(&#39;utf-8&#39;)
print (string)     #₹</code></pre>
<blockquote>
<p>참조. <a href="https://www.tutorialspoint.com/python/python_unicode_system.htm">tutorialspoint, 「Python - Unicode System」, tutorialspoint 사이트</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[형변환(Type Casting)]]></title>
            <link>https://velog.io/@pengpeng_it/%ED%98%95%EB%B3%80%ED%99%98Type-Casting</link>
            <guid>https://velog.io/@pengpeng_it/%ED%98%95%EB%B3%80%ED%99%98Type-Casting</guid>
            <pubDate>Wed, 31 Jan 2024 05:26:17 GMT</pubDate>
            <description><![CDATA[<p>프로그래밍 관점에서 형변환이란 하나의 타입을 다른 타입으로 변환하는 것을 의미한다.</p>
<p>파이썬 타입 캐스팅은 하나의 데이터 타입의 리터럴을 다른 데이터 타입으로 변환하는 프로세스다.
파이썬은 두 가지 유형의 캐스팅, 즉 묵시적 캐스팅과 명시적 캐스팅을 지원한다.</p>
<p>파이썬에는 숫자, 시퀀스, 매핑 등과 같은 다양한 데이터 유형이 있다.
하나의 유형의 사용 가능한 데이터가 있지만 다른 형식으로 사용하고 싶은 상황이 발생할 수 있다.
예를 들어 사용자가 문자열을 입력했지만 숫자로 사용하고 싶다면 파이썬의 타입 캐스팅 메커니즘을 사용할 수 있다.</p>
<blockquote>
<p>목차</p>
</blockquote>
<ol>
<li>묵시적 형변환</li>
<li>명시적 형변환</li>
<li>int() 함수
3-1. 문자열을 정수로 변환
3-2. 2진수를 정수로 변환
3-3. 8진수를 정수로 변환
3-4. 16진수를 정수로 변환</li>
<li>float() 함수</li>
<li>str() 함수
5-1. 정수를 문자열로 변환
5-2. 부동 소수점을 문자열로 변환</li>
<li>시퀀스 유형 변환</li>
<li>데이터 유형 변환 기능</li>
</ol>
<h2 id="1-묵시적-형변환">1. 묵시적 형변환</h2>
<p>파이썬에서 묵시적 캐스팅이란 언어의 컴파일러/인터프리터가 자동으로 하나의 유형의 객체를 다른 유형으로 변환하는 것을 의미한다.
파이썬은 강력한 형식의 언어다. 관련 없는 데이터 유형 간에는 자동 형 변환이 허용되지 않는다.
예를 들어, 문자열은 어떤 숫자 유형으로도 변환될 수 없다.
그러나 정수는 부동 소수점으로 형 변환될 수 있다.
다른 언어 중에서는 JavaScript가 있다.
JavaScript는 약한 형식의 언어로 정수를 문자열로 강제 형변환하여 연결할 수 있다.</p>
<p>각 데이터 유형의 메모리 요구 사항이 다르다는 것에 유의해야 한다.
예를 들어, 파이썬의 정수 객체는 4바이트의 메모리를 차지하고, 부동 소수점 객체는 소수 부분 때문에 8바이트가 필요하다.
따라서 파이썬 인터프리터는 소수를 정수로 자동으로 변환하지 않는다.
왜냐하면 이렇게 하면 데이터의 손실이 발생할 수 있기 때문이다.
반면에 int는 소수 부분을 0으로 설정하여 쉽게 float로 변환될 수 있다.</p>
<p>암시적 int에서 float로의 캐스팅은 int 및 float 피연산자에 대한 산술 연산이 수행될 때 발생한다.</p>
<p>정수 및 부동 소수점 변수를 갖는 경우</p>
<pre><code class="language-python">&lt;&lt;&lt; a=10   # int object
&lt;&lt;&lt; b=10.5 # float object</code></pre>
<p>두 수를 더하기 위해 10 - 정수 객체는 10.0으로 업그레이드된다.
이것은 float이지만 이전의 숫자 값과 동등하다.
이제 두 float의 덧셈을 수행할 수 있다.</p>
<pre><code class="language-python">&lt;&lt;&lt; c=a+b
&lt;&lt;&lt; print (c)
20.5</code></pre>
<p>묵시적 형변환에서는 작은 바이트 크기의 파이썬 객체가 연산에서 다른 객체의 큰 바이트 크기와 일치하도록 업그레이드된다.
예를 들어, 불리언 객체는 먼저 int로 업그레이드되고 그런 다음 float로 업그레이드되어 부동 소수점 객체와 더해진다.
다음 예에서는 부동 소수점에 부울 객체를 추가하려고 시도한다.
True는 1과 같으며, False는 0과 같다.</p>
<pre><code class="language-python"># 묵시적 형변환 예시

a=True;
b=10.5;
c=a+b;

print (c);</code></pre>
<pre><code class="language-python"># 묵시적 형변환 예시 결과

11.5</code></pre>
<h2 id="2-명시적-형변환">2. 명시적 형변환</h2>
<p>묵시적 형변환이 int를 float로 변환하는 데로 제한되어 있지만 파이썬의 내장 함수 <code>int()</code> 및 <code>float()</code>, <code>str()</code>을 사용하여 문자열에서 정수로와 같은 명시적 변환을 수행할 수 있다.</p>
<pre><code class="language-python">x = int(1)   # x will be 1
y = int(2.8) # y will be 2</code></pre>
<pre><code class="language-python">x = float(1)     # x will be 1.0
y = float(2.8)   # y will be 2.8
z = float(&quot;3&quot;)   # z will be 3.0
w = float(&quot;4.2&quot;) # w will be 4.2</code></pre>
<pre><code class="language-python">x = str(&quot;s1&quot;) # x will be &#39;s1&#39;
y = str(2)    # y will be &#39;2&#39;
z = str(3.0)  # z will be &#39;3.0&#39;</code></pre>
<h2 id="3-int-함수">3. int() 함수</h2>
<p>파이썬의 내장 int() 함수는 정수 리터럴을 정수 객체로, 부동 소수점을 정수로, 그리고 문자열이 유효한 정수 리터럴 표현을 가지고 있다면 문자열을 정수로 변환한다.</p>
<p><code>int()</code>를 int 객체와 함께 사용하는 것은 직접 int 객체를 선언하는 것과 동등합니다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = int(10)
&lt;&lt;&lt; a
10</code></pre>
<p>위는 아래와 같다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = 10
&lt;&lt;&lt; a
10
&lt;&lt;&lt; type(a)
&lt;class &#39;int&gt;</code></pre>
<p><code>int()</code> 함수에 전달된 인수가 부동 소수점 객체나 부동 소수점 표현식인 경우 int 객체를 반환한다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = int(10.5) #converts a float object to int
&lt;&lt;&lt; a
10
&lt;&lt;&lt; a = int(2*3.14) #expression results float, is converted to int
&lt;&lt;&lt; a
6
&lt;&lt;&lt; type(a)
&lt;class &#39;int&#39;&gt;</code></pre>
<p><code>int()</code> 함수는 인수로 Boolean 객체가 주어지면 정수 1을 반환한다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a=int(True)
&lt;&lt;&lt; a
1
&lt;&lt;&lt; type(a)
&lt;class &#39;int&#39;&gt;</code></pre>
<h3 id="3-1-문자열을-정수로-변환">3-1. 문자열을 정수로 변환</h3>
<p><code>int()</code> 함수는 문자열 객체로부터 정수를 반환한다.
단, 해당 문자열이 유효한 정수 표현을 포함하는 경우에만 가능하다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = int(&quot;100&quot;)
&lt;&lt;&lt; a
100
&lt;&lt;&lt; type(a)
&lt;class &#39;int&#39;&gt;
&lt;&lt;&lt; a = (&quot;10&quot;+&quot;01&quot;)
&lt;&lt;&lt; a = int(&quot;10&quot;+&quot;01&quot;)
&lt;&lt;&lt; a
1001
&lt;&lt;&lt; type(a)
&lt;class &#39;int&#39;&gt;</code></pre>
<p>그러나 문자열에 정수가 아닌 표현이 포함되어 있으면 파이썬에서는 ValueError가 발생한다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = int(&quot;10.5&quot;)
Traceback (most recent call last):
   File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
ValueError: invalid literal for int() with base 10: &#39;10.5&#39;
&lt;&lt;&lt; a = int(&quot;Hello World&quot;)
Traceback (most recent call last):
   File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
ValueError: invalid literal for int() with base 10: &#39;Hello World&#39;</code></pre>
<p><code>int()</code> 함수는 또한 2진수, 8진수 및 16진수 문자열에서 정수를 반환한다.
이를 위해서는 함수가 각각 2, 8 또는 16이어야 하는 기본(base) 매개변수가 필요하다.
문자열은 유효한 2진수/8진수/16진수 표현이어야 한다.</p>
<h3 id="3-2-2진수를-정수로-변환">3-2. 2진수를 정수로 변환</h3>
<p>문자열은 1과 0으로만 이루어져 있어야 하며, 기본(base)은 2여야 한다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = int(&quot;110011&quot;, 2)
&lt;&lt;&lt; a
51</code></pre>
<p>2진수 110011의 10진수 값은 51이다.</p>
<h3 id="3-3-8진수를-정수로-변환">3-3. 8진수를 정수로 변환</h3>
<p>8진수 문자열은 0에서 7까지의 숫자만을 포함해야 하며, 기수는 8이어야 한다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = int(&quot;20&quot;, 8)
&lt;&lt;&lt; a
16</code></pre>
<p>8진수 20의 10진수 값은 8이다.</p>
<h3 id="3-4-16진수를-정수로-변환">3-4. 16진수를 정수로 변환</h3>
<p>문자열에는 0에서 9 및 A, B, C, D, E 또는 F만 포함되어야 하며, 기수는 16이어야 한다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = int(&quot;2A9&quot;, 16)
&lt;&lt;&lt; a
681</code></pre>
<p>Hexadecimal 2A9의 십진 등가물은 681이다.
이러한 변환을 Windows, Ubuntu 또는 스마트폰의 계산기 앱을 사용하여 쉽게 확인할 수 있다.</p>
<p>다음은 숫자, 부동 소수점 및 문자열을 정수 데이터 유형으로 변환하는 예다.</p>
<pre><code class="language-python">a = int(1)     # a will be 1
b = int(2.2)   # b will be 2
c = int(&quot;3&quot;)   # c will be 3

print (a)
print (b)
print (c)</code></pre>
<h2 id="4-float-함수">4. float() 함수</h2>
<p><code>float()</code> 함수는 파이썬 내장 함수로, 인자가 부동 소수점 리터럴, 정수 또는 유효한 부동 소수점 표현을 갖고 있다면 부동 소수점 객체를 반환한다.</p>
<pre><code class="language-python"># 부동 소수점 리터럴을 사용한 경우
float_number = float(3.14)

# 정수를 사용한 경우
integer_number = float(5)

# 유효한 부동 소수점 표현을 갖는 문자열을 사용한 경우
string_number = float(&quot;7.5&quot;)</code></pre>
<p><code>float()</code> 함수를 부동 소수점 객체를 인자로 사용하는 경우, 이는 부동 소수점 객체를 직접 선언하는 것과 동등하다.
아래 두 코드는 같다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = float(9.99)
&lt;&lt;&lt; a
9.99
&lt;&lt;&lt; type(a)
&lt;class &#39;float&#39;&gt;</code></pre>
<pre><code class="language-python">&lt;&lt;&lt; a = 9.99
&lt;&lt;&lt; a
9.99
&lt;&lt;&lt; type(a)
&lt;class &#39;float&#39;&gt;</code></pre>
<p><code>float()</code> 함수에 정수가 인자로 주어진 경우, 반환된 값은 소수 부분이 0인 부동 소수점이다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = float(100)
&lt;&lt;&lt; a
100.0
&lt;&lt;&lt; type(a)
&lt;class &#39;float&#39;&gt;</code></pre>
<p><code>float()</code> 함수는 문자열이 유효한 부동 소수점 숫자를 포함하고 있다면 해당 문자열에서 부동 소수점 객체를 반환하며, 그렇지 않으면 ValueError가 발생한다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = float(&quot;9.99&quot;)
&lt;&lt;&lt; a
9.99
&lt;&lt;&lt; type(a)
&lt;class &#39;float&#39;&gt;
&lt;&lt;&lt; a = float(&quot;1,234.50&quot;)
Traceback (most recent call last):
   File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
ValueError: could not convert string to float: &#39;1,234.50&#39;</code></pre>
<p>이 부분의 ValueError의 원인은 문자열에 쉼표가 있기 때문이다.</p>
<p>문자열에서 부동 소수점으로의 변환을 위해 부동 소수점의 과학적 표기법도 유효하게 고려된다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = float(&quot;1.00E4&quot;)
&lt;&lt;&lt; a
10000.0
&lt;&lt;&lt; type(a)
&lt;class &#39;float&#39;&gt;
&lt;&lt;&lt; a = float(&quot;1.00E-4&quot;)
&lt;&lt;&lt; a
0.0001
&lt;&lt;&lt; type(a)
&lt;class &#39;float&#39;&gt;</code></pre>
<p>다음은 숫자, 부동 소수점 및 문자열을 부동 소수점 데이터 유형으로 변환하는 예제다.</p>
<pre><code class="language-python">a = float(1)     # a will be 1.0
b = float(2.2)   # b will be 2.2
c = float(&quot;3.3&quot;) # c will be 3.3

print (a)
print (b)
print (c)</code></pre>
<h2 id="5-str-함수">5. str() 함수</h2>
<p><code>str()</code> 함수는 정수 또는 부동 소수점 수를 따옴표(<code>&#39;</code>)로 둘러싸서 str 개체를 반환한다.
<code>str()</code> 함수는 파이썬 객체의 문자열 표현을 반환한다.</p>
<p><code>str()</code> 함수에는 세 개의 매개변수가 있다.
첫 번째 필수 매개변수(또는 인수)는 문자열 표현을 원하는 객체다.
두 번째와 세 번째 매개변수, encoding 및 errors는 선택 사항이다.</p>
<p>파이썬 콘솔에서 <code>str()</code> 함수를 실행하여 반환된 개체가 따옴표(<code>&#39;</code>)로 둘러싸인 문자열임을 쉽게 확인할 수 있다.</p>
<h3 id="5-1-정수를-문자열로-변환">5-1. 정수를 문자열로 변환</h3>
<p>임의의 정수를 다음과 같이 문자열로 변환할 수 있다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a = str(10)
&lt;&lt;&lt; a
&#39;10&#39;
&lt;&lt;&lt; type(a)
&lt;class &#39;str&#39;&gt;</code></pre>
<h3 id="5-2-부동-소수점을-문자열로-변환">5-2. 부동 소수점을 문자열로 변환</h3>
<p><code>str ()</code> 함수는 부동 소수점 표기법, 정수와 분수를 구분하는 소수점 표기법, 과학적 표기법을 모두 사용하여 부동 소수점 객체를 문자열 객체로 변환한다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a=str(11.10)
&lt;&lt;&lt; a
&#39;11.1&#39;
&lt;&lt;&lt; type(a)
&lt;class &#39;str&#39;&gt;
&lt;&lt;&lt; a = str(2/5)
&lt;&lt;&lt; a
&#39;0.4&#39;
&lt;&lt;&lt; type(a)
&lt;class &#39;str&#39;&gt;</code></pre>
<p>두 번째 경우에는 나눗셈 식을 <code>str()</code> 함수에 인수로 부여한다.
먼저 식을 평가한 후 결과를 문자열로 변환한다는 점에 유의해야 한다.</p>
<p>E 또는 e를 사용하고 양 또는 음의 거듭제곱을 갖는 과학적 주석의 부동 소수점은 <code>str()</code> 함수를 갖는 문자열로 변환된다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a=str(10E4)
&lt;&lt;&lt; a
&#39;100000.0&#39;
&lt;&lt;&lt; type(a)
&lt;class &#39;str&#39;&gt;
&lt;&lt;&lt; a=str(1.23e-4)
&lt;&lt;&lt; a
&#39;0.000123&#39;
&lt;&lt;&lt; type(a)
&lt;class &#39;str&#39;&gt;</code></pre>
<p>불린 상수가 인수로 입력되면 True가 &#39;True&#39;로 반환된다.
또한 리스트 및 튜플 객체도 <code>str()</code> 함수에 인수로 제공할 수 있다.
결과 문자열은 리스트/튜플이 <code>&#39;</code>로 둘러싸인 형태다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a=str(&#39;True&#39;)
&lt;&lt;&lt; a
&#39;True&#39;
&lt;&lt;&lt; a=str([1,2,3])
&lt;&lt;&lt; a
&#39;[1, 2, 3]&#39;
&lt;&lt;&lt; a=str((1,2,3))
&lt;&lt;&lt; a
&#39;(1, 2, 3)&#39;
&lt;&lt;&lt; a=str({1:100, 2:200, 3:300})
&lt;&lt;&lt; a
&#39;{1: 100, 2: 200, 3: 300}&#39;</code></pre>
<pre><code class="language-python"># 부동 소수점을 문자열로 변환 예시

a = str(1)     # a will be &quot;1&quot;
b = str(2.2)   # b will be &quot;2.2&quot;
c = str(&quot;3.3&quot;) # c will be &quot;3.3&quot;

print (a)
print (b)
print (c)</code></pre>
<h2 id="6-시퀀스-유형-변환">6. 시퀀스 유형 변환</h2>
<p>리스트, 튜플 및 문자열은 파이썬의 시퀀스 유형이다.
이들은 순서가 있는 또는 색인이 지정된 항목의 컬렉션이다.</p>
<p>문자열 및 튜플은 <code>list()</code> 함수를 사용하여 리스트 객체로 변환할 수 있다.
마찬가지로, <code>tuple()</code> 함수는 문자열이나 리스트를 튜플로 변환한다.</p>
<pre><code class="language-python">&lt;&lt;&lt; a=[1,2,3,4,5]   # List Object
&lt;&lt;&lt; b=(1,2,3,4,5)   # Tupple Object
&lt;&lt;&lt; c=&quot;Hello&quot;       # String Object

### list() separates each character in the string and builds the list
&lt;&lt;&lt; obj=list(c)
&lt;&lt;&lt; obj
[&#39;H&#39;, &#39;e&#39;, &#39;l&#39;, &#39;l&#39;, &#39;o&#39;]

### The parentheses of tuple are replaced by square brackets
&lt;&lt;&lt; obj=list(b)
&lt;&lt;&lt; obj
[1, 2, 3, 4, 5]

### tuple() separates each character from string and builds a tuple of characters
&lt;&lt;&lt; obj=tuple(c)
&lt;&lt;&lt; obj
(&#39;H&#39;, &#39;e&#39;, &#39;l&#39;, &#39;l&#39;, &#39;o&#39;)

### square brackets of list are replaced by parentheses.
&lt;&lt;&lt; obj=tuple(a)
&lt;&lt;&lt; obj
(1, 2, 3, 4, 5)

### str() function puts the list and tuple inside the quote symbols.
&lt;&lt;&lt; obj=str(a)
&lt;&lt;&lt; obj
&#39;[1, 2, 3, 4, 5]&#39;

&lt;&lt;&lt; obj=str(b)
&lt;&lt;&lt; obj
&#39;(1, 2, 3, 4, 5)&#39;</code></pre>
<p>파이썬의 명시적인 유형 캐스팅 기능은 내장된 기능을 통해 한 데이터 유형을 다른 데이터 유형으로 변환할 수 있다.</p>
<h2 id="7-데이터-유형-변환-기능">7. 데이터 유형 변환 기능</h2>
<p>한 데이터 유형에서 다른 데이터 유형으로 변환을 수행하기 위한 몇 가지 내장 함수가 있다.
이 함수들은 변환된 값을 나타내는 새로운 개체를 반환한다.</p>
<p><code>int(x [,base])</code>
x를 정수로 변환한다. x가 문자열인 경우 base는 x의 기수를 지정한다.</p>
<p><code>long(x [,base] )</code>
x를 긴 정수로 변환한다. x가 문자열인 경우 base는 x의 기수를 지정한다.</p>
<p><code>float(x)</code>
x를 부동 소수점 숫자로 변환한다.</p>
<p><code>complex(real [,imag])</code>
복소수를 생성한다.</p>
<p><code>str(x)</code>
객체 x를 문자열 표현으로 변환한다.</p>
<p><code>repr(x)</code>
객체 x를 표현 문자열로 변환한다.</p>
<p><code>eval(str)</code>
문자열을 평가하고 객체를 반환한다.</p>
<p><code>tuple(s)</code>
s를 튜플로 변환한다.</p>
<p><code>list(s)</code>
s를 리스트로 변환한다.</p>
<p><code>set(s)</code>
s를 세트로 변환한다.</p>
<p><code>dict(d)</code>
딕셔너리를 생성한다. d는 (키, 값) 튜플의 시퀀스여야 한다.</p>
<p><code>frozenset(s)</code>
s를 동결된 세트로 변환한다.</p>
<p><code>chr(x)</code>
정수를 문자로 변환한다.</p>
<p><code>unichr(x)</code>
정수를 유니코드 문자로 변환한다.</p>
<p><code>ord(x)</code>
단일 문자를 해당 정수 값으로 변환한다.</p>
<p><code>hex(x)</code>
정수를 16진수 문자열로 변환한다.</p>
<p><code>oct(x)</code>
정수를 8진수 문자열로 변환한다.</p>
<blockquote>
<p>참조 1. <a href="https://www.tutorialspoint.com/python/python_type_casting.htm">tutorialspoint, 「Python - Type Casting」, tutorialspoint 사이트</a>
참조 2. <a href="https://www.w3schools.com/python/python_casting.asp">w3schools, 「Python Casting」, w3schools 사이트</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[자료형(Data Types)]]></title>
            <link>https://velog.io/@pengpeng_it/%EC%9E%90%EB%A3%8C%ED%98%95Data-Types</link>
            <guid>https://velog.io/@pengpeng_it/%EC%9E%90%EB%A3%8C%ED%98%95Data-Types</guid>
            <pubDate>Sun, 28 Jan 2024 08:31:10 GMT</pubDate>
            <description><![CDATA[<p>데이터 타입은 컴퓨터가 처리하는 데이터의 종류를 나타낸다.
컴퓨터는 데이터를 메모리에 저장하고 주어진 프로그램에 따라 처리한다.
데이터는 특정 객체에 대한 사실을 나타낸다.</p>
<p>일부 데이터의 예시는 다음과 같다.</p>
<p>학생 데이터 - 이름, 성별, 학급, 성적, 나이, 등록금 등.
도서관의 책 데이터 - 제목, 저자, 출판사, 가격, 페이지 수, 출판 연도 등.
사무실 직원 데이터 - 이름, 직책, 급여, 부서, 지점 등.</p>
<p>데이터 타입은 어떤 종류의 값이며 해당 값에 어떤 작업을 수행할 수 있는지 결정한다.
숫자, 비숫자 및 부울 (참/거짓) 데이터는 가장 명백한 데이터 유형이다.
그러나 각 프로그래밍 언어는 그 자체의 분류를 갖추고 있으며 주로 해당 프로그래밍 철학을 반영한다.</p>
<blockquote>
<p>목차</p>
</blockquote>
<ol>
<li>파이썬 자료형</li>
<li>숫자 자료형</li>
<li>시퀀스 자료형</li>
<li>문자열(String)</li>
<li>리스트(List)</li>
<li>튜플(Tuple)</li>
<li>range() 함수</li>
<li>딕셔너리(Dictionary)</li>
<li>세트(Set)</li>
<li>불리언(boolean)</li>
</ol>
<h2 id="1-파이썬-자료형">1. 파이썬 자료형</h2>
<p>파이썬 데이터 타입은 변수의 유형을 정의하는 데 사용된다.
이는 변수에 어떤 유형의 데이터를 저장할 것인지를 정의한다.
메모리에 저장된 데이터는 여러 유형일 수 있다.
예를 들어, 사람의 나이는 숫자 값으로 저장되고 주소는 알파벳 문자로 저장된다.</p>
<ul>
<li>Text Type(String):    str</li>
<li>Numeric Types:    int, float, complex</li>
<li>Sequence Types:    list, tuple, range</li>
<li>Mapping Type:    dict</li>
<li>Set Types:    set, frozenset</li>
<li>Boolean Type:    bool</li>
<li>Binary Types:    bytes, bytearray, memoryview</li>
<li>None Type:    NoneType
<img src="https://velog.velcdn.com/images/pengpeng_it/post/c243aa06-3341-424c-ab21-f7b90ea542fb/image.jpg" alt=""></li>
</ul>
<p>파이썬에서는 변수에 값을 할당할 때 데이터 타입이 설정된다.</p>
<pre><code class="language-python"># 데이터 타입 예시

a = &quot;Hello World&quot;                                #str    
b = 20                                            #int
c = 20.5                                        #float
d = 1j                                            #complex
e = [&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;]                #list
f = (&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;)                #tuple
g = range(6)                                    #range
h = {&quot;name&quot; : &quot;John&quot;, &quot;age&quot; : 36}                #dict
i = {&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;}                #set
j = frozenset({&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;})    #frozenset
k = True                                        #bool
l = b&quot;Hello&quot;                                    #bytes
m = bytearray(5)                                #bytearray
n = memoryview(bytes(5))                        #memoryview
o = None                                        #NoneType</code></pre>
<p>데이터 타입을 지정하려면 생성자 함수를 사용할 수 있다.</p>
<pre><code class="language-python"># 생성자 함수(데이터 타입 지정) 예시

a = str(&quot;Hello World&quot;)                            #str
b = int(20)                                        #int
c = float(20.5)                                    #float
d = complex(1j)                                    #complex
e = list((&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;))            #list
f = tuple((&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;))        #tuple
g = range(6)                                    #range
h = dict(name=&quot;John&quot;, age=36)                    #dict
i = set((&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;))            #set
j = frozenset((&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;))    #frozenset
k = bool(5)                                        #bool
l = bytes(5)                                    #bytes
m = bytearray(5)                                #bytearray
n = memoryview(bytes(5))                        #memoryview</code></pre>
<h2 id="2-숫자-자료형">2. 숫자 자료형</h2>
<p>파이썬 숫자 데이터 타입은 숫자 값을 저장한다.
숫자 객체는 값이 할당될 때 생성된다.
예를 들면 다음과 같다.</p>
<pre><code class="language-python"># 숫자 데이터 타입 예시

var1 = 1       # int data type
var2 = True    # bool data type
var3 = 10.023  # float data type
var4 = 10+3j   # complex data type</code></pre>
<p>파이썬은 네 가지 다른 숫자 유형을 지원하며 각각은 int, bool, float 및 complex라는 내장 클래스를 가지고 있다.</p>
<ul>
<li>int (부호 있는 정수)</li>
<li>bool (정수의 하위 유형)</li>
<li>float (부동 소수점 실수)</li>
<li>complex (복소수)</li>
</ul>
<p>파이썬의 표준 라이브러리에는 주어진 객체의 클래스를 반환하는 내장 함수인 type()이 있다.
여기에서는 정수와 부동 소수점 숫자의 유형을 확인하는 데 사용된다.</p>
<pre><code class="language-python">&gt;&gt;&gt; type(123)
&lt;class &#39;int&#39;&gt;
&gt;&gt;&gt; type(9.99)
&lt;class &#39;float&#39;&gt;</code></pre>
<p>복소수는 두 부분으로 이루어져 있다.
실수 부분과 허수 부분으로 나뉘며 이들은 &#39;+&#39; 또는 &#39;-&#39; 기호로 구분된다.
허수 부분은 &#39;j&#39;로 표시되며 이는 허수를 나타낸다.
-1의 제곱근 (√-1)은 허수로 정의된다.
파이썬에서 복소수는 x + yj로 표현되며 여기서 x는 실수 부분이고 y는 허수 부분이다.
따라서 5 + 6j는 복소수다.</p>
<pre><code class="language-python">&gt;&gt;&gt; type(5+6j)
&lt;class &#39;complex&#39;&gt;</code></pre>
<p>부울(불리언) 데이터 타입은 True와 False라는 키워드로 표현되며, 두 가지 가능한 값만 가진다.
이 값들은 각각 정수 1과 0에 해당한다.</p>
<pre><code class="language-python">&gt;&gt;&gt; type (True)
&lt;class &#39;bool&#39;&gt;
&gt;&gt;&gt; type(False)
&lt;class &#39;bool&#39;&gt;</code></pre>
<p>다음은 정수, 부동 소수점 및 복소수의 사용 예시다.</p>
<pre><code class="language-python"># 정수, 부동 소수점, 복소수 예시

# integer variable.
a=100
print(&quot;The type of variable having value&quot;, a, &quot; is &quot;, type(a))

# boolean variable.
b=True
print(&quot;The type of variable having value&quot;, b, &quot; is &quot;, type(b))

# float variable.
c=20.345
print(&quot;The type of variable having value&quot;, c, &quot; is &quot;, type(c))

# complex variable.
d=10+3j
print(&quot;The type of variable having value&quot;, d, &quot; is &quot;, type(d))</code></pre>
<h2 id="3-시퀀스-자료형">3. 시퀀스 자료형</h2>
<p>시퀀스는 컬렉션 데이터 타입으로, 순서가 있는 항목의 모음이다.
시퀀스의 항목은 0부터 시작하는 위치 색인을 가지고 있다.
이는 C나 C++의 배열과 개념적으로 유사하다.</p>
<p>파이썬에서는 다음과 같은 세 가지 시퀀스 데이터 타입이 정의되어 있다.</p>
<ul>
<li>문자열 데이터 타입 (String Data Type)</li>
<li>리스트 데이터 타입 (List Data Type)</li>
<li>튜플 데이터 타입 (Tuple Data Type)</li>
</ul>
<p>파이썬의 시퀀스는 경계가 정해져 있으며 순회 가능하다.
파이썬에서 이야기할 때 순회 가능(iterable)하다고 하면 시퀀스 데이터 타입(예: 리스트)을 의미한다.</p>
<h2 id="4-문자열string">4. 문자열(String)</h2>
<p>파이썬 문자열은 하나 이상의 유니코드 문자로 이루어진 시퀀스로, 작은따옴표, 큰따옴표 또는 삼중 따옴표로 둘러싸여 있다.
파이썬 문자열은 변경할 수 없으며, 즉 문자열에 대한 작업을 수행할 때 항상 동일한 유형의 새로운 문자열 객체를 생성하게 되며 기존 문자열을 변경하지 않는다.</p>
<p>동일한 문자 시퀀스가 둘러싸여 있다면 작은따옴표, 큰따옴표 또는 삼중 따옴표의 형태는 중요하지 않는다.
따라서 다음 문자열 표현은 동등하다.</p>
<pre><code class="language-python">&gt;&gt;&gt; &#39;pengpengIT&#39;
&#39;pengpengIT&#39;
&gt;&gt;&gt; &quot;pengpengIT&quot;
&#39;pengpengIT&#39;
&gt;&gt;&gt; &#39;&#39;&#39;pengpengIT&#39;&#39;&#39;
&#39;pengpengIT&#39;</code></pre>
<p>파이썬에서의 문자열은 str 클래스의 객체다.
이를 확인하기 위해 <code>type()</code> 함수를 사용할 수 있다.</p>
<pre><code class="language-python">&gt;&gt;&gt; type(&quot;Welcome To TutorialsPoint&quot;)
&lt;class &#39;str&#39;&gt;</code></pre>
<p>문자열은 숫자가 아닌 데이터 유형이다.
이에 대해서는 산술 연산을 수행할 수 없지만, 슬라이싱 및 연결과 같은 작업을 수행할 수 있다.
파이썬의 str 클래스는 문자열 처리에 유용한 여러 메서드를 정의하고 있다.
문자열의 부분집합은 문자열의 처음부터 시작하는 0에서 시작하는 색인과 끝에서 -1로 역순으로 작동하는 슬라이스 연산자(<code>[ ]</code> 및 <code>[:]</code>)를 사용하여 가져올 수 있다.</p>
<p>덧셈(<code>+</code>) 기호는 문자열 연결 연산자이며, 별표(<code>*</code>)는 파이썬에서의 반복 연산자다.
예를 들면 다음과 같다.</p>
<pre><code class="language-python"># 문자열 슬라이스 연산자, 연결 연산자, 반복 연산자 예시

str = &#39;Hello World!&#39;

print (str)          # Prints complete string
print (str[0])       # Prints first character of the string
print (str[2:5])     # Prints characters starting from 3rd to 5th
print (str[2:])      # Prints string starting from 3rd character
print (str * 2)      # Prints string two times
print (str + &quot;TEST&quot;) # Prints concatenated string</code></pre>
<p>이는 다음과 같은 결과를 생성한다.</p>
<pre><code class="language-python"># 문자열 슬라이스 연산자, 연결 연산자, 반복 연산자 예시 결과

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST</code></pre>
<h2 id="5-리스트list">5. 리스트(List)</h2>
<p>파이썬 리스트는 가장 다양한 복합 데이터 유형이다.
쉼표로 구분된 항목으로 이루어져 있으며 대괄호(<code>[]</code>)로 둘러싸여 있다.
어느 정도까지는 파이썬 리스트가 C의 배열과 유사하다.
그들 사이의 한 가지 차이점은 파이썬 리스트에 속하는 모든 항목은 서로 다른 데이터 유형이 될 수 있지만, C 배열은 특정 데이터 유형에 관련된 요소를 저장할 수 있다.</p>
<pre><code class="language-python">&gt;&gt;&gt; [2023, &quot;Python&quot;, 3.11, 5+6j, 1.23E-4]</code></pre>
<p>파이썬에서의 리스트는 list 클래스의 객체다.
이를 확인하기 위해 <code>type()</code> 함수를 사용할 수 있다.</p>
<pre><code class="language-python">&gt;&gt;&gt; type([2023, &quot;Python&quot;, 3.11, 5+6j, 1.23E-4])
&lt;class &#39;list&#39;&gt;</code></pre>
<p>언급한 대로 리스트의 항목은 어떤 데이터 유형이든 될 수 있다.
이는 리스트 객체가 다른 리스트의 항목이 될 수도 있다는 것을 의미한다.
이 경우에는 중첩된 리스트가 된다.</p>
<pre><code class="language-python">&gt;&gt;&gt; [[&#39;One&#39;, &#39;Two&#39;, &#39;Three&#39;], [1,2,3], [1.0, 2.0, 3.0]]</code></pre>
<p>리스트는 간단한 숫자, 문자열, 튜플, 딕셔너리, 세트 또는 사용자가 정의한 클래스의 객체와 같은 항목을 포함할 수 있다.</p>
<p>파이썬 리스트에 저장된 값은 색인이 0에서 시작하여 리스트의 처음부터 시작하여 끝까지 -1로 역순으로 작동하는 슬라이스 연산자(<code>[ ]</code> 및 <code>[:]</code>)를 사용하여 액세스할 수 있다.
덧셈(<code>+</code>) 기호는 리스트 연결 연산자이고, 별표(<code>*</code>)는 반복 연산자다.
예를 들면 다음과 같다.</p>
<pre><code class="language-python"># 리스트 슬라이스 연산자, 연결 연산자, 반복 연산자 예시

list = [ &#39;abcd&#39;, 786 , 2.23, &#39;john&#39;, 70.2 ]
tinylist = [123, &#39;john&#39;]

print (list)            # Prints complete list
print (list[0])         # Prints first element of the list
print (list[1:3])       # Prints elements starting from 2nd till 3rd 
print (list[2:])        # Prints elements starting from 3rd element
print (tinylist * 2)    # Prints list two times
print (list + tinylist) # Prints concatenated lists</code></pre>
<p>이는 다음과 같은 결과를 생성한다.</p>
<pre><code class="language-python"># 리스트 슬라이스 연산자, 연결 연산자, 반복 연산자 예시 결과

[&#39;abcd&#39;, 786, 2.23, &#39;john&#39;, 70.2]
abcd
[786, 2.23]
[2.23, &#39;john&#39;, 70.2]
[123, &#39;john&#39;, 123, &#39;john&#39;]
[&#39;abcd&#39;, 786, 2.23, &#39;john&#39;, 70.2, 123, &#39;john&#39;]</code></pre>
<h2 id="6-튜플tuple">6. 튜플(Tuple)</h2>
<p>파이썬 튜플은 리스트와 유사한 또 다른 시퀀스 데이터 유형으로 쉼표로 구분된 여러 값으로 구성된다.
그러나 리스트와 달리 튜플은 괄호<code>(...)</code>로 둘러싸여 있다.</p>
<p>튜플 또한 시퀀스이므로 튜플의 각 항목은 컬렉션 내의 위치를 나타내는 인덱스를 가지고 있다.
인덱스는 0부터 시작한다.</p>
<pre><code class="language-python">&gt;&gt;&gt; (2023, &quot;Python&quot;, 3.11, 5+6j, 1.23E-4)</code></pre>
<p>파이썬에서 튜플은 tuple 클래스의 객체다. 이를 <code>type()</code> 함수로 확인할 수 있다.</p>
<pre><code class="language-python">&gt;&gt;&gt; type((2023, &quot;Python&quot;, 3.11, 5+6j, 1.23E-4))
&lt;class &#39;tuple&#39;&gt;</code></pre>
<p>리스트와 마찬가지로 튜플의 항목은 리스트, 튜플 자체 또는 다른 파이썬 클래스의 객체가 될 수 있다.</p>
<pre><code class="language-python">&gt;&gt;&gt; ([&#39;One&#39;, &#39;Two&#39;, &#39;Three&#39;], 1,2.0,3, (1.0, 2.0, 3.0))</code></pre>
<p>튜플을 형성하려면 괄호의 사용은 선택 사항이다.
괄호로 묶지 않은 쉼표로 구분된 데이터 항목은 기본적으로 튜플로 처리된다.</p>
<pre><code class="language-python">&gt;&gt;&gt; 2023, &quot;Python&quot;, 3.11, 5+6j, 1.23E-4
(2023, &#39;Python&#39;, 3.11, (5+6j), 0.000123)</code></pre>
<p>리스트와 튜플 간의 주요 차이점은 다음과 같다.
리스트는 대괄호(<code>[ ]</code>)로 묶이며 원소 및 크기를 변경할 수 있다. 즉, 가변(mutable)이다.
튜플은 소괄호(<code>( )</code>)로 묶이며 업데이트할 수 없다. 즉, 불변(immutable)이다.
튜플은 읽기 전용 리스트로 생각할 수 있다.</p>
<pre><code class="language-python"># 튜플 예시

tuple = ( &#39;abcd&#39;, 786 , 2.23, &#39;john&#39;, 70.2  )
tinytuple = (123, &#39;john&#39;)

print (tuple)               # Prints the complete tuple
print (tuple[0])            # Prints first element of the tuple
print (tuple[1:3])          # Prints elements of the tuple starting from 2nd till 3rd 
print (tuple[2:])           # Prints elements of the tuple starting from 3rd element
print (tinytuple * 2)       # Prints the contents of the tuple twice
print (tuple + tinytuple)   # Prints concatenated tuples</code></pre>
<p>이는 다음과 같은 결과를 생성한다.</p>
<pre><code class="language-python">(&#39;abcd&#39;, 786, 2.23, &#39;john&#39;, 70.2)
abcd
(786, 2.23)
(2.23, &#39;john&#39;, 70.2)
(123, &#39;john&#39;, 123, &#39;john&#39;)
(&#39;abcd&#39;, 786, 2.23, &#39;john&#39;, 70.2, 123, &#39;john&#39;)</code></pre>
<p>튜플을 업데이트하려고 시도하면 튜플은 불변(immutable)이기 때문에 다음과 같이 코드가 유효하지 않다. (리스트의 경우 가능하다.)</p>
<pre><code class="language-python">tuple = ( &#39;abcd&#39;, 786 , 2.23, &#39;john&#39;, 70.2  )
list = [ &#39;abcd&#39;, 786 , 2.23, &#39;john&#39;, 70.2  ]
tuple[2] = 1000    # Invalid syntax with tuple
list[2] = 1000     # Valid syntax with list</code></pre>
<h2 id="7-range-함수">7. range() 함수</h2>
<p>Python <code>range()</code> 함수는 0에서 시작하여 지정된 숫자에 도달할 때까지 1씩 증가하는 숫자 시퀀스를 반환하는 내장 함수다.</p>
<p><code>range()</code> 함수는 <code>for</code> 및 <code>while</code> 루프와 함께 사용하여 숫자 시퀀스를 생성하는 데 사용된다.
함수의 구문은 다음과 같다.</p>
<pre><code class="language-python">range(start, stop, step)</code></pre>
<p>여기에 사용된 매개변수는 아래와 같다.</p>
<ul>
<li><code>start</code> 시작 위치를 지정하는 정수(선택 사항, 기본값: 0)</li>
<li><code>stop</code> 시작 위치를 지정하는 정수(필수)</li>
<li><code>step</code> 증가를 지정하는 정수(선택 사항, 기본값: 1)</li>
</ul>
<p>아래는 0부터 4까지의 숫자를 출력하는 <code>for</code> 루프를 사용하는 프로그램이다.</p>
<pre><code class="language-python"># range() 함수 예시

for i in range(5):
  print(i)</code></pre>
<p>이는 다음과 같은 결과를 생성한다.</p>
<pre><code class="language-python"># range() 함수 예시 결과

0
1
2
3
4</code></pre>
<p>이제 위의 프로그램을 수정하여 0이 아닌 1부터 시작하는 숫자를 아래와 같이 출력하면, 다음과 같은 결과를 생성한다.</p>
<pre><code class="language-python"># range() 함수 예시2

for i in range(1, 5):
  print(i)</code></pre>
<pre><code class="language-python"># range() 함수 예시2 결과

1
2
3
4</code></pre>
<p>다시 한 번 프로그램을 수정하여 1에서 시작하지만 1이 아닌 2씩 증가하는 숫자를 출력하면, 다음과 같은 결과를 생성한다.</p>
<pre><code class="language-python"># range() 함수 예시3

for i in range(1, 5, 2):
  print(i)</code></pre>
<pre><code class="language-python"># range() 함수 예시3 결과

1
3</code></pre>
<h2 id="8-딕셔너리dictionary">8. 딕셔너리(Dictionary)</h2>
<p>Python 딕셔너리는 해시 테이블 유형이다.
딕셔너리 키는 거의 모든 Python 유형이 될 수 있지만 일반적으로 숫자 또는 문자열이다.
반면 값은 임의의 Python 객체가 될 수 있다.</p>
<p>Python 딕셔너리는 Perl에서 찾을 수 있는 연관 배열이나 해시와 유사하며 키:값 쌍으로 구성된다.
쌍은 쉼표로 구분되며 중괄호 <code>{}</code> 안에 넣는다.
키와 값 사이에 매핑을 설정하려면 세미콜론 <code>:</code> 기호가 사용된다.</p>
<pre><code class="language-python">&gt;&gt;&gt; {1:&#39;one&#39;, 2:&#39;two&#39;, 3:&#39;three&#39;}</code></pre>
<p>파이썬에서 딕셔너리는 내장된 <code>dict</code> 클래스의 객체다.
이를 <code>type()</code> 함수를 사용하여 확인할 수 있다.</p>
<pre><code class="language-python">&gt;&gt;&gt; type({1:&#39;one&#39;, 2:&#39;two&#39;, 3:&#39;three&#39;})
&lt;class &#39;dict&#39;&gt;</code></pre>
<p>딕셔너리는 중괄호(<code>{}</code>)로 둘러싸여 있으며 값은 대괄호(<code>[]</code>)를 사용하여 할당하고 액세스할 수 있다.</p>
<pre><code class="language-python"># 딕셔너리 예시

dict = {}
dict[&#39;one&#39;] = &quot;This is one&quot;
dict[2]     = &quot;This is two&quot;

tinydict = {&#39;name&#39;: &#39;john&#39;,&#39;code&#39;:6734, &#39;dept&#39;: &#39;sales&#39;}


print (dict[&#39;one&#39;])       # Prints value for &#39;one&#39; key
print (dict[2])           # Prints value for 2 key
print (tinydict)          # Prints complete dictionary
print (tinydict.keys())   # Prints all the keys
print (tinydict.values()) # Prints all the values</code></pre>
<pre><code class="language-python"># 딕셔너리 예시 결과

This is one
This is two
{&#39;dept&#39;: &#39;sales&#39;, &#39;code&#39;: 6734, &#39;name&#39;: &#39;john&#39;}
[&#39;dept&#39;, &#39;code&#39;, &#39;name&#39;]
[&#39;sales&#39;, 6734, &#39;john&#39;]</code></pre>
<p>파이썬의 딕셔너리는 순서가 없다.
문자열, 리스트 또는 튜플과 같이 각 항목(키:값 쌍)이 위치 색인에 의해 식별되지 않는다.
따라서 딕셔너리에는 슬라이싱 작업을 수행할 수 없다.
딕셔너리는 가변 객체이므로 dict 클래스에서 정의된 해당 기능을 사용하여 추가, 수정 또는 삭제 작업을 수행할 수 있다.</p>
<h2 id="9-세트set">9. 세트(Set)</h2>
<p>Python Set 데이터 유형은 수학에서 정의된 세트의 파이썬 구현이다.
파이썬의 세트는 컬렉션이지만 문자열, 리스트 또는 튜플처럼 인덱스 또는 순서가 지정되지 않은 컬렉션은 아니다.
세트 내에서 객체는 한 번 이상 나타날 수 없으며 List 및 Tuple에서는 동일한 객체가 한 번 이상 나타날 수 있다.</p>
<p>세트 내에서 쉼표로 구분된 항목은 중괄호 <code>{}</code> 안에 넣거나 중괄호로 표시된다.
세트 컬렉션 내의 항목은 다양한 데이터 유형일 수 있다.</p>
<pre><code class="language-python">&gt;&gt;&gt; {2023, &quot;Python&quot;, 3.11, 5+6j, 1.23E-4}
{(5+6j), 3.11, 0.000123, &#39;Python&#39;, 2023}</code></pre>
<p>세트 컬렉션 내의 항목은 입력된 순서와 일치하지 않을 수 있다.
항목의 위치는 파이썬에서 수학적으로 정의된 세트 작업을 수행하기 위해 최적화된다.</p>
<p>파이썬의 세트(Set)는 내장 set 클래스의 객체이며, type() 함수로 확인할 수 있다.</p>
<pre><code class="language-python">&gt;&gt;&gt; type({2023, &quot;Python&quot;, 3.11, 5+6j, 1.23E-4})
&lt;class &#39;set&#39;&gt;</code></pre>
<p>세트는 숫자(int, float, complex 또는 bool), 문자열 또는 튜플과 같은 변경 불가능한 객체만 저장할 수 있다.
리스트나 딕셔너리를 세트 컬렉션에 넣으려고 하면 Python에서 TypeError가 발생한다.</p>
<pre><code class="language-python">&gt;&gt;&gt; {[&#39;One&#39;, &#39;Two&#39;, &#39;Three&#39;], 1,2,3, (1.0, 2.0, 3.0)}
Traceback (most recent call last):
   File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
TypeError: unhashable type: &#39;list&#39;</code></pre>
<p>해싱은 컴퓨터 과학의 메커니즘으로 컴퓨터 메모리에서 객체를 빠르게 검색할 수 있게 한다.
해시 가능한 것은 변경 불가능한 객체뿐이다.</p>
<p>세트가 가변 항목을 허용하지 않더라도 세트 자체는 가변적이다.
따라서 내장된 set 클래스의 메서드를 사용하여 세트 객체에 대한 추가/삭제/업데이트 작업이 허용된다.
Python에는 세트 조작을 수행하는 데 사용되는 메서드와 연산자 집합이 있다.</p>
<h2 id="10-불리언boolean">10. 불리언(boolean)</h2>
<p>Python의 불리언(boolean) 타입은 <code>True</code> 또는 <code>False</code> 중 하나를 나타내는 내장 데이터 타입 중 하나다.
<code>bool()</code> 함수는 모든 표현식의 값을 평가하고 해당 표현식에 기반하여 <code>True</code> 또는 <code>False</code> 중 하나를 반환한다.</p>
<pre><code class="language-python">&gt;&gt;&gt; {1:&#39;one&#39;, 2:&#39;two&#39;, 3:&#39;three&#39;}</code></pre>
<p>다음은 boolean 변수 a와 b의 값을 출력하는 프로그램이다.</p>
<pre><code class="language-python"># boolean 예시

a = True
# display the value of a
print(a)

# display the data type of a
print(type(a))</code></pre>
<pre><code class="language-python"># boolean 예시 결과

true
&lt;class &#39;bool&#39;&gt;</code></pre>
<p>다음은 다른 프로그램으로, 표현식을 평가하고 반환 값을 출력한다.</p>
<pre><code class="language-python"># boolean 예시2

# Returns false as a is not equal to b
a = 2
b = 4
print(bool(a==b))

# Following also prints the same
print(a==b)

# Returns False as a is None
a = None
print(bool(a))

# Returns false as a is an empty sequence
a = ()
print(bool(a))

# Returns false as a is 0
a = 0.0
print(bool(a))

# Returns false as a is 10
a = 10
print(bool(a))</code></pre>
<pre><code class="language-python"># boolean 예시2 결과

False
False
False
False
False
True</code></pre>
<blockquote>
<p>참조 1. <a href="https://www.tutorialspoint.com/python/python_data_types.htm">tutorialspoint, 「Python - Data Types」, tutorialspoint 사이트</a>
참조 2. <a href="https://www.w3schools.com/python/python_datatypes.asp">w3schools, 「Python Data Types」, w3schools 사이트</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[변수(Variables)]]></title>
            <link>https://velog.io/@pengpeng_it/%EB%B3%80%EC%88%98Variables</link>
            <guid>https://velog.io/@pengpeng_it/%EB%B3%80%EC%88%98Variables</guid>
            <pubDate>Sun, 28 Jan 2024 06:52:15 GMT</pubDate>
            <description><![CDATA[<p>파이썬 변수는 파이썬 프로그램 내에서 값들을 저장하는 데 사용되는 예약된 메모리 위치다.
이는 변수를 생성할 때 메모리에 일정 공간을 예약한다는 것을 의미한다.
변수의 데이터 타입에 따라 파이썬 인터프리터는 메모리를 할당하고 예약된 메모리에 어떤 데이터를 저장할지 결정한다.
따라서 파이썬 변수에 다양한 데이터 유형을 할당함으로써 정수, 십진수 또는 문자를 이 변수에 저장할 수 있다.</p>
<blockquote>
<p>목차</p>
</blockquote>
<ol>
<li>메모리 주소</li>
<li>변수 생성 =</li>
<li>변수 출력 print()</li>
<li>변수 삭제 del</li>
<li>변수 유형 얻기 type()</li>
<li>변수 캐스팅</li>
<li>변수의 대소문자 구분</li>
<li>변수 다중 할당</li>
<li>변수명 규칙</li>
<li>상수</li>
<li>파이썬 변수 vs C/C++ 변수</li>
</ol>
<h2 id="1-메모리-주소">1. 메모리 주소</h2>
<p>다양한 데이터 유형에 속하는 데이터 항목은 컴퓨터의 메모리에 저장된다.
컴퓨터의 메모리 위치는 번호 또는 주소가 있으며, 이는 내부적으로 이진 형태로 표현된다.
데이터도 컴퓨터가 이진 표현 원리를 따르기 때문에 이진 형태로 저장된다.
다음 다이어그램에서는 문자열 &quot;May&quot;와 숫자 18이 메모리 위치에 저장된 것이 나타나 있다.
<img src="https://velog.velcdn.com/images/pengpeng_it/post/b9dfe2f9-99c9-4676-a14f-b8cb97c871a6/image.jpg" alt=""></p>
<p>어셈블리 언어를 알고 있다면 이러한 데이터 항목과 메모리 주소를 기계어 명령으로 변환하고 특정 메모리 위치에 저장하는 것이 가능하다. 그러나 모든 사람에게는 쉬운 일이 아니다.
파이썬 인터프리터와 같은 언어 번역기는 이러한 유형의 변환을 수행한다.
이는 객체를 임의로 선택된 메모리 위치에 저장한다.
파이썬의 내장 함수인 <code>id()</code> 함수는 객체가 저장된 메모리 주소를 반환한다.</p>
<pre><code class="language-python">&gt;&gt;&gt; &quot;May&quot;
May
&gt;&gt;&gt; id(&quot;May&quot;)
2167264641264

&gt;&gt;&gt; 18
18
&gt;&gt;&gt; id(18)
140714055169352</code></pre>
<p>데이터가 메모리에 저장되면 특정 프로세스를 수행하기 위해 반복적으로 액세스해야 한다.
데이터를 ID로부터 가져오는 것은 분명히 까다로운 작업이다.
파이썬과 같은 고급 언어는 메모리 위치를 참조하기 위해 적절한 별칭 또는 레이블을 제공하는 것이 가능하게 한다.</p>
<p>위의 예제에서 May의 위치를 month로, 18이 저장된 위치를 age로 레이블링해 보면, 파이썬은 할당 연산자 (=)를 사용하여 객체를 레이블에 바인딩한다.</p>
<pre><code class="language-python">&gt;&gt;&gt; month=&quot;May&quot;
&gt;&gt;&gt; age=18</code></pre>
<p>데이터 객체(May)와 그 이름(month)은 동일한 <code>id()</code>를 가지고 있다.
또한 18과 age의 <code>id()</code>도 동일하다.</p>
<pre><code class="language-python">&gt;&gt;&gt; id(month)
2167264641264
&gt;&gt;&gt; id(age)
140714055169352</code></pre>
<p>라벨은 식별자다.
보통 변수라고 불린다.
파이썬 변수는 객체에 대한 참조 또는 포인터인 상징적인 이름이다.</p>
<h2 id="2-변수-생성">2. 변수 생성</h2>
<p>파이썬 변수는 메모리 공간을 예약하거나 변수를 만들기 위한 명시적인 선언이 필요하지 않다.
즉, 파이썬에는 변수를 선언하는 명령이 없다.
변수는 처음 값을 할당하는 순간 생성된다.
등호(<code>=</code>)는 변수에 값을 할당하는 데 사용된다.</p>
<p><code>=</code> 연산자 왼쪽의 피연산자는 변수의 이름이며, <code>=</code> 연산자 오른쪽의 피연산자는 변수에 저장된 값이다.</p>
<pre><code class="language-python"># 변수 생성 예시

counter = 100          # Creates an integer variable
miles   = 1000.0       # Creates a floating point variable
name    = &quot;Zara Ali&quot;   # Creates a string variable</code></pre>
<h2 id="3-변수-출력">3. 변수 출력</h2>
<p>파이썬 변수를 생성하고 값에 할당한 후, print() 함수를 사용하여 변수를 출력할 수 있다.
다음은 이전 예제의 확장 버전으로, 파이썬에서 다양한 변수를 출력하는 방법을 보여준다.</p>
<pre><code class="language-python"># 변수 출력 예시

counter = 100          # Creates an integer variable
miles   = 1000.0       # Creates a floating point variable
name    = &quot;Zara Ali&quot;   # Creates a string variable

print (counter)
print (miles)
print (name)</code></pre>
<p>여기서 100, 1000.0 및 &quot;Zara Ali&quot;는 각각 counter, miles 및 name 변수에 할당된 값이다.
위의 파이썬 프로그램을 실행하면 다음과 같은 결과가 생성된다.</p>
<pre><code class="language-python"># 변수 출력 결과 예시

100
1000.0
Zara Ali</code></pre>
<p>여러 변수를 쉼표(<code>,</code>) 또는 <code>+</code>로 구분하여 출력할 수 있다.
여러 변수를 출력할 경우 쉽표를 사용하는 것이 가장 좋은 방법이다. (아래 <code>+</code> 연산자의 주의점 참고)</p>
<pre><code class="language-python"># 여러 변수 출력 예시(,)

x = &quot;Python&quot;
y = &quot;is&quot;
z = &quot;awesome&quot;
print(x, y, z)</code></pre>
<pre><code class="language-python"># 여러 변수 출력 예시(+)

x = &quot;Python &quot;
y = &quot;is &quot;
z = &quot;awesome&quot;
print(x + y + z)</code></pre>
<ul>
<li><code>+</code> 연산자 주의점
공백 문자에 주의해야 한다. 공백 문자가 없으면 결과는 &quot;Pythonisawesome&quot;이 된다.
숫자의 경우 + 는 수학 연산자로 작동한다.
문자열과 숫자를 + 로 결합하려고 하면, 오류가 표시된다.</li>
</ul>
<h2 id="4-변수-삭제">4. 변수 삭제</h2>
<p>del 문을 사용하여 숫자 객체에 대한 참조를 삭제할 수 있다.
del 문의 구문은 다음과 같다.</p>
<pre><code class="language-python"># 변수 삭제 예시

del var1[,var2[,var3[....,varN]]]]</code></pre>
<p>del 문을 사용하여 단일 객체나 여러 객체를 삭제할 수 있다.</p>
<pre><code class="language-python"># 변수 삭제 del문 예시

del var
del var_a, var_b</code></pre>
<p>다음 예제에서는 변수를 삭제하는 방법을 보여준다.
삭제된 변수를 사용하려고 하면 파이썬 인터프리터가 오류를 발생시킨다.</p>
<pre><code class="language-python"># 변수 삭제 오류 예시

counter = 100
print (counter)

del counter
print (counter)</code></pre>
<p>이로 인해 다음과 같은 결과가 생성된다.</p>
<pre><code class="language-python"># 변수 삭제 오류 결과 예시

100
Traceback (most recent call last):
  File &quot;main.py&quot;, line 7, in &lt;module&gt;
    print (counter)
NameError: name &#39;counter&#39; is not defined</code></pre>
<h2 id="5-변수-유형-얻기">5. 변수 유형 얻기</h2>
<p>파이썬 변수의 데이터 유형은 내장 함수인 <code>type()</code>을 사용하여 얻을 수 있다.</p>
<pre><code class="language-python"># 변수 유형 type() 예시

x = &quot;Zara&quot;
y =  10
z =  10.10

print(type(x))
print(type(y))
print(type(z))</code></pre>
<p>이로 인해 다음과 같은 결과가 생성된다.</p>
<pre><code class="language-python"># 변수 유형 type() 결과 예시

&lt;class &#39;str&#39;&gt;
&lt;class &#39;int&#39;&gt;
&lt;class &#39;float&#39;&gt;</code></pre>
<h2 id="6-변수-캐스팅">6. 변수 캐스팅</h2>
<p>캐스팅을 사용하여 변수의 데이터 유형을 지정할 수 있다.</p>
<pre><code class="language-python"># 변수 캐스팅 예시

x = str(10)    # x will be &#39;10&#39;
y = int(10)    # y will be 10 
z = float(10)  # z will be 10.0

print( &quot;x =&quot;, x )
print( &quot;y =&quot;, y )
print( &quot;z =&quot;, z )</code></pre>
<p>이로 인해 다음과 같은 결과가 생성된다.</p>
<pre><code class="language-python"># 변수 캐스팅 결과 예시

x = 10
y = 10
z = 10.0</code></pre>
<h2 id="7-변수의-대소문자-구분">7. 변수의 대소문자 구분</h2>
<p>파이썬 변수는 대소문자를 구분한다.
즉, Age와 age는 서로 다른 변수다.</p>
<pre><code class="language-python"># 변수 대소문자 구분 예시

age = 20
Age = 30

print( &quot;age =&quot;, age )
print( &quot;Age =&quot;, Age )</code></pre>
<p>이로 인해 다음과 같은 결과가 생성된다.</p>
<pre><code class="language-python"># 변수 대소문자 구분 결과 예시

age = 20
Age = 30</code></pre>
<h2 id="8-변수-다중-할당">8. 변수 다중 할당</h2>
<p>파이썬은 하나의 문에서 둘 이상의 변수를 초기화할 수 있다.
다음 예에서 세 변수가 동일한 값을 가지도록한다.</p>
<pre><code class="language-python">&gt;&gt;&gt; a=10
&gt;&gt;&gt; b=10
&gt;&gt;&gt; c=10</code></pre>
<p>개별 할당 대신 다음과 같이 하나의 할당 문에서 수행할 수 있다.</p>
<pre><code class="language-python">&gt;&gt;&gt; a=b=c=10
&gt;&gt;&gt; print (a,b,c)
10 10 10</code></pre>
<p>다음 경우에는 서로 다른 값을 가진 세 변수가 있다.</p>
<pre><code class="language-python">&gt;&gt;&gt; a=10
&gt;&gt;&gt; b=20
&gt;&gt;&gt; c=30</code></pre>
<p>이러한 개별 할당 문은 하나로 결합될 수 있다.
등호 (<code>=</code>) 연산자의 왼쪽에는 쉼표로 구분된 변수 이름을 지정하고, 오른쪽에는 쉼표로 구분된 값들을 지정해야 한다.</p>
<pre><code class="language-python">&gt;&gt;&gt; a,b,c = 10,20,30
&gt;&gt;&gt; print (a,b,c)
10 20 30</code></pre>
<p>예시 - 한 줄에 여러 변수에 동일 객체 할당</p>
<pre><code class="language-python"># 변수 다중 할당 예시 1

a = b = c = 100

print (a)
print (b)
print (c)</code></pre>
<p>이렇게 하면 다음과 같은 결과가 생성된다.</p>
<pre><code class="language-python"># 변수 다중 할당 결과 예시 1

100
100
100</code></pre>
<p>여기서 정수 객체가 값 1로 생성되고 세 변수가 동일한 메모리 위치에 할당된다.
여러 객체를 여러 변수에 할당할 수도 있다.</p>
<p>예시 - 여러 변수에 여러 객체 할당</p>
<pre><code class="language-python"># 변수 다중 할당 예시 2

a,b,c = 1,2,&quot;Zara Ali&quot;

print (a)
print (b)
print (c)</code></pre>
<p>이렇게 하면 다음과 같은 결과가 생성된다.</p>
<pre><code class="language-python"># 변수 다중 할당 결과 예시 2

1
2
Zara Ali</code></pre>
<p>여기서 값이 각각 1, 2인 두 정수 객체가 변수 a와 b에 할당되고 값이 &quot;Zara Ali&quot;인 문자열 객체가 변수 c에 할당된다.</p>
<h2 id="9-변수명-규칙">9. 변수명 규칙</h2>
<p>모든 파이썬 변수는 a, b, c와 같이 고유한 이름을 가져야 한다.
변수 이름은 color, age, name 등과 같이 의미가 있을 수 있다.
파이썬 변수의 이름을 지을 때 주의해야 할 몇 가지 규칙이 있다.</p>
<p>파이썬 변수명 규칙</p>
<p>1) 변수 이름은 문자 또는 밑줄 문자로 시작해야 한다.
2) 변수 이름은 숫자나 $, (, *, % 등의 특수 문자로 시작할 수 없다.
3) 변수 이름은 알파벳, 숫자 및 밑줄 문자만 포함할 수 있다. (A-z, 0-9, _)
4) 파이썬 변수 이름은 대소문자를 구분하므로 Name과 NAME은 파이썬에서 서로 다른 변수다.
5) 파이썬 예약 키워드는 변수 이름으로 사용할 수 없다.</p>
<p>변수의 이름에 여러 단어가 포함되어 있다면 다음과 같은 몇 가지 규칙을 사용해야 한다.</p>
<p>1) Camel case(낙타 표기법)
첫 글자는 소문자, 그 후 각 단어의 첫 글자는 대문자로 표기한다.
예시 : kmPerHour, pricePerLitre</p>
<p>2) Pascal case(파스칼 표기법)
각 단어의 첫 글자를 대문자로 표기한다.
예시 : KmPerHour, PricePerLitre</p>
<p>3) Snake case(스네이크 표기법)
단어 사이에 밑줄 문자(_)를 사용하여 구분한다.<br>예시 : km_per_hour, price_per_litre</p>
<p>예시 - 유효한 변수명</p>
<pre><code class="language-python"># 유효한 변수명 예시

counter = 100
_count  = 100
name1 = &quot;Zara&quot;
name2 = &quot;Nuha&quot;
Age  = 20
zara_salary = 100000

print (counter)
print (_count)
print (name1)
print (name2)
print (Age)
print (zara_salary)</code></pre>
<p>이렇게 하면 다음과 같은 결과가 생성된다.</p>
<pre><code class="language-python"># 유효한 변수명 결과 예시

100
100
Zara
Nuha
20
100000</code></pre>
<p>예시 - 유효하지 않은 변수명</p>
<pre><code class="language-python"># 유효하지 않은 변수명 예시

1counter = 100
$_count  = 100
zara-salary = 100000

print (1counter)
print ($count)
print (zara-salary)</code></pre>
<p>이렇게 하면 다음과 같은 결과가 생성된다.</p>
<pre><code class="language-python"># 유효하지 않은 변수명 결과 예시

File &quot;main.py&quot;, line 3
    1counter = 100
           ^
SyntaxError: invalid syntax</code></pre>
<p>한 번 변수를 사용하여 데이터 객체를 식별하면 해당 id() 값을 사용하지 않고 여러 번 사용할 수 있다.
여기서 사각형의 높이(height)와 너비(width) 변수가 있다.
이러한 변수를 사용하여 면적과 둘레를 계산할 수 있다.</p>
<p>예시 - 변수 여러번 사용</p>
<pre><code class="language-python">&gt;&gt;&gt; width=10
&gt;&gt;&gt; height=20
&gt;&gt;&gt; area=width*height
&gt;&gt;&gt; area
200
&gt;&gt;&gt; perimeter=2*(width+height)
&gt;&gt;&gt; perimeter
60</code></pre>
<p>변수를 사용하는 것은 스크립트나 프로그램을 작성할 때 특히 유리하다.
다음 스크립트도 위의 변수들을 사용한다.</p>
<pre><code class="language-python"># 변수 여러번 사용 예시

width = 10
height = 20
area = width*height
perimeter = 2*(width+height)
print (&quot;Area = &quot;, area)

print (&quot;Perimeter = &quot;, perimeter)</code></pre>
<p>위의 스크립트를 .py 확장자로 저장하고 명령 줄에서 실행하면 다음 결과가 나타납니다.</p>
<pre><code class="language-python"># 변수 여러번 사용 결과 예시

Area = 200
Perimeter = 60</code></pre>
<h2 id="10-상수">10. 상수</h2>
<p>파이썬에는 공식적으로 정의된 상수가 없다.
그러나 모든 대문자 이름과 밑줄을 사용하여 변수를 상수로 취급하도록 지시할 수 있다.
예를 들어 PI_VALUE라는 이름은 변수가 다시 정의되거나 어떤 방식으로든 변경되지 않도록 하는 것을 나타낸다.</p>
<p>모든 대문자를 사용한 네이밍 컨벤션은 때로 &#39;스크리밍 스네이크 케이스&#39;로 불리며, 여기서 대문자(스크리밍)와 밑줄(스네이크)이 사용된다.</p>
<h2 id="11-파이썬-변수-vs-cc-변수">11. 파이썬 변수 vs C/C++ 변수</h2>
<p>파이썬에서 변수의 개념은 C/C++과는 다르게 작동한다.
C/C++에서 변수는 명명된 메모리 위치다.
만약 a=10이고 b=10이라면, 두 변수는 서로 다른 메모리 위치다.
각각의 메모리 주소를 100과 200이라고 가정해 보자.
<img src="https://velog.velcdn.com/images/pengpeng_it/post/bed7da9c-a124-4f8c-833d-5b4348312368/image.jpg" alt=""></p>
<p>만약 &quot;a&quot;에 새로운 값인 50을 할당하면, 메모리 주소 100에 있는 10이 덮어씌워진다.
<img src="https://velog.velcdn.com/images/pengpeng_it/post/a280a2c1-ed11-4ce9-adeb-97a528d5f19a/image.jpg" alt=""></p>
<p>파이썬 변수는 객체를 참조하며 메모리 위치가 아니다.
객체는 메모리에 한 번만 저장된다.
여러 변수는 사실 같은 객체에 대한 여러 레이블일 뿐이다.
<img src="https://velog.velcdn.com/images/pengpeng_it/post/6f7bacae-ac2b-42c2-9ecd-2f898f44b525/image.jpg" alt=""></p>
<p>문장 a=50은 메모리의 다른 위치에 새로운 int 객체 50을 생성하고, &quot;b&quot;에 의해 참조된 객체 10은 그대로 남겨진다.
<img src="https://velog.velcdn.com/images/pengpeng_it/post/b8771a48-72a4-4810-af76-b8b2a08a90c9/image.jpg" alt=""></p>
<p>또한, 만약 b에 다른 값이 할당되면, 객체 10은 더 이상 참조되지 않는다.
<img src="https://velog.velcdn.com/images/pengpeng_it/post/8fbc5167-53a2-4b65-8119-c9db5c463ad9/image.jpg" alt=""></p>
<p>파이썬의 가비지 컬렉터 메커니즘은 참조되지 않는 객체가 차지한 메모리를 해제한다.
파이썬의 정체성 연산자는 두 피연산자가 동일한 id() 값을 가지면 True를 반환한다.</p>
<pre><code class="language-python">&gt;&gt;&gt; a=b=10
&gt;&gt;&gt; a is b
True
&gt;&gt;&gt; id(a), id(b)
(140731955278920, 140731955278920)</code></pre>
<blockquote>
<p>참조 1. <a href="https://www.tutorialspoint.com/python/python_variables.htm">tutorialspoint, 「Python - Variables」, tutorialspoint 사이트</a>
참조 2. <a href="https://www.w3schools.com/python/python_variables.asp">w3schools, 「Python Variables」, w3schools 사이트</a>
참조 3. <a href="https://www.w3schools.com/python/python_variables_output.asp">w3schools, 「Python - Output Variables」, w3schools 사이트</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[구문(Syntax)]]></title>
            <link>https://velog.io/@pengpeng_it/%EA%B5%AC%EB%AC%B8Syntax</link>
            <guid>https://velog.io/@pengpeng_it/%EA%B5%AC%EB%AC%B8Syntax</guid>
            <pubDate>Sun, 28 Jan 2024 06:30:35 GMT</pubDate>
            <description><![CDATA[<p>파이썬 문법은 파이썬 프로그램을 작성하는 데 사용되는 규칙 집합을 정의한다.
파이썬 프로그래밍 언어 문법은 Perl, C, 그리고 Java 프로그래밍 언어와 많은 유사성이 있다.
그러나 이러한 언어들 간에는 몇 가지 명백한 차이가 있다.</p>
<blockquote>
<p>목차</p>
</blockquote>
<ol>
<li>파이썬 프로그래밍</li>
<li>식별자</li>
<li>예약어 목록</li>
<li>들여쓰기</li>
<li>멀티라인 구문</li>
<li>문자열 인용</li>
<li>주석</li>
<li>공백 라인</li>
<li>사용자의 입력 대기</li>
<li>세미콜론</li>
<li>suites</li>
<li>명령줄 인수</li>
</ol>
<h2 id="1-파이썬-프로그래밍">1. 파이썬 프로그래밍</h2>
<p>두 가지 다른 모드의 파이썬 프로그래밍으로 <code>&quot;Hello, World!&quot;</code>를 출력할 수 있다.</p>
<p>1) 대화형 모드 프로그래밍
2) 스크립트 모드 프로그래밍</p>
<h3 id="1-1-대화형-모드-프로그래밍">1-1. 대화형 모드 프로그래밍</h3>
<p>명령 프롬프트에서 다음과 같이 python을 입력하여 파이썬 인터프리터를 호출할 수 있다.</p>
<pre><code class="language-python">$ python3
Python 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] on linux
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&gt;&gt;&gt;</code></pre>
<p>여기서 <code>&gt;&gt;&gt;</code> 는 파이썬 명령 프롬프트를 나타낸다.
명령을 입력할 수 있는 곳이다.</p>
<p>파이썬 프롬프트에서 다음 텍스트를 입력하고 Enter 키를 누르면, <code>Hello, World!</code> 가 출력된다.</p>
<pre><code class="language-python">&gt;&gt;&gt; print (&quot;Hello, World!&quot;)</code></pre>
<h3 id="1-2-스크립트-모드-프로그래밍">1-2. 스크립트 모드 프로그래밍</h3>
<p>스크립트 매개변수와 함께 파이썬 인터프리터를 호출할 수 있다.
이는 스크립트의 실행을 시작하고 스크립트가 완료될 때까지 계속된다.
스크립트가 완료되면 인터프리터가 더 이상 활성 상태가 아니다.</p>
<p>간단한 텍스트 파일인 스크립트에 간단한 파이썬 프로그램을 작성해 본다.
파이썬 파일의 확장자는 .py 이다.
test.py 파일에 다음 소스 코드를 입력하고, 아래와 같이 프로그램을 실행하면, <code>Hello, World!</code> 를 생성한다.</p>
<p>1) 서버에 .py 파일 확장자를 사용하여 파이썬 파일 생성</p>
<pre><code class="language-python">C:\Users\Your Name&gt;test.py</code></pre>
<p>2) test.py 파일에 입력</p>
<pre><code class="language-python">print (&quot;Hello, World!&quot;)</code></pre>
<p>3) 프로그램 실행(PATH 변수에 Python 인터프리터 경로가 설정되어 있다고 가정한다.)</p>
<pre><code class="language-python">$ python3 test.py</code></pre>
<h3 id="1-3-스크립트-모드-프로그래밍---다른-방법">1-3. 스크립트 모드 프로그래밍 - 다른 방법</h3>
<p>Python 스크립트를 실행하는 다른 방법이다.</p>
<p>2) test.py 파일에 입력</p>
<pre><code class="language-python">#!/usr/bin/python3

print (&quot;Hello, World!&quot;)</code></pre>
<p>3) 프로그램 실행(/usr/bin 디렉토리에 Python 인터프리터가 있다고 가정한다.)</p>
<pre><code class="language-python">$ chmod +x test.py     # This is to make file executable
$./test.py</code></pre>
<h2 id="2-식별자">2. 식별자</h2>
<p>파이썬 식별자는 변수, 함수, 클래스, 모듈 또는 기타 객체를 식별하는 데 사용되는 이름이다.
식별자는 A에서 Z 또는 a에서 z로 시작하거나 밑줄 (_)로 시작하며, 이후에는 문자, 밑줄 및 숫자(0에서 9)가 따라온다.</p>
<p>파이썬은 식별자 내에서 @, $, %와 같은 구두점 문자를 허용하지 않는다.</p>
<p>파이썬은 대소문자를 구분하는 프로그래밍 언어다.
따라서 Manpower와 manpower는 파이썬에서 두 개의 다른 식별자다.</p>
<p>다음은 파이썬 식별자에 대한 명명 규칙이다.</p>
<p>1) 파이썬 클래스 이름은 대문자로 시작한다. 다른 모든 식별자는 소문자로 시작한다.
2) 식별자를 하나의 밑줄로 시작하면 해당 식별자는 개인 식별자임을 나타낸다.
3) 식별자를 두 개의 밑줄로 시작하면 해당 식별자는 강력한 개인 식별자임을 나타낸다.
4) 식별자가 두 개의 밑줄로 시작하고 끝난다면, 해당 식별자는 언어에서 정의한 특별한 이름이다.</p>
<h2 id="3-예약어-목록">3. 예약어 목록</h2>
<p>이들은 예약어로 지정되어 있어서 상수나 변수, 또는 다른 식별자 이름으로 사용할 수 없다.
모든 파이썬 예약어는 소문자만을 포함한다.
and
as
assert
break
class
continue
def
del
elif
else
except
False
finally
for
from
global
if
import
in
is
lambda
None
nonlocal
not
or
pass
raise
return
True
try
while
with
yield</p>
<h2 id="4-들여쓰기">4. 들여쓰기</h2>
<p>들여쓰기는 코드 라인의 처음에 있는 공백을 나타낸다.
다른 프로그래밍 언어에서 코드의 들여쓰기는 가독성을 위한 것일 뿐이지만, 파이썬에서는 들여쓰기가 매우 중요하다.
파이썬은 클래스 및 함수 정의 또는 흐름 제어를 위한 코드 블록을 나타내는 중괄호를 제공하지 않는다.</p>
<p>파이썬은 들여쓰기를 사용하여 코드 블록을 나타낸다.</p>
<pre><code class="language-python">#들여쓰기 예시

if 5 &gt; 2:
  print(&quot;Five is greater than two!&quot;)</code></pre>
<p>파이썬은 들여쓰기를 생략하면 오류가 발생한다.</p>
<pre><code class="language-python">#들여쓰기 Syntax Error 예시

if 5 &gt; 2:
print(&quot;Five is greater than two!&quot;)</code></pre>
<p>들여쓰기에 사용되는 공백의 개수는 프로그래머의 선택에 달려 있다.
가장 일반적인 사용은 네 개이지만, 최소한 하나 이상이어야 한다.</p>
<pre><code class="language-python">#들여쓰기 예시

if 5 &gt; 2:
 print(&quot;Five is greater than two!&quot;) 
if 5 &gt; 2:
        print(&quot;Five is greater than two!&quot;)</code></pre>
<p>같은 코드 블록 내에서는 동일한 공백 수를 사용해야 한다.
그렇지 않으면 파이썬에서 오류가 발생한다.</p>
<pre><code class="language-python">#들여쓰기 Syntax Error 예시

if 5 &gt; 2:
 print(&quot;Five is greater than two!&quot;)
        print(&quot;Five is greater than two!&quot;)</code></pre>
<h2 id="5-멀티라인-구문">5. 멀티라인 구문</h2>
<p>파이썬에서 일반적으로 문은 새 줄로 끝난다.
그러나 파이썬은 라인 연속 문자 (<code>\</code>)를 사용하여 한 줄이 계속될 것임을 나타낼 수 있다.</p>
<pre><code class="language-python">#멀티라인 구문 예시

total = item_one + \
        item_two + \
        item_three</code></pre>
<p>[], {} 또는 () 괄호 안에 포함된 명령문에서는 줄 연속 문자를 사용할 필요가 없다.
예를 들어 다음 명령문은 Python에서 잘 작동한다.</p>
<pre><code class="language-python">#멀티라인 구문 예시

days = [&#39;Monday&#39;, &#39;Tuesday&#39;, &#39;Wednesday&#39;,
        &#39;Thursday&#39;, &#39;Friday&#39;]</code></pre>
<h2 id="6-문자열-인용">6. 문자열 인용</h2>
<p>파이썬에서는 문자열 리터럴을 나타내기 위해 작은 따옴표(&#39;), 큰 따옴표(&quot;), 그리고 세 개의 작은 따옴표(&#39;&#39;&#39;), 세 개의 큰 따옴표(&quot;&quot;&quot;&quot;)를 모두 허용한다.
다만, 문자열을 시작하는 따옴표와 끝나는 따옴표가 동일한 유형이어야 한다.</p>
<p>세 개의 따옴표를 사용하면 여러 줄에 걸친 문자열을 나타낼 수 있다.
예를 들어, 다음은 모두 유효한 예시다.</p>
<pre><code class="language-python">#문자열 인용 예시

word = &#39;word&#39;
print (word)

sentence = &quot;This is a sentence.&quot;
print (sentence)

paragraph = &quot;&quot;&quot;This is a paragraph. It is
 made up of multiple lines and sentences.&quot;&quot;&quot;
print (paragraph)</code></pre>
<h2 id="7-주석">7. 주석</h2>
<p>파이썬 소스 코드에서 프로그래머가 읽을 수 있는 설명 또는 주석이다.
이들은 소스 코드를 인간이 이해하기 쉽게 만들기 위해 추가되며, 파이썬 인터프리터에 의해 무시된다.</p>
<p>대부분의 현대 언어와 마찬가지로 파이썬은 한 줄 주석과 여러 줄 주석을 지원한다.
파이썬 주석은 PHP, BASH 및 Perl 프로그래밍 언어에서 사용 가능한 주석과 매우 유사하다.</p>
<p>문자열 리터럴 내부에 있지 않은 해시 기호(<code>#</code>)는 주석을 시작한다.
<code>#</code> 다음의 모든 문자는 주석의 일부이며 물리적인 줄의 끝까지 이어진다.
이 주석은 파이썬 인터프리터에 의해 무시된다.</p>
<pre><code class="language-python">#주석 예시

# First comment
print (&quot;Hello, World!&quot;) # Second comment</code></pre>
<p>주석은 문장이나 표현식 뒤에 동일한 줄에 작성할 수 있다.</p>
<pre><code class="language-python">#문장 또는 표현식 뒤 주석 예시

name = &quot;Madisetti&quot; # This is again comment</code></pre>
<p>여러 줄에 걸쳐 주석을 작성할 수 있다.</p>
<pre><code class="language-python">#여러 줄 주석 예시

# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.</code></pre>
<p>아래의 세 개 따옴표로 묶인 문자열도 파이썬 인터프리터에 의해 무시되며 여러 줄 주석으로 사용할 수 있다.</p>
<pre><code class="language-python">#여러 줄 주석 예시

&#39;&#39;&#39;
This is a multiline
comment.
&#39;&#39;&#39;</code></pre>
<h2 id="8-공백-라인">8. 공백 라인</h2>
<p>파이썬 프로그램에서 공백만 포함된 라인은 공백 라인으로 간주되며 파이썬은 완전히 무시한다.
대화형 인터프리터 세션에서 여러 줄의 문을 종료하려면 빈 물리적인 줄을 입력해야 한다.</p>
<h2 id="9-사용자의-입력-대기">9. 사용자의 입력 대기</h2>
<p>다음 프로그램 라인은 사용자에게 &quot;Enter 키를 눌러 종료&quot;라는 메시지를 표시하고 사용자의 동작을 기다린다.</p>
<pre><code class="language-python">#사용자의 입력 대기 예시

#!/usr/bin/python

raw_input(&quot;\n\nPress the enter key to exit.&quot;)</code></pre>
<p>여기서 <code>\n\n</code>은 실제 줄을 표시하기 전에 두 줄의 새 줄을 생성하는 데 사용된다.
사용자가 키를 누르면 프로그램이 종료된다.
이는 사용자가 응용 프로그램을 사용하는 동안 콘솔 창을 열어 둘 수 있는 좋은 트릭이다.</p>
<h2 id="10-세미콜론---한-줄에-멀티-구문">10. 세미콜론 - 한 줄에 멀티 구문</h2>
<p>세미콜론 (<code>;</code>)을 사용하면 각각의 문장이 새로운 코드 블록을 시작하지 않는 한 한 줄에 여러 문장을 작성할 수 있다.
다음은 세미콜론을 사용한 샘플 코드 조각이다.</p>
<pre><code class="language-python">#세미콜론 예시

import sys; x = &#39;foo&#39;; sys.stdout.write(x + &#39;\n&#39;)</code></pre>
<h2 id="11-suites---멀티-구문-그룹">11. suites - 멀티 구문 그룹</h2>
<p>파이썬에서는 하나의 코드 블록을 형성하는 개별 문장들의 그룹을 &#39;suites&#39;라고 한다.
if, while, def, class와 같은 복합 또는 복잡한 문장은 헤더 라인과 suite로 구성된다.</p>
<p>헤더 라인은 문장을 시작하며 (키워드와 함께), 콜론 (:)으로 끝나며 이어서 하나 이상의 라인이 온다.</p>
<pre><code class="language-python">#suites 예시

if expression :
   suite
elif expression :
   suite
else :
   suite</code></pre>
<h2 id="12-명령줄-인수">12. 명령줄 인수</h2>
<p>파이썬에서는 많은 프로그램이 실행될 때 어떻게 실행되어야 하는지에 대한 기본 정보를 제공할 수 있다.
이를 위해 Python에서는 -h를 사용할 수 있다.</p>
<pre><code class="language-python">#명령줄 인수 예시

$ python3 -h
usage: python3 [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d     : debug output from parser (also PYTHONDEBUG=x)
-E     : ignore environment variables (such as PYTHONPATH)
-h     : print this help message and exit

[ etc. ]</code></pre>
<blockquote>
<p>참조 1. <a href="https://www.tutorialspoint.com/python/python_basic_syntax.htm">tutorialspoint, 「Python - Syntax」, tutorialspoint 사이트</a>
참조 2. <a href="https://www.w3schools.com/python/python_syntax.asp#python_comments">w3schools, 「Python Syntax」, w3schools 사이트</a></p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[파이썬의 특징]]></title>
            <link>https://velog.io/@pengpeng_it/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%98-%ED%8A%B9%EC%A7%95</link>
            <guid>https://velog.io/@pengpeng_it/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%98-%ED%8A%B9%EC%A7%95</guid>
            <pubDate>Sun, 28 Jan 2024 05:59:39 GMT</pubDate>
            <description><![CDATA[<p>파이썬은 매우 인기 있는 범용 해석형, 대화형, 객체 지향, 고급 프로그래밍 언어다.
동적으로 타입이 지정되며, 가비지 수집 기능을 갖춘 프로그래밍 언어다.
1985년부터 1990년까지 Guido van Rossum에 의해 만들어졌다.
Perl과 마찬가지로 Python 소스 코드는 GNU General Public License (GPL) 하에 사용 가능하다.</p>
<p>파이썬은 절차적, 객체 지향 및 함수형 프로그래밍 언어를 지원한다.
파이썬의 설계 철학은 들여쓰기의 사용을 강조하여 코드 가독성을 높인다.</p>
<p>오늘날 파이썬은 매우 높은 수요를 가지고 있으며, 모든 주요 기업들은 웹사이트, 소프트웨어 구성 요소, 애플리케이션을 개발하거나 데이터 과학, 인공 지능, 기계 학습 기술과 함께 작업할 수 있는 우수한 파이썬 프로그래머를 찾고 있다.</p>
<h3 id="파이썬의-특징">파이썬의 특징</h3>
<p>1) 다양한 플랫폼에서 동작
파이썬은 여러 플랫폼에서 작동한다 (Windows, Mac, Linux, Raspberry Pi 등).</p>
<p>2) 영어와 유사한 간단한 문법
파이썬은 영어와 유사한 간단한 문법을 가지고 있다.</p>
<p>3) 다른 몇몇 프로그래밍 언어보다 더 적은 코드로 프로그램 작성 가능
파이썬은 다른 몇몇 프로그래밍 언어보다 적은 양의 코드로 프로그램을 작성할 수 있게 해준다.</p>
<p>4) 인터프리터 시스템에서 실행
파이썬은 인터프리터 시스템에서 실행되므로 코드를 작성하자마자 실행할 수 있다.
이는 프로토타이핑을 매우 빠르게 할 수 있게 해준다.</p>
<p>5) 다양한 프로그래밍 패러다임 지원
함수형 및 구조적 프로그래밍 방법과 객체 지향 프로그래밍을 지원한다.</p>
<p>6) 스크립팅 언어 또는 대규모 응용 프로그램을 위한 바이트 코드 컴파일
스크립팅 언어로 사용되거나 대규모 응용 프로그램을 위한 바이트 코드로 컴파일될 수 있다.</p>
<p>7) 고수준 동적 데이터 타입 및 동적 타입 검사 지원
매우 고수준의 동적 데이터 타입을 제공하며 동적 타입 검사를 지원한다.</p>
<p>8) 자동 가비지 수집 지원
자동 가비지 수집을 통해 메모리 관리를 간편하게 처리할 수 있다.</p>
<p>9) C, C++, COM, ActiveX, CORBA, Java 등과 쉽게 통합
C, C++, COM, ActiveX, CORBA, Java 등과 쉽게 통합할 수 있다.</p>
<h3 id="파이썬의-응용-분야">파이썬의 응용 분야</h3>
<p>파이썬의 최신 버전은 3.x이다.
앞에서 언급했듯이, 파이썬은 웹 상에서 가장 널리 사용되는 언어 중 하나이며, 다음과 같은 몇 가지 응용 분야가 있다.</p>
<p>1)쉬운 학습성
파이썬은 몇 가지 키워드, 간단한 구조 및 명확한 구문을 가지고 있어 학습이 빠르다.</p>
<p>2) 가독성이 좋음
파이썬 코드는 명확하게 정의되어 시인성이 좋다.</p>
<p>3) 유지 보수가 용이
파이썬의 소스 코드는 비교적 쉽게 유지 보수할 수 있다.</p>
<p>4) 풍부한 표준 라이브러리
파이썬의 라이브러리 대부분은 UNIX, Windows 및 Macintosh에서 이식 가능하며 크로스 플랫폼 호환성이 높다.</p>
<p>5) 대화형 모드
파이썬은 대화형 모드를 지원하여 코드 일부를 대화식으로 테스트하고 디버깅할 수 있다.</p>
<p>6) 이식성
파이썬은 다양한 하드웨어 플랫폼에서 실행되며 모든 플랫폼에서 동일한 인터페이스를 제공한다.</p>
<p>7) 확장성
파이썬 인터프리터에는 저수준 모듈을 추가할 수 있다.
이러한 모듈을 통해 프로그래머는 도구를 보다 효율적으로 추가하거나 사용자 정의할 수 있다.</p>
<p>8) 데이터베이스 지원
파이썬은 모든 주요 상용 데이터베이스에 대한 인터페이스를 제공한다.</p>
<p>9) GUI 프로그래밍
파이썬은 Windows MFC, Macintosh 및 Unix의 X Window 시스템과 같은 다양한 시스템 호출, 라이브러리 및 창 시스템에 대한 GUI 응용 프로그램을 지원한다.</p>
<p>10) 확장 가능성
파이썬은 셸 스크립팅보다 큰 프로그램을 위한 구조와 지원을 제공한다.</p>
<h3 id="다른-프로그래밍-언어와-파이썬-문법-비교">다른 프로그래밍 언어와 파이썬 문법 비교</h3>
<p>1) 파이썬은 가독성을 위해 설계되었으며, 영어 언어의 영향을 받아 수학에서도 영감을 받았다.</p>
<p>2) 파이썬은 명령을 완료하기 위해 새 줄을 사용하며, 다른 프로그래밍 언어는 종종 세미콜론이나 괄호를 사용한다.</p>
<p>3) 파이썬은 스코프를 정의하기 위해 들여쓰기를 사용한다.
즉, 루프, 함수 및 클래스의 스코프를 정의하기 위해 공백을 사용한다.
다른 프로그래밍 언어는 이러한 목적으로 중괄호를 사용하기도 한다.</p>
<blockquote>
</blockquote>
<p>참조 1. <a href="https://www.tutorialspoint.com/python/python_overview.htm">tutorialspoint, 「Python - Overview」, tutorialspoint 사이트</a>
참조 2. <a href="https://www.w3schools.com/python/python_intro.asp">w3schools, 「Python Introduction」, w3schools 사이트</a></p>
]]></description>
        </item>
    </channel>
</rss>