문자열 정의 및 기초연산



- 시퀀스 자료형과 기초연산

 시퀀스 자료형에는 앞에서 공부한 문자열, 리스트, 튜플이 있고, 시퀀스 자료형이 아닌 자료형은 사전이 있습니다. 시퀀스 자료형은 공통적인 연산을 수행하는데 아래와 같은 연산이 있습니다. 앞에서 공부한 내용들이므로, 자세한 설명은 적지 않았습니다.

----------------------------------------------------------------------------------------

1. 인덱싱 
li=[1,2,3,4]
print li[0]
2. 슬라이싱
s='abcd'
print s[0:2]
3. 확장 슬라이싱
s2='abcdefg'
print s2[::] # 전체 출력
print s2[::2] # step이 2이므로, aceg 출력
4. 연결하기
s1='abc'
s2='def'
print s1+s2
5. 반복하기
s1='blue'
print s1*3
6. 멤버십 테스트
t=(1,2,3,4)
pirnt 3 in t
7. 길이정보
- len()함수 이용
s='asdf'
print len(s)
8. for-in문
color=["red","green","blue"]
for x in color:
    print x

----------------------------------------------------------------------------------------


- 문자열 정의

  문자열의 정의는 단일 따옴표('')와 이중따옴표("")를 이용해서 정의하는데, 3개를 동시에 사용할 때에는 자동으로 개행이 됩니다. 제가 좋아하는 노래의 가사를 단일따옴표와 이중따옴표를 이용해 정의해서 출력 해봤습니다.

----------------------------------------------------------------------------------------

# -*- coding: utf-8 -*-


s1=""" 이별밖에 할 수 있는게 없는 우리가 참 슬프지만

돌아선 네 맘을 돌리기엔 이미 늦은걸 알아서

"""

s2=''' 이별밖에 겨우 이것 밖에 할 수 없는 내가 너무 밉지만

함께여서 아픈 우리에겐 남은건 어쩔 수 없는 이별밖에'''

print s1

print s2

----------------------------------------------------------------------------------------

(실행결과)

 이별밖에 할 수 있는게 없는 우리가 참 슬프지만

돌아선 네 맘을 돌리기엔 이미 늦은걸 알아서


 이별밖에 겨우 이것 밖에 할 수 없는 내가 너무 밉지만

함께여서 아픈 우리에겐 남은건 어쩔 수 없는 이별밖에

----------------------------------------------------------------------------------------


- 이스케이프(Escape)문자


  이스케이프 문자는 특수한 문자를 사용하기 위해 사용하는 문자로 아래와 같은 문자들이 있습니다. 자주 사용하는 문자들만 예시를 들었습니다.

----------------------------------------------------------------------------------------

# 1. \ '를 출력하기위한 문자

s1='don\'t warry'

print s1

# 2.\t : 탭 문자

s2='abc\tdef\tghi'

print s2

# 3.\n : 개행

s3='waiting for\nyou'

print s3

----------------------------------------------------------------------------------------
(실행 결과)
don't warry # ' 문자가 출력됨
abc def ghi
waiting for
you
----------------------------------------------------------------------------------------

- 문자열 변경


 앞에서 공부할 때 문자열은 변경이 안된다고 공부했습니다. 그럼 문자열은 어떻게 변경할까요? 문자열의 변경은 문자열 자체를 변경하는게 아니라, 새로운 문자열을 생성해 재 할당 하는 방법을 이용합니다. 아래 코드는 ABDEF문자열을 ABCDEF로 변경하기 위한 코드입니다.
----------------------------------------------------------------------------------------
s='ABDEF'
print 'before s : '+s
s=s[0:2]+'C'+s[2:]
print 'after s  : '+s
----------------------------------------------------------------------------------------
before s : ABDEF
after s  : ABCDEF
----------------------------------------------------------------------------------------

