파이썬 문자열의 멤버 함수를 정리하면 다음 표와 같다.


문자열 함수

기능

format()

변수의 내용을 표시하기 위한 포맷팅을 수행한다.

lower(), casefold()

upper()

swapcase()

title()

capitalize()

대문자를 소문자로 바꾼다.

소문자를 대문자로 바꾼다.

대문자는 소문자로, 소문자는 대문자로 바꾼다.

모든 단어의 첫 문자만 대문자로 나머지는 소문자로 바꾼다.

문자열의 첫 글자만 대문자로 나머지는 소문자로 바꾼다.

islower()

isupper()

모든 문자가 소문자이면 True 반환

모든 문자가 대문자이면 True 반환

count(str)

str이 포함된 개수를 센다.

find(str)

index(str)

str의 첫 위치를 알아낸다. (없다면 -1 반환)

str의 첫 위치를 알아낸다. (없다면 예외 발생)

join(str)

str을 구성하는 각 문자 사이에 원 문자열을 끼워 넣는다.

lsrtip()

rstrip()

strip()

center(n[,str])

ljust(n[,str]))

rjust(n[,str]))

좌측 공백을 지운다.

우측 공백을 지운다.

양쪽의 공백을 지운다.

크기 n의 문자열의 중앙에 원 문자열을 정렬한다.

크기 n의 문자열의 왼쪽에 원 문자열을 정렬한다..

크기 n의 문자열의 오른쪽에 원 문자열을 정렬한다..

(두 번째 인수가 없다면 공백 문자를, 있다면 그 문자로 채운다.)

replace(str1, str2)

원 문자열 안의 str1을 str2로 바꾼다.

split()

split(sep)

공백문자를 기준으로 나누어서 리스트에 저장한다.

sep(문자열)을 기준으로 나누어서 리스트에 저장한다.

isalnum()

isalpha()

isidentifier()

모든 문자가 알파벳 혹은 숫자(alphanumeric)이면 True 반환.

모든 문자가 알파벳(alphabet)이면 True 반환.

문자열이 식별자의 조건에 맞다면 True 반환.

isdecimal()

isdigit()

isnumeric()

십진 정수이면 True 반환.

모든 문자가 0에서 9가지의 숫자이면 True 반환.

모든 문자가 0에서 9가지의 숫자이면 True 반환.

(세 함수의 차이점이 명확하지 않음.)


위의 함수들은 모두 문자열 혹은 문자열 변수에 바로 이어서 점(.)을 찍은 다음 호출할 수 있다. 예를 들면 다음과 같다.


>>> s = "HELLO"
>>> s2 = s.lower() #문자열 s를 전부 소문자로 만들어서 s2에 저장
>>> "Hi. My name is jhp.".count('jhp') #문자열에서 문자열 ‘jhp’의 개수를 센다.


 join()함수의 경우 str1.join(str2) 라고 입력하면 str2를 구성하는 각 문자의 사이에 str1을 끼워 넣어서 새로운 문자열을 생성한다.


>>>','.join('abc')
'a,b,c'
>>>'_and_'.join('jhpark')
'j_and_h_and_p_and_a_and_r_and_k'