- 유니코드


 다른 언어들과 마찬가지로 파이썬에서도 역시 유니코드를 지원합니다. 사용하려는 문자열 앞에 u라는 문자를 붙여주면 타입이 유니코드가 됩니다. 같은 안녕하세요 라는 문자열을 입력했을 때, 유니코드를 사용하면 한글의 길이도 정확히 출력하는 걸 확인할 수 있습니다.
----------------------------------------------------------------------------------------
h1="안녕하세요"
h2=u'안녕하세요'
print type(h1),len(h1)
print type(h2),len(h2)
----------------------------------------------------------------------------------------
(실행 결과)
<type 'str'> 15
<type 'unicode'> 5
----------------------------------------------------------------------------------------

 마지막으로 보통은 u를 붙여서 사용하지만, uincode()라는 내장 함수를 이용해서 사용할 수도 있습니다.
----------------------------------------------------------------------------------------
# unicode('문자열','인코딩 방식)
h=unicode('보고싶다.','utf-8')
----------------------------------------------------------------------------------------
(실행 결과)
보고싶다. <type 'unicode'>
----------------------------------------------------------------------------------------

출처 한국기술교육대학교 온라인평생교육원 파이썬프로그래밍



제어문



 파이썬에서 들여쓰기를 문법적으로 강제해서 들여쓰기를 의무적으로 하도록 합니다. 들여쓰기를 할때에는 탭과 공백을 섞어서 쓰지 않고, 탭만 이용합니다. 가장 바깥족의 코드는 반드시 1열에 시작해야합니다. 들여쓰기를 올바르게 하지않으면 syntax에러가 발생합니다.

----------------------------------------------------------------------------------------

a=1      # 가능
b=1 # 불가능

----------------------------------------------------------------------------------------


 파이썬에서의 제어문은 if문, for문, while문이 있습니다.

- if문


  if문의 사용 형태는 다음과 같습니다. elif와 else는 생략이 가능합니다. elif는 다른언어에서 else if와 같은 역할로, if가 만족하지않으면 elif 조건식들을 확인하고, if와 elif 전부 만족하지않는다면, else문을 수행합니다.

----------------------------------------------------------------------------------------

if 조건식 1:

statments

(elif 조건식n:) # if문이 만족하지 않을 경우 elif 수행(여러개 가능)

(else:) # if와 elif 모두 만족하지않을 경우 else 수행

----------------------------------------------------------------------------------------

 if문의 사용은 다음과 같습니다.
----------------------------------------------------------------------------------------
a=7
if a<5:
    print "small"
elif 5<a<10:
    print "regular"
else : 
    print "large"

----------------------------------------------------------------------------------------

(실행 결과)

regular

----------------------------------------------------------------------------------------


- for문


  for문은 타겟과 컨테이너 객체를 지정해서 반복을 할 때 사용하는 제어문으로, 아래와 같은 형태로 사용합니다. 컨테이너 객체에서 원소를 꺼내서 타겟에 삽입하는 형태입니다.

----------------------------------------------------------------------------------------

for <타겟> in <컨테이너 객체>:
statements
else:
statements
----------------------------------------------------------------------------------------

 for문의 사용은 다음과 같습니다.
----------------------------------------------------------------------------------------
color=["red",'blue','yellow']
for x in color:
    print len(x),x # 타겟의 글자수와 타겟 출력
----------------------------------------------------------------------------------------
(실행 결과)
3 red
4 blue
6 yellow
----------------------------------------------------------------------------------------

 이번에는 enumerate()라는 내장 함수에 대해 알아보겠습니다. enumerate() 내장 함수는 컨테이너 객체가 지닌 각 요소값 뿐만아니라, 인덱스 값도 함께 반환합니다.
----------------------------------------------------------------------------------------
color=["red",'blue','yellow']
for i, j in enumerate(color): # i=인덱스 저장, j=실제 값 저장
    print i,j
----------------------------------------------------------------------------------------
(실행 결과)
0 red
1 blue
2 yellow
----------------------------------------------------------------------------------------

 for문에서는 break와 continue가 있습니다. break는 현재 수행중인 반복을 중지하는 역할을 수행하고, continue는 continue이후 부분은 수행하지 않고 반복을 수행하도록 합니다. 위에서의 else문은 break 없이 정상적으로 반복이 모두 수행되면 else 블록이 수행됩니다. 사용예는 다음과 같습니다.
----------------------------------------------------------------------------------------
# break
for x in range(10):
    if x>3: # x 가 3보다 커지면 반복 종료
        break
    print x

print 'stop'
----------------------------------------------------------------------------------------
(실행 결과)
0
1
2
3
stop
----------------------------------------------------------------------------------------
# continue
for y in range(10):
    if y<8: # y가 8보다 작을경우 continue 아래 코드는 수행하지 않고 반복문을 수행
        continue
    print y

print "stop"
----------------------------------------------------------------------------------------
(실행 결과)
8
9
stop
----------------------------------------------------------------------------------------

- while문
  
 while문은 for문과 다르게 타겟과 컨테이너 객체를 사용하는게 아니라, 조건이 만족하면 while블록 내의 statements들을 반복수행합니다. 사용 형태는 다음과 같습니다.
----------------------------------------------------------------------------------------
while 조건식:
statements
----------------------------------------------------------------------------------------

 사용은 다음과 같습니다.
----------------------------------------------------------------------------------------
count=1
sum=0
while count<11:
    sum=sum+count # 1부터 10까지 더해주는 식별자 
    count=count+1 
print sum # 1부터 10까지 더한 숫자를 출력
----------------------------------------------------------------------------------------
(실행 결과)
55
----------------------------------------------------------------------------------------

함수

 
 여태 공부하면서 여러가지 내장 함수를 사용해봤습니다. 함수의 장점은 반복적인 코드를 없애줘서 코드를 짧게 만들어줘서 유지보수를 쉽게 할 수 있다는 점입니다. 직접 사용자가 함수를 정의해서 사용할 수도 있습니다. def 키워드를 이용해 함수를 정의할 수 있습니다. 함수는 한개이상의 statment를 가져야하는데, pass 키워드를 사용하면 none객체를 리턴합니다. 함수의 정의와 사용은 아래와 같습니다.
----------------------------------------------------------------------------------------
def add(a,b): # a와 b를 더해주는 add함수 생성
    return a+b
f=add # f가 add를 가리켜서 add함수와 같은 기능을 하게됩니다.
print add(10,5)
print f([1,2,3],[4,5,6]) # 리스트를 더하면 합쳐진 리스트가 반환됩니다.
----------------------------------------------------------------------------------------
(실행 결과)
15
[1, 2, 3, 4, 5, 6]
----------------------------------------------------------------------------------------

 함수를 사용할 때 인자를 적어주면 순서가 뒤바껴도 상관없습니다.
----------------------------------------------------------------------------------------
def minus(a,b): # a와 b를 더해주는 add함수 생성
    return a-b
print minus(b=5,a=10)
----------------------------------------------------------------------------------------
(실행 결과)
5
----------------------------------------------------------------------------------------

 함수는 두개 이상의 값을 동시에 반환 할 수 있습니다. 이 때 반환값은 형은 튜플형입니다.
----------------------------------------------------------------------------------------
def calc(a,b):
    return a+b,a-b,a*b,a/b
print calc(10,5)
----------------------------------------------------------------------------------------
(실행 결과)
(15, 5, 50, 2)
----------------------------------------------------------------------------------------

 마지막으로 재귀적 함수 호출에 대해 알아보겠습니다. 재귀 함수는 함수 몸체에서 자기 자신을 호출하는 함수를 뜻합니다. 반드시 종결 조건과, 종결 조건이 만족할때의 반환값이 있어야합니다. 아래와 같은 형태로 사용합니다.