Posted by 살레시오
,

 파이썬에서 문자열을 포맷팅할 때 문자열 객체의 멤버 함수인 format()을 이용할 수도 있다. (이 경우 C#의 문자열 포멧팅과 유사한 방법을 사용할 수 있다.)


>>> age = 44
>>> print(“I’m {0} years old.'.format(age))
I’m 44 years old.


문자열 안의 ‘{번호}’ 가 format() 멤버함수의 인자의 내용으로 치환이 됨을 알 수 있다. 변수의 종류는 가리지 않으며 foramt()함수의 첫 번째 인자가 0번, 두 번째 인자가 1번...순으로 지정된다.


 여러 개의 변수를 출력할 수도 있다.


>>> name='Jang-Hyun Park'
>>> age=44
>>> print("My name is {0} and {1} years old.".format(name,age))
My name is Jang-Hyun Park and 44 years old.


여기에서 문자열 내부의 ‘{0}’은 name 변수로, ‘{1}’은 age변수의 내용으로 치환된다.


 실수의 소수점 아래 자리수를 제한하려면 다음과 같이 하면 된다.


>>> rn = 1.2345678
>>> print("rn is about {0:.4f}.".format(rn))
rn is about 1.2346.


 포맷팅을 하는 두 가지 방법 모두 장단점이 있으므로 상황에 따라 편한 쪽을 택해서 사용하면 된다. 예를 들어서 동일한 변수를 여러 번 출력할 때는 여기에서 소개한 방법이 더 유리하다.


>>> blah = ‘blah’
>>> print(“%s %s %s %s”%(blah, blah, blah, blah))
>>> print(“{0} {0} {0} {0}”.format(blah))


이와 같이 동일한 변수를 여러 번 출력할 경우 세 번째 줄과 같이 문자열의 format() 필드를 이용하면 두 번째 줄의 %-formatter보다 더 간략하게 사용할 수 있다.



Posted by 살레시오
,

 문자열 중간에 어떤 변수의 내용을 출력하고 싶다면 print()함수를 이용하면 된다.


>>> a=3+4j
>>> b=’hi’
>>> print('a is',a,’and b is’,b) #변수 앞뒤에 공백문자를 자동으로 넣어준다.
a is (3+4j) and b is hi


또는 변수의 내용으로 아예 치환한 문자열을 만들고 싶다면 str() 내장함수를 이용하는 방법도 있다.


>>> a=3+4j
>>> b=’hi’
>>> ‘a is ‘+str(a)+’ b is ‘+ b
a is (3+4j) and b is hi


더 간단하고 일반적인 방법은 문자열 포맷팅 기능을 이용하는 것이다.  C 언어에서 printf() 문을 이용하여 변수의 내용을 출력하는 유사한 방법을 파이썬에서도 지원한다. 이것을 문자열의  formatting이라고 하는데 예를 들어서 정수값을 출력하고 싶다면 다음과 같이 하면 된다.


>>> a=11
>>> “a equals %d.”%a


이와 같이 문자열 내부의 %d는 문자열에 바로 뒤따르는 ‘%변수’의 변수값으로 바꾸어 준다. 두 개 이상을 출력하려면 다음과 같이 괄호로 묶어주면 된다. (괄호로 묶인 자료 집합을 튜플이라고 하며 뒤에서 자세하게 설명할 것이다.)


>>> a=11
>>> b=-22
>>> "vars are %d and %d."%(a,b)
'vars are 11 and -22.'


실수를 출력하려면 %f, 문자열을 출력하려면 %s를 사용하면 된다.


[표 1] 문자열 formatter 의 종류

문자열 포맷팅

기능

%d, %x, %o

십진수, 16진수, 8진수(복소수는 출력이 안 됨)

%f

%.숫자f

실수를 출력 (복소수는 출력이 안 됨.)

표시할 소수점 아래 자리수를 명시한다.

%s

문자열 출력

%%

‘%’ 문자 자체를 출력


문자열을 출력하는 예를 들어보면 다음과 같다.


>>> ss = 'short'   
>>> print('Life is %s.'%ss)
Life is short.


아래 예와 같이 실수의 경우 표시할 소수점 아래 자리수를 지정해줄 수 있다.


>>> rn = 1.2345678  
>>> 'f is about %.4f'%rn
'f is about 1.2346'


소수점 다섯째 자리에서 반올림하여 소수점 넷째 자리까지 표시했음을 알 수 있다.


 한 가지 짚고 넘어갈 것은 %d와 %f 는 복소수는 출력하지 못한다. 복소수는 %s를 이용하여 출력하면 된다.


>>> c1=11+22.3j
>>> print('c1=%s'%c1)
c1=(11+22.3j)


재미있는 것은 %s를 이용하면 숫자나 문자열을 가리지 않고 모두 출력해준다는 것이다. 이는 숫자도 내부적으로 자동으로 문자열로 변환되기 때문이다.


>>> n=1024
>>> print('n equals %s.'%n)
n equals 1024.


따라서 숫자를 출력하든 문자를 출력하든 %s를 사용하여도 전혀 문제가 없다.



Posted by 살레시오
,

 파이썬에서는 문자열끼리 더하거나 곱할 수 있다. 문자열끼리 연결하는데  덧셈 연산자를 사용하는 것은 다른 언어에서도 흔하지만 곱셈은 독특하다.  두 개의 문자열을 더하면 문자열이 하나로 합해진 새로운 문자열이 만들어진다.


>>> “My name is “+”Salesio.”
>>> q = “ipython”
>>> r = “ is useful.”
>>> s = q+r


이 예제에서 원래의 문자열 q와 r은 더하기 연산으로 변경되지 않는다. 앞에서도 밝혔듯이 문자열은 한 번 내용이 정해지면 그 다음에는 변경할 수 없다. (이러한 자료형을 immutable 자료형이라고 한다.)  다만 연산의 결과로 새로운 문자열이 생성되는 것이다.  만약


>>>s = ’Life is long.’


에서 long이라는 단어를 short로 바꾸고 싶다면 슬라이싱을 이용해서 다음과 같이 할 수 있다.


>>> s = s[:8] + ’short.’


이 경우 원래 문자열이 바뀌는 것이 아니라 기존의 문자열은 모두 삭제되고 새로 생성된 문자열이 다시 변수 s에 저장되는 것이다. (사실 변수 s 는 문자열에 대한 참조가 저장된다. 이 경우 참조, 즉 주소가 새로 생성된 문자열의 그것으로 바뀌는 것이다.)


 유사하게 문자열에 정수를 곱하면 정수만큼 반복되는 새로운 문자열을 생성한다.


>>> “blah “*5

blah blah blah blah blah

>>> ‘=’*50

==================================================


위에서 두 번째 예는 화면에 출력할 때 간단히 구분선을 만드는 용도로 사용된다.



Posted by 살레시오
,

 파이썬3의 문자열은 내부적으로 (유니코드) 문자의 배열로 취급된다. 예를 들어보자.


>>> s=“Hello World”


문자열

H

e

l

l

o


w

o

r

l

d

인덱스 (기본 방향)

0

1

2

3

4

5

6

7

8

9

10

인덱스 (역방향)

-11




-7

-6

-5

-4

-3

-2

-1


문자열에 포함된 각각의 문자에 매겨진 이 번호를 인덱스(index)라고 한다. 이 예에서 문자열의 길이는 11이고  인덱스는 0부터 시작한다. 인덱스가 1부터 시작하지 않고 0부터 시작함에 주의해야 한다. (다른 프로그래밍 언어에서도 배열의 인덱싱은 보통 0부터 시작한다.)


>>> s[0]

H

>>> s[6]

w

>>> s[-1]

d


마지막의 s[-1]과 같이 음수는 뒤에서부터 세는 것이다. 따라서 뒤에서 첫 번째 문자인 ‘d’가 된다.


>>> s[-2]

l

>>> s[-6]


만일


>>>  a=”python is the best.”


라는 문자열에서 첫 단어를 뽑아내고 싶다면 아래와 같이 한다.


>>> b=a[0:6]


인덱스 ‘0:6’ 이 뜻하는 것은 ‘0부터 5까지’ 이다. 끝 번호 6은 포함하지 않는다는 것에 주의해야 한다. 이렇게 콜론(:)을 이용하여 연속적인 인덱스를 지정하는 것을 슬라이싱(slicing)이라고 한다. 문자열의 마지막까지 지정하려면 끝 번호를 생략하면 된다.


>>> c = a[7:] # ‘is the best.’ 가 c에 저장된다.


반대로 시작 번호가 생략되면 문자열의 처음부터 선택된다.


>>> d = a[:8] # ‘python is’ 가 d에 저장된다.


그리고 시작 번호와 끝 번호가 모두 생략된다면, 즉 e=a[:] 이라고 하면 문자열 전체가 선택이 된다. 즉, e에는 a 문자열 전체가 저장된다.


슬라이싱에서도 인덱싱과 마찬가지로 음수를 사용할 수 있다.


>>> f = a[:-5]


결과를 확인해 보기 바란다. 이 경우에도 끝 번호는 포함되지 않으므로 첫 문자부터 -6번 문자까지 뽑아져서 f에 저장된다. 슬라이싱을 정리하면 다음과 같다.


  • s[m:n] 은 s[m] 부터 s[n-1] 까지의 부분 문자열이다.


예를 들어서 만약 문자열 h를 5번째 문자를 기준으로 둘로 나눠서 hl, hr에 정하고 싶다면 다음과 같이 하면 될 것이다.


>>> hl = h[:5]
>>> hr = h[5:]


이러한 기능을 이용해서 문자열 자체를 바꿀 수는 없다는 것에 주의하자. 즉, 다음과 같이 문자열의 일부분을 바꾸는 것은 불가능한다.


>>>a[0] = ’x’ #불가능하다


이는 문자열은 한 번 내용이 정해지면 내용을 읽는 수는 있지만 변경될 수는 없는 자료형이기 때문이다. (이러한 자료형을 immutable 하다고 한다.)




Posted by 살레시오
,

 파이썬에서 문자열은 큰따옴표(“...”) 혹은 작은 따옴표 (‘...’)로 묶인 문자들의 집합이다.


“Hello world.”
‘Mokpo National Univ.’
“12.3”


위의 예는 모두 문자열을 나타낸다. 12.3은 숫자이고 이것을 따옴표로 묶은 “12.3”은 문자열이다. 즉, 문자’1’, 문자’2’, 문자’.’, 문자’3’ 의 배열(array)이다. 파이썬에서 문자형이라는 자료형은 별도로 없다. 다른 언어(C/C++, JAVA, C# 등)에서는 보통 작은 따옴표는 한 문자를 표현할 때 사용되지만 파이썬에서는 문자열을 입력할 때 사용한다는 것에 유의하자.


 문자열을 입력하는 방법을 왜 두 가지로 마련해 놓았을까? 작은 따옴표가 포함된 문자열 혹은 큰따옴표가 포함된 문자열을 쉽게 입력할 수 있기 때문이다.


‘He said “hi”. ’
“I’m your father.”


 파이썬 문자열에도 C언어의 printf()함수에서 사용하였던 특수 문자를 사용할 수 있다. 특수문자는 역슬래시(\ 는 여기서는 escape cahracter 라고 한다.)로 시작하며 특수한 용도로 사용된다. 다음 표에 주로 쓰이는 특수 문자를 정리하였다.


[표 1 ] 파이썬의 문자열에 쓰이는 특수문자

문자

설명

\n

줄바꿈

\t

수평 탭(tab)

\\

‘\’문자 자체를 의미

\’

작은따옴표 문자

\”

큰따옴표 문자


예를 들면 다음과 같다.


“He sais \”How are you?\””
“Hi.\nHello.”
‘He\’s finished.’


단 문자열의 중간에 줄바꿈 기호 ‘\n’이 들어가면 가독성이 떨어지므로 파이썬에서는 줄바꿈 기호를 타이핑하지 않고 그대로 입력할 수 있는 방법으로 “”” ... “”” 과 ‘’’ … ’’’ 를 제공한다.


>>> s = “””HI
Hello”””


라고 입력하고 그 결과를 확인해 보자.


>>> s


문자열 s에는 사용자가 엔터키로 입력한 줄바꿈 기호가 ‘\n’으로 자동으로 치환되었음을 알 수 있다.


만약 문자열 안의 ‘\’ 문자를 이스케이프 문자로 간주하지 않고 단순 문자로 사용하고 싶다면 ‘\\’와 같이 입력해도 되지만 한 문자열 안에 이런 경우가 많이 발생한다면 문자열 앞에 r을 붙이면 된다. 문자열 앞에 r이 붙으면 그 문자열 안의 모든 ‘\’는 단순 문자로 처리되며 결과 문자열에서는 ‘\’문자가 자동으로 ‘\\’로 변환된다.


>>> r'Hi.\nMy name:\tjhp'
'Hi.\\nMy name:\\tjhp'


이 방법은 특히 정규식(regular express)을 다룰 때 유용하다.



Posted by 살레시오
,

 파이썬의 산술 연산자는 다음과 같은 것들이 있다.


[표 1] 파이썬의 산술 연산자들

연산자

기능

비고/용례

+

덧셈

11+22, a+12, a+b

-

뺄셈

11-22j - 33, a-12, a-b

*

곱셈

11*22, (33+44j)*(55-66j), a*b

/

나눗셈

결과는 실수형이다. (2.x에서는 int / int의 결과는 int)

//

자리내림 나눗셈

피연산자가 모두 정수인 경우 나눗셈의 결과 소수점 아래는 버리고 정수만 취한다.

둘 중 하나라도 실수라면 / 연산자와 동일함.

**

거듭제곱

2**10, (1+2j)**20

%

나머지

3%4, -10%3, 12.345%0.4


여기서 나눗셈의 경우 버전에 따라서 결과가 다르다. 2.x버전에서는 정수간 나눗셈의 결과는 정수였다. 즉 1/2는 0, 2/3은 1이다. 하지만 3.x버전에서는 정수간 나눗셈의 결과는 나누어 떨어지는 경우라도 무조건 실수형이 된다. 즉, 1/2는 0.2, 6/3은 2.0이 된다. 다음 결과를 확인해 보자.


>>> 4/5
>>> a,b = 11,5 #a에 11, b에 5를 대입한다.
>>> b/a


2.x버전에서는 정수끼리의 나눗셈의 결과는 정수라는 것에 유의해야 한다.


 연산자 //는 두 피연산자가 모두 정수일 경우 결과값이 실수이면 소수점 아래는 버린다.


>>> 9//2 # 결과는 4 (정수)

>>> 9//2.0 # 결과는 4.5(실수)


 연산자 %는 나눗셈 수행 후 정수몫을 구하고 난 나머지를 구하는 연산자이다. 다음을 확인해보라.


>>> 3%2
1
>>> 11.5%0.2
0.09999999999999937
>>> 11.5%0.3
0.10000000000000042


실수 연산의 경우는 결과값이 정확하지 않을 수도 있다.


 연산자 **는 거듭제곱 연산자이다. 다음 연산의 예를 보자.


>>> 2**10
1024
>>> a,c = 3,4+5j
>>> c**a
(-236+115j)
>>> a**c
(57.00434317675227-57.54567628403595j)


위에서 복소수의 거듭제곱 c**a 는  (4+5j)*(4+5j)*(4+5j) 의 결과값을 보여준다. 파이썬에서는 복소수에 대한 산술 연산도 기본적으로 지원하므로 쉽게 수행할 수 있음을 알 수 있다.


---- (이하 생략 가능) --------------------------------------------------------------------------


 그렇다면 a**c는 왜 저런 결과가 나왔을까? 다음과 같이 오일러(Euler)공식을 이용하면 된다.



이 식의 결과와 위 예제의 결과는 동일하다.



Posted by 살레시오
,

 파이썬의 숫자 데이터를 분류하면 다음과 같다.


[표 1] 숫자형의 분류

숫자형

개요

정수(int)

범위에 제한이 없다.

16진수, 8진수, 2진수로도 표현 가능하다.

(파이썬2.x 버전에서는 큰 정수에 l/L 접미사를 붙여야 함.)

실수(float)

소수점 이나 e/E 가 포함된 숫자

복소수(complex)

허수부(j/J) 가 포함된 숫자


 다른 언어들과는 달리 파이썬은 정수에 대해 범위 제한이 없으며 복소수까지 기본 자료형에 포함된다. 복소수는 숫자 뒤에 j/J 를 붙이면 된다. 파이썬쉘에서 다음 예를 하나씩 실행해 보고 결과를 확인해 보자.


>>> a=123
>>> b1=3.14
>>> b2=1e-10
>>> c=10000000000000000000000000000000000 # 정수는 범위 제한이 없다.
>>> d1=1+2j
>>> d2=1j #허수를 표기할 때 1j 와 같이 1을 꼭 붙여야 한다.
>>> d3=-3-1j
>>> e=0x12a #16진수. 0x(제로 엑스) 혹은 0X 로 시작한다.
>>> f=0b1101101 #2진수. 0b(제로 비) 혹은 0B 로 시작한다.
>>> g=0o1234 #8진수. 0o (제로 오) 혹은 0O로 시작한다.


정수는 10진수/16진수/8진수/2진수로 표현할 수 있으며 실수형은 십진수 형식으로만 표현된다. 숫자에 소수점이나 지수를 표시하는 e/E가 있다면 실수이고 그렇지 않다면 정수로 분류된다. 또한 허수부가 포함되어 있다면 복소수형이다.


 재미있는 것은 0j, -0j, +0.0j, -0.0j 도 내부적으로 complex 형으로 간주된다는 것이다. 숫자 상수나 변수의 형을 보려면 내장 함수인 type()을 이용한다.


>>> type(10)
>>> type(-1.2)
>>> a=3+4j; type(a)
>>> type(2+0j)


 정수의 범위에 제한이 없다는 점도 특이한 점이다. 이러한 점에서 파이썬이 매우 큰 숫자를 다뤄야 하는 분야나(예를 들어서 천문학, 경제학) 데이터 분석에서 타언어보다 유리하다는 점을 짐작할 수 있다. (2.x버전에서는 큰 정수를 표시하기 위해서는 정수 뒤에 L/l 접미어를 붙여야 한다. 그러나 3.x버전은 그런 제약이 없다.)


 복소수는 실수부, 허수부, 켤레복소수를 구할 수 있는 속성(attribute)이 있는데 각각 real, imag, conjugate() 이다. 다음을 실습해 보자.


>>> c=11+22j
>>> c.real
>>> c.imag
>>> c.conjugate()


또한 내장 함수인 abs()를 이용하면 복소수의 크기를 구할 수 있다.


>>> abs(c)


 십진수의 이진수 표현을 알고 싶다면 bin()이라는 내장함수를 사용하면 된다. 팔진수는 oct(), 십육진수는 hex()함수를 이용한다.


>>> a=1234
>>> bin(a)
'0b10011010010'
>>> oct(a)
'0o2322'
>>> hex(a)
'0x4d2'


단, 이 함수들은 정수형에 대해서만 동작하며 반환값이 문자열이라는 것에 유의해야 한다.


 만약 일반적인 변수의 값을 확인하고 싶다면 파이썬쉘에서 변수명을 입력하고 엔터를 치면 변수의 값을 보여준다.


>>> a
>>> c, z # 여러 변수를 동시에 출력하고 싶다면 콤마(,)로 구분한다.


 만약 ipython쉘을 사용하고 있다면 현재 정의된 모든 변수값을 보고 싶다면 ‘who ‘ 명령어를 이용하면 된다.




Posted by 살레시오
,

 프로그램은 결국 자료(data)를 처리하는 일을 주로 하게 된다. 여기에서는 파이썬의 내장 자료형의 종류 대해서 알아보자. 가장 중요하고 사용 빈도가 높은 파이썬 자료형은 다음과 같은 것들이 있다.


  • 숫자 : 정수 (int), 실수 (float), 복소수 (complex)로 나뉜다.

  • 문자열 (str)


  • 리스트 (list)

  • 튜플 (tuple)

  • 딕셔너리(dictionary)

  • 집합 (set)


 변수명, 함수명, 클래스명 등으로 쓸 수 있는 식별자(identifier)를 만드는 방법은 다른 언어들과 거의 동일하다. 식별자를 만들 때 보통 사용되는 문자들은 다음과 같다.


  • 영문자 대소문자 (a,b … z A B … Z)

  • 숫자 (0 1 … 9)

  • 언더바(_)


이러한 문자들을 조합하되 숫자로 시작하면 안된다. 그리고 대소문자를 다른 문자로 구별한다. 그리고 python3에서는 유니코드 문자를 식별자로 사용할 수 있다. 즉, 한글로도 변수명을 지을 수 있지만 권장되지는 않는다.



'프로그래밍언어.Lib > 파이썬' 카테고리의 다른 글

파이썬의 산술 연산자  (0) 2015.05.23
파이썬의 숫자형  (0) 2015.05.23
파이썬(python) 소개  (0) 2015.05.23
파이썬의 math,cmath,numpy 모듈  (0) 2015.04.29
no pylab, thanks  (0) 2015.04.29
Posted by 살레시오
,

 파이썬은 인터프리터 언어로서 암스테르담의 귀도 반 로섬(Guido V. Rossum)에 의해서 1990년에 초기 버전이 만들어졌다. (2015년 1월 현재 3.4.x 버전) 파이썬이라는 이름은 본인이 좋아하는 "Monty Python's Flying Circus" 라는 코미디 쇼에서 따왔다고 한다. 파이썬의 사전적인 뜻은 큰 비단뱀인데 대부분의 파이썬 책 표지와 아이콘이 뱀 모양으로 그려져 있는 이유가 여기에 있다.


[그림 1] 파이썬 개발자, 비단뱀 그리고 파이썬 로고


파이썬 프로그램의 가장 큰 특징은 배우기 쉽고 직관적이라는 것이다. 인터프리터 언어이기 때문에 실행 결과를 즉시 확인해 볼 수 있으며 최근에는 실행 속도도 심지어 C/C++ 프로그램과 맞먹을 정도로 성능도 향상되고 있다. 또한 공동 작업과 유지 보수가 매우 쉽고 편하기 때문에 이미 다른 언어로 작성된 많은 프로그램과 모듈들이 파이썬으로 다시 재구성되고 있기도 하다. 국내에서도 그 가치를 인정받아 사용자 층이 더욱 넓어져 가고 있고, 파이썬을 이용한 프로그램을 개발하는 기업체들이 늘어가고 있는 추세이다.


 현재 파이썬은 교육의 목적뿐만 아니라 실용적인 부분에서도 널리 사용되고 있는데 그 대표적인 예는 바로 구글(Google) 이다. 구글에서 만들어진 소프트웨어의 50%이상이 파이썬으로 만들어졌다고 한다. 이 외에도 유명한 것을 몇 가지 들어보면 Dropbox(파일 동기화 서비스), Django(파이썬 웹 프레임워크)등을 들 수 있다. 또한 빅데이터 분석이나 과학 계산 용도로도 활발히 활용되는 등 컴퓨터를 활용한 거의 모든 곳에 사용되고 있다고 해도 과언이 아닐 정도로 인기를 끌고 있다.


[그림 2] 가장 널리 사용되는 프로그래밍 언어들


파이썬의 특징을 정리하면 다음과 같다.


  • 인터프리터(interpreter) 언어이다.(실행 결과를 바로 확인할 수 있다.)

  • 간결하고 쉬운 문법으로 빠르게 학습할 수 있다.

  • 강력한 성능을 가진다.

  • 다양한 분야에 적용할 수 있는 라이브러리가 풍부하다.

  • 개발 속도가 빠르다.

  • 오픈 소스(open source)이며 무료이다.


최근에는 라즈베리파이(raspberry pi)나 비글본 블랙(beaglebone black) 같은 원보드 마이컴이 인기를 끌고 있는데 보통 운영체제로 리눅스를 채용한다. 이러한 시스템에서도 파이썬을 이용하여 전통적인 C/C++/JAVA로 개발하는 것보다 훨씬 더 쉽고 빠르게 응용 프로그램을 제작할 수 있다.

[그림 3] 라즈베리파이와 비글본블랙


 현재 파이썬은 버전이 2.x 대와 3.x 대로 나뉘어 두 가지 버전이 같이 사용되고 있다는 점인데 초보 사용자가 선택하는데 문제가 생긴다. 특이하게도 3.x 버전의 문법이 2.x버전과는 달라서 100% 호환되지 않으므로 같은 언어로 작성한 프로그램인데도 불구하고 2.x 버전에서 잘 작동되는 것이 3.x 버전에서는 작동하지 않거나 반대의 경우도 발생한다.


 본 강좌에서는 3.x 버전의 문법을 기본으로 해서 2.x버전 과의 차이점에 대해서 필요할 때마다 설명하도록 하겠다.


파이썬 강좌 전체 목록 (TOP) >>>


c{pyt},n{py001}


Posted by 살레시오
,