----------------------------------------------------------------------------------------
def sum(N): # 입력한 수 부터 1까지 더하는 함수
    if(N==1): # 종결 조건
        return 1 # 종결 조건이 만족할 때 반환할 값
    return N+sum(N-1) # 재귀 호출

print sum(10)
----------------------------------------------------------------------------------------

출처 한국기술교육대학교 온라인평생교육원 파이썬프로그래밍




각종 연산자


 파이썬에서 연산자는 산술 연산자, 관계 연산자, 논리 연산자가 있습니다.


- 산술 연산자

 

 산술 연산자는 사칙 연산자(+,-,*,/)와 나머지(%)연산자, 몫(//) 연산자가 있습니다. 우선순위는 괄호가 가장 높고, 단항 연산자(부호 +,-), 지수 연산자(**), 곱·나누기·나머지·몫 연산자, 덧셈·뺄셈(+,-) 연산자 순입니다. 지수 연산자를 제외한 연산자들은 왼쪽에서 오른쪽으로 연산을 수행합니다. 각 연산자의 사용은 다음과 같습니다.

----------------------------------------------------------------------------------------

a=+5 # 단항 연산자

b=2**3**2 # 지수 연산자

c=3*2+4 # 곱셈 연산자와 덧셈 뺄셈 연산자

d=7%3 # 나머지 연산자

e=7//3 # 몫 연산자


print 'a=+5 :',a

print 'b=2**3**2 :',b

print 'c=3*2+4 : ',c

print 'd=7%3 :',d

print 'e=7//3 :',e

----------------------------------------------------------------------------------------

(실행 결과)

a=+5 : 5

b=2**3**2 : 512 # 오른쪽부터 연산하기때문에 3의 2승인 9가 먼저 계산되고 2의 9승인 512가 출력됩니다.

c=3*2+4 :  10 # 곱셈연산을 먼저 수행한 후 덧셈을 수행합니다.

d=7%3 : 1 # 7나누기3의 나머지인 1을 출력합니다.

e=7//3 : 2 # 7나누기3의 몫인 2가 출력됩니다.

----------------------------------------------------------------------------------------

 이번에는 특별한 경우를 살펴보겠습니다. 아래 코드의 내용은 같아보이지만 실제로는 다른 값이 나옵니다. 그이유를 살펴보겠습니다.
----------------------------------------------------------------------------------------
print -7/3   # 1번
print -(7/3) # 2번
----------------------------------------------------------------------------------------

(실행 결과)

-3
-2
----------------------------------------------------------------------------------------
 위에서 괄호가 가장 우선순위가 된다고 했었습니다. 1번의 경우는 -2.3333의 수가 나오는데 나눗셈 연산은 값보다 작은 정수 중에서 가장 큰수를 반환하기때문에 2.3333보다 작은정수인 -3이 출력되고, 2번의 경우는 7/3은 2.3333이되서 값보다 작은 정수중에서 가장 큰수인 2가 반환되서 -2가 출력되게됩니다.

 또한, 정수/정수는 정수 실수/실수는 실수가 출력됩니다. C언어에서 형넓히기 처럼, 정수/실수 또는 실수/정수는 float타입을 가지게됩니다.
----------------------------------------------------------------------------------------
a2=5/2
b2=5/2.0
c2=5.0/2
print "a2 :",a2
print "b2 :",b2
print "c2 :",c2
print type(a2); print type(b2); print type(c2);
----------------------------------------------------------------------------------------

(실행 결과)

a2 : 2   # 5/2의 값은 2.5지만 정수형이므로 2가 출력됩니다.
b2 : 2.5
c2 : 2.5
<type 'int'>
<type 'float'>
<type 'float'>
----------------------------------------------------------------------------------------

 산술연산자는 우선 순위에 따라서 연산이 수행되지만, 코드의 가독성을 위해 괄호를 사용하는게 좋다고합니다.


- 관계 연산자


 관계 연산자는 객체가 지닌 값의 크기를 비교하여, True 혹은 False를 반환합니다. 연산자의 종류는 값이 같은 지 확인하는 ==, 값이 다른지 확인하는 !=, 대소 연산자(>,<,>=,<=)가 있습니다. 사용형태는 다음과 같습니다.

----------------------------------------------------------------------------------------

a=5

b=10


print 'a==b :',a==b

print 'a!=b :',a!=b

print 'a>b  :',a>b

print 'a<=b :',a<=b

----------------------------------------------------------------------------------------

(실행 결과)

a==b : False

a!=b : True

a>b  : False

a<=b : True

----------------------------------------------------------------------------------------

 한 가지 특이한 점은 파이썬 에서는 관계연산자를 동시에 사용할 수 있습니다. 뒤에나오는 논리연산자인 and 연산자를 사용하지 않고, 동시에 사용이 가능합니다.

----------------------------------------------------------------------------------------

print "0<a and a<b :",0<a and a<b

print "0<a<b :",0<a<b

----------------------------------------------------------------------------------------

(실행 결과)

0<a and a<b : True
0<a<b : True

----------------------------------------------------------------------------------------


 상수 자료형 말고 문자나 리스트, 튜플, 사전 같은 자료형의 비교는 어떤 기준으로 할까요? == 연산자는 동일한 값을 가져야 True가 반환되고, 대소관계 에서는 "사전순서"로 연산을 수행합니다. "사전순서"는 흔히 알고있는 사전을 생각하시면 편합니다.

----------------------------------------------------------------------------------------

s="abcd"

s2="abd"


# 리스트와 튜플은 앞에서부터 값 비교


l=[1,2,3,5]

l2=[1,2,3,6]


t=(1,5,7)

t2=(2,3,5)


d={'f':'F','g':'G'}

d2={'a':'A','d':'D'}


print "s2>s :",s2>s

print "l2>l :",l2>l

print "t2>t :",t2>t

print "d2>d :",d2>d

----------------------------------------------------------------------------------------

(실행 결과)

s2>s : True # 사전에 abcd보다 abd가 뒤에나오기때문에 s2가 더큼

l2>l : True # 사전에 1,2,3,5보다 1,2,3,6이 뒤에 오기때문에 l2가 더큼

t2>t : True # 1보다 2가 크기때문에 t2가 더 큼

d2>d : False # f보다 a가 앞에나오기때문에 False

----------------------------------------------------------------------------------------

 자료형이 다른 두 값을 비교할때는 어떨까요? 숫자<사전<리스트<문자열<튜플의 관계를 가집니다. 관계에 따라서 True/False가 결정됩니다.

----------------------------------------------------------------------------------------

print 'a>b :',a>b
print 'd>c :',d>c

----------------------------------------------------------------------------------------

(실행 결과)
a>b : False
d>c : True

----------------------------------------------------------------------------------------

 추가적으로 sort함수에대해서 간단하게 살펴보겠습니다. sort함수는 정렬을 해주는 함수인데, 위의 관계와 사전순서에 따라서 정렬을 해줍니다. 다음과 같이 리스트 l2가 여러 자료형을 인덱스로 가지고있습니다. sort함수를 사용하면 정렬을 해줍니다.

----------------------------------------------------------------------------------------

l2=['abc',3,(1,2,3),[4,5,6],'zzzz',{1:2}]

print 'before :',l2

l2.sort()

print 'after  :',l2

----------------------------------------------------------------------------------------

(실행 결과)

before : ['abc', 3, (1, 2, 3), [4, 5, 6], 'zzzz', {1: 2}]

after    : [3, {1: 2}, [4, 5, 6], 'abc', 'zzzz', (1, 2, 3)]

----------------------------------------------------------------------------------------


- 논리 연산자


 논리 연산자는 부울 연산자라고도 하며, 관계 연산자 처럼 True, False를 피 연산자 값으로 가지며, 논리 연산자 자체가 값을 반환 하지는 않습니다. 논리 연산으로 최종적으로 평가 되어진 값이 반환됩니다. 논리 연산자의 종류는 and, or, not 세가지가 있습니다. and는 둘다 참일경우 True, or는 둘중 하나라도 참일 경우 True, not은 True와 False를 반전시켜 줍니다. 사용 형태는 다음과 같습니다.

----------------------------------------------------------------------------------------

a=11
b=10
c=15

print a<b and a<c # 
print a<b or a<c
print a<b; print not a<b
----------------------------------------------------------------------------------------
(실행 결과)
False
True
False
True
----------------------------------------------------------------------------------------
 추가적으로, and 연산의 경우 앞의 연산이 거짓이면 뒤의 연산을 수행하지 않으며, or연산은 앞의 연산이 True일경우, 뒤의 연산을 수행하지 않습니다.

 True와 False는 사칙연산자와 만날경우 True는 1 False는 0의 값을 가집니다.
----------------------------------------------------------------------------------------
a=11
b=10
c=15

print (a<c)+5
print (a<b)+3
----------------------------------------------------------------------------------------
(실행 결과)
6
3
----------------------------------------------------------------------------------------

 마지막으로 bool() 내장 함수에 대해 알아보겠습니다. bool()함수는 수치값을 진리값으로 변환해줍니다. 정수 0, 실수0.0, 비어있는 문자열 '',""과 None 객체는 False가 됩니다.
----------------------------------------------------------------------------------------
print bool(0)
print bool(0.0)
print bool('')
print bool(None)
# 리스트, 튜플, 사전 역시 비어있는 자료형은 거짓이 됩니다.
print bool([])
print bool(())
print bool({})
----------------------------------------------------------------------------------------
(실행 결과)
False
False
False
False
False
False
False
----------------------------------------------------------------------------------------

 마지막으로, 논리 연산자를 이용해 연산을 해보겠습니다.
----------------------------------------------------------------------------------------
print [] or 1
print () and 1
print 1 and []
print ([]) or 1 # [[]] : 공리스트를 가지는 리스트는 참

----------------------------------------------------------------------------------------

(실행 결과)
1 # 앞은 거짓이지만 뒤의 정수가 참이므로 1 출력
() # 앞이 공튜플(거짓)이므로 뒤를 연산하지않고 거짓인 공튜플 출력
[] # 앞의 정수가 참이고, 뒤의 리스트가 공리스트(거짓)이므로, 거짓인 [] 출력
1 # 앞의 리스트가 참이고, 뒤의 1도 참이므로 1출력

----------------------------------------------------------------------------------------


출처 한국기술교육대학교 온라인평생교육원 파이썬프로그래밍




파이썬 개발환경 구축(설치)


 파이썬을 개발하는 여러 환경중에 제가 구축한 환경은 두 가지가 있습니다. Python 전용 통합개발환경(IDE) Enthought Canopy를 설치하는방법과 이클립스에서 설치하는 방법입니다. Canopy를 설치하면 환경설정 관련된 것들이 자동적으로 설정되있어서 그냥 Pyton을 설치하는 것보다 간편하다고 합니다. 하지만, IDE가 부족한 면이있어 이클립스도 같이 활용하는것이 좋다고 합니다.


Enthought Canopy 설치


 첫번째는 Enthought Canopy 설치 방법입니다. Enthought Canopy는 별도의 파이썬 설치 없이 아래 통합개발환경 링크에서 설치를 하면 자동으로 파이썬이 설치됩니다

https://www.enthought.com/products/canopy/


사이트에 들어가서 중앙하단에 보이는 Get Canopy 초록색버튼을 클릭한 후에 free버전을 다운로드 합니다.


기본적으로 설치를 마치고 나면 다음과같은 두 아이콘이 생성됩니다.  


 윈도우 커맨드 창에서 정상적으로 설치가 되었는지 확인을 해보았습니다. 기본적으로 python이라고 입력하면 실행이되며, 대화식으로 print 1+2라는 구문을 입력했을 때 3이 실행되는걸 확인 할 수 있습니다. 종료하는 명령은 exit가 아닌 exit()나 Ctrl+Z를 누르게 되면 종료가 됐습니다. 다음은 ipython을 실행했을때 python과 비슷하지만 색 효과가 있어 좀더 깔끔한 대화환경을 제공할 것 같습니다. 아래 그림은 python과 ipython의 비교 입니다.




- 이클립스에서 파이썬 설치


 두번째 방법은 이클립스에서 설치하는 방법입니다. 저는 이클립스를 기존에 사용해서 바로 설치했는데 없으신 분들은 이클립스를 설치하신 이후에 설치하셔야 합니다.

 설치과정은 아래와 같습니다. 이클립스를 써보신분들은 아실수도 있는 방법입니다. 가장먼저, Help탭에서 Eclipse Marketplace를 클릭합니다.


Eclipse Marketplace 창이뜨면 왼쪽 노란색 부분에 python이라고 입력하고 오른쪽 노란색 Go를 눌러주면 아래와 같은 창이뜨는데 빨간색 부분에있는 PyDev-Python IDE for Eclipse 를 Install 버튼을 눌러 설치해주시면됩니다. 


아래 그림과 같이 기본적으로 체크되어있는대로 설치하시면 됩니다.


설치 도중에 이런 창이뜨는데 체크를 꼭 해주시고 ok 버튼을 눌러야합니다.


아래 두번째 창 역시 Yes를 눌러줘야합니다. 저같은 경우, 재시작이 안되서 이클립스 File탭에서 직접 재시작을 해줬습니다.


설치가 끝나게되면 아래 그림과같이 이클립스 우측 상단에있는 빨간색 부분 아이콘 을 눌러서 PyDev로 바꿔줍니다. 아래 그림처럼 PyDev가 없다면 설치가 정상적으로 이루어지지 않은 것입니다.


PyDev로 바꿔주고 나면 시스템 내 파이썬 인터프리터 검색을 설정해줘야 합니다. 이클립스 Window탭에서 Preferences를 클릭합니다. 


 Preferences창에서 PyDev-Interpreters-Python Interpreter에 들어가서 Quick Auto-Config 버튼을 눌러줍니다. 눌러주면 아래 그림과같이 자동으로 라이브러리 들이 추가가 됩니다.


설치가 끝난 후 예제소스를 실행해보기 위해 프로젝트를 만들고 그안에 디렉토리를 만든후 test.py라는 소스파일을 추가합니다.


간단한 예제 소스를 작성해보았습니다. 소스코드를 작성한뒤 초록색버튼으로 run을 하게되면 실행이되고 아래 콘솔창에 결과가 나옵니다.

-----------------------------------------------------------

# -*- coding: utf-8 -*-

print 1+2

print "안녕하세요"

print 9/5

print 12-32

print 9.0/5.0

print 9/5.0

print 9/5 #정수/정수 = 정수로 출력

-----------------------------------------------------------

# -*- coding: utf-8 -*- 를위에쓰는 이유는 한글을 사용하기위해서 라고합니다. 다른 언어들과는 다르게 print 함수 하나만으로 정수,실수 계산 및 문자열을 출력했습니다. Python에서 주석은 #입니다.


아래는 콘솔창의 결과입니다. 

-----------------------------------------------------------

3

안녕하세요

1

-20

1.8

1.8

1

-----------------------------------------------------------

정수/실수를 했을때는 실수로 계산이되지만, 정수/정수는 1.8임에도 불구하고 정수인 1로 결과가 나왔습니다.


다음 소스는 문자열을 합치는 소스입니다. a와 b에 각각 문자열을 넣고 합칠때에는 "+"를 사용해 합쳤습니다.

-----------------------------------------------------------

a='park'

b='hyeung'

print a+b

-----------------------------------------------------------


아래 소스는 파이썬 버전을 알아보는 소스입니다. sys라는 모듈을 활용해 버전을 확인해 보았습니다. 

-----------------------------------------------------------

import sys

print sys.version

print

print sys.version_info

-----------------------------------------------------------


아래와 같이 2.7.11버전이 설치되있는 걸 확인할 수 있습니다. print함수를 그냥 사용했을때는 아래와같이 한줄 공백이 출력됩니다.

-----------------------------------------------------------

2.7.11 | 64-bit | (default, Jun 11 2016, 11:33:47) [MSC v.1500 64 bit (AMD64)]


sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)

-----------------------------------------------------------


마지막으로 cal.py라는 소스를 작성해 저장하고 윈도우 커맨드창에서 실행을 해봤습니다. 먼저 아래 소스는 달력을 출력하는 소스입니다. 

-----------------------------------------------------------

import calendar

calendar.prmonth(2016, 12)

-----------------------------------------------------------

실행을 했을때, 콘솔창에 다음과같이 2016년 12월 달력이 출력됐습니다.


저는 D:\PythonProject\Python\01 이경로에 소스파일을 작성해서 커맨드 창에서 경로로 이동을 한뒤에 실행을 했습니다. ipython cal.py로 실행을 하게되면 커맨드 창에서도 똑같이 달력이 출력되는걸 확인할 수 있습니다.



* 출처 : 한국기술교육대학교 온라인평생교육원 파이썬프로그래밍



스크립트 언어와 파이썬


 요즘 뜨고있는 파이썬 언어를 한국기술교육대학교 온라인평생교육원 강의를 들으면서 공부를 시작하려고 합니다. 

강의 내용과 제 생각을 더해 글을 작성할 계획입니다.


- 스크립트 언어

- Scripts : 연극 대사 등이 적혀있는 스크립트의 유래 

- 스크립트 = 소스코드

- 인터프리터 방식 : 한줄단위로 해석, 수행


 1-1. 스크립트 언어의 절차


- 바이트 코드 : 어셈블리어에 가까운 언어로 기계어와는 다름


1-2. 컴파일 언어와의 비교

- 컴파일 언어는 자원을 많이 요구하고 시간이 많이 소요됨

- 수정이 빈번한 경우 컴파일 언어는 전체를 컴파일 해야하므로 인터프리터 방식이 유리


1-3. 스크립트언어의 장·단점

- 장점

소스 코드 수정이 빠르고 간단하게 이루어짐 → 개발 시간 단축

- 단점

중간코드를 만드는 것은 간단하지만 실제로 실행하는 시간은 오래걸림

실행 시간이 오래걸림


1-4. 대표적인 스크립트 언어

- JavaScript

- ActionScript : 주로 플래시 개발을 위해 사용되는 언어

- Perl 

- PHP

- Python 

- Lua, Ruby : 최근에 개발된 스크립트 언어


- 파이썬 언어의 유래 및 특징


2-1. 파이썬의 유래

- Phyton의 사전적 의미 : 독이없는 뱀, 그리스 신화에 나오는 악마

- 네덜란드의 Guido Van Rossum이 만들었으며, 영국의 쇼 프로그램의 이름에서 따옴

- ABC라는 언어에서 출발함

Guido Van Rossum


2-2. 파이썬을 배워야 하는 이유

- 생산성이 높기때문


2-3. 파이썬의 특징

- 간단하고 쉬운 문법

- 고수준의 내장 객체 자료형 제공

- 플랫폼 독립적 언어

- 메모리 자동관리 → 추가 코딩이 필요하지않음

- 쉬운 유지보수

- 많은 수의 라이브러리 제공

- 짧아지는 코드

- 높은 확장성 (모듈을 임포트하거나 자신의 코드를 모듈로만들어서 제공할 수 있음)

- 들여쓰기를 철저하게 지키도록 설계됨(문법적으로 강제로 지키게 설계됨) → 가독성을 높여주고 재사용하기 쉽게 만들어줌


* 출처 : 한국기술교육대학교 온라인평생교육원 파이썬프로그래밍



+ Recent posts