2010. 7. 31. 17:35

1. 문자열

  • 문자열은 문자들(텍스트)를 표현하기 위한 자료형이다.
  • 단일 인용부호('') 혹인 이중인용부호("") 안에 묶여진 문자들의 모임.

>>> print 'Hello World!'

Hello World!

>>> print "Hello World!"

Hello World!

  • 인덱싱(indexing)으로 각각의 문자를 취할 수 있다.

>>> s = "Hello World!"

>>> s[-2]

'd'

  • 슬라이싱(slicing)으로 부분 문자열을 취할 수 있다.

>>> s[1:3]

'el'

>>> s[0:5]

'Hello'

  • 슬라이싱의 시작 위치가 생략되면 '처음부터', 마지막 위치가 생략되면 '끝까지'의 의미

>>> s = 'Hello'

>>> s[1:]

'ello'

>>> s[:3]

'Hel'

  • 슬라이싱은 세가지 값을 갖을 수 있다.[start:stop:step] (확장슬라이스(extended slice))
  • 파이썬 2.3부터는 내장 시퀀스 자료형에 몇 단계를 건너뛸까를 정하는 step이 지원.
  • 시퀀스 자료형인 문자열, 리스트, 튜플에 모두 적용.

>>> s = 'abcd'

>>> s[::2] # 2칸 단위로

'ac'

>>> s[::-1] # 거꾸로

'dcba'

  • 연결(+)과 반복(*)의 연산도 적용.

>>> 'Hello' + ' ' + 'World'

'Hello World'

>>> 'Hello' * 3

'HelloHelloHello'

>>> '-' * 60

'------------------------------------------------------------'

 

  • 문자열은 값이 변경되지 않는다.

>>> s = 'Hello World'

>>> s[0] = 'h'

Traceback (most recent call last):

File "<pyshell#16>", line 1, in <module>

s[0] = 'h'

TypeError: 'str' object does not support item assignment

  • 만일 문자열 변경을 원하면 슬라이싱과 연결하기를 이용.

>>> s = 'h' + s[1:]

>>> s

'hello World'

 

2. 리스트

  • []를 사용하는 리스트는 임의의 객체를 저장하는 집합적 자료형.
  • 각 자료는 순서를 가지고 있고, 순서에 의해서 접근.

>>> L = [1,2,3] # 세개의 자료를 갖는 리스트

>>> len (L) # 데이터 개수

3

>>> L[1] # 두번째 자료. 옵셋은 0부터 시작함.

2

>>> L[-1] # 마지막 자료.

3

>>> L[1:3] # 슬라이싱

[2, 3]

>>> L * 3

[1, 2, 3, 1, 2, 3, 1, 2, 3]

>>> L = range(10)

>>> L

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> L[::2] # 확장 슬라이스

[0, 2, 4, 6, 8]

>>> L[::-1] # 확장 슬라이스

[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> L.append(4) # 리스트 마지막에 자료 추가

>>> L

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 4]

>>> del L[0] # 리스트 자료 삭제.

>>> L

[1, 2, 3, 4, 5, 6, 7, 8, 9, 4]

>>> L.reverse() # 리스트 순서를 거꾸로 바꾼다.

>>> L

[4, 9, 8, 7, 6, 5, 4, 3, 2, 1]

>>> L.sort() # 리스트를 오름 차순 정렬.

>>> L

[1, 2, 3, 4, 4, 5, 6, 7, 8, 9]

 

3. 튜플

  • ()를 사용하는 튜플도 문자열과 리스트와 유사한 특성을 가는다.

>>> t = (1,2,3)

>>> len(t)

3

>>> t[0]

1

>>> t[-1]

3

>>> t[0:2]

(1, 2)

>>> t[::2]

(1, 3)

>>> t + t + t

(1, 2, 3, 1, 2, 3, 1, 2, 3)

>>> t * 3

(1, 2, 3, 1, 2, 3, 1, 2, 3)

  • 튜플과 리스트의 차이 – 튜플은 값의 변경(X), 리스트는 값의 변경(O)
  • 또한 리스트는 다양한 메쏘드를 갖고, 튜플은 그렇지 않다.

>>> t = (1,2,3)

>>> t[0] = 100

Traceback (most recent call last):

File "<pyshell#89>", line 1, in <module>

t[0] = 100

TypeError: 'tuple' object does not support item assignment

 

>>> L = [1,2,3]

>>> L[1] = 200

>>> L

[1, 200, 3]

 

4. 사전

  • 사전은 옵셋이 아닌 키를 사용하여 값을 얻는 자료 구조.
  • 사전에 x라는 키(key)를 주면 값 y를 돌려준다.
  • 사전은 초기화할 때 {}를 사용. - 초기값은 키:값의 형태로 준다.

>>> d = {'one':'hana', 'two':'dul', 'three':'set'}

>>> d

{'three': 'set', 'two': 'dul', 'one': 'hana'}

>>> d['one']

'hana'

>>> d['four'] = 'net'

>>> d

{'four': 'net', 'three': 'set', 'two': 'dul', 'one': 'hana'}

>>> d['one'] = 1

>>> d

{'four': 'net', 'three': 'set', 'two': 'dul', 'one': 1}

  • 사전은 순서에 따라 요소들을 저장하지 않는다. (키에 의해서 값을 추출)
  • 사전을 -> 리스트나 튜플로 변환하는 것이 가능

>>> d = {'one':1, 'two':'dul', 'three':'set', 'four':'net'}

>>> d.keys() # 키만 리스트로 출력.

['four', 'three', 'two', 'one']

>>> d.values() # 값만 리스트로 추출.

['net', 'set', 'dul', 1]

>>> d.items() # 키와 값의 튜플을 리스트로 변환.

[('four', 'net'), ('three', 'set'), ('two', 'dul'), ('one', 1)]

 

'Programming > Python' 카테고리의 다른 글

◎ 자료형 확인과 기타의 자료형  (0) 2010.07.31
◎ 내장 자료형의 분류  (0) 2010.07.31
◎ 콘솔 입 .출력  (0) 2010.07.30
◎ 문자열로 된 파이썬 코드 실행하기  (0) 2010.07.30
◎ 파이썬 기초문  (0) 2010.07.30
Posted by devanix
2010. 7. 30. 06:14
  • 콘솔 입력
    • 문자열 입력 (raw_input)
    • 정수나 실수 입력 (input)

>>> k = int(raw_input('int : '))

int : 89

>>> k

89

 

>>> i = input('int : ')

int : 45

>>> i

45

>>> k = input('expr:')

expr: 30+50

>>> k

80

 

>>> k = input('expr:')

expr:k+1

>>>k

81

 

 

  • 콘솔 출력
    • print
      • 화면으로 자료를 출력.(가장 보편적으로 사용)
      • 콤마(,)로 구분, 출력시 각 값들 사이에 공백 한 개각 추가.

>>> print 4+5, 4-2

9 2

  • 세미콜론(;)으로 분리된 문은 순차적으로 입력된 문들로 처리.

>>> print 1; print 2

1

2

  • 기본적으로 print문은 마지막에 줄바꾸기를 하지만, print 끝에 콤마(,)를 사용하면 줄바꾸기를 하지 않는다.

>>> print 1,; print 2

1 2

  • 일반 자료형들도 ''식을 이용하여 문자열로 변환한 후 출력.

>>> print 12 + 'spam' # 숫자와 문자열간에 + 연산은 없다.

Traceback (innermost last):

File "<pyshell#118>", line 1, in ?

print 12 + 'spam'

TypeError: number coercion failed

>>> print '12' + 'spam' # 숫자 12를 ''로 문자열로 변환한 후 공백업이 출력.

12spam

 

  • pprint 모듈 이용하기.
    • print문이 복잡한 자료를 출력할 때 적합하지 않다면 pprint를 사용.
    • pprint를 사용했을 경우 출력.

>>> import pprint # pprint를 사용하기 위해서 먼저 import 해야 한다.

>>> complicated = [ 'spam', (1, 2, 3), ('unix', 'linux', ('w', 'i', 'n', 'd', 'o', 'w'))]

>>> complicated = complicated * 3

 

>> pprint.pprint(complicated)

['spam',

(1, 2, 3)

('unix', 'linux', ('w', 'i', 'n', 'd', 'o', 'w')),

'spam',

(1, 2, 3)

('unix', 'linux', ('w', 'i', 'n', 'd', 'o', 'w')),

'spam',

(1, 2, 3)

('unix', 'linux', ('w', 'i', 'n', 'd', 'o', 'w'))]

  • print를 사용했을 경우 출력.

>>> print complicated

['spam', (1, 2, 3), ('unix', 'linux', ('w', 'i', 'n', 'd', 'o', 'w')), 'spam', (1, 2, 3), ('unix', 'linux', ('w', 'i', 'n', 'd', 'o', 'w')), 'spam', (1, 2, 3), ('unix', 'linux', ('w', 'i', 'n', 'd', 'o', 'w'))]

 

  • 대화적 출력 후크(Interactive Display Hook) (2.1 이상) *
    • 인터프리터를 대화적으로 사용할 때 출력은 기복적으로 pepr() 내장함수 사용.
    • sys.displayhook을 설정하면 pepr() 대신에 다른 함수를 기본출력으로 사용.

>>> import sys, pprint

>>> sys.displayhook = pprint.pprint

>>> complicated # 직접

['spam',

(1, 2, 3)

('unix', 'linux', ('w', 'i', 'n', 'd', 'o', 'w')),

'spam',

(1, 2, 3)

('unix', 'linux', ('w', 'i', 'n', 'd', 'o', 'w')),

'spam',

(1, 2, 3)

('unix', 'linux', ('w', 'i', 'n', 'd', 'o', 'w'))]

 

Posted by devanix
2010. 7. 30. 05:08
  • eval – 문자열로 된 파이썬 식(expression)
    • eval (expression[, globals[, locals]])

>>> a = 1

>>> a = eval('a + 4')

>>> a

5

  • exec – 문자열로 된 문(statement)
    • exec code [ in globals [, locals]]

>>> a = 5

>>> exec 'a = a + 4'

>>> a

9

※ global – 전역 영역 사전, local은 지역 영역 사전. (이들 인수는 선택적)

  • compile(*)
    • exec나 eval은 문자열로 입력된 코드를 분석해서 파이썬 컴파일 코드로 변환하기 때문에,

      이러한 코드를 반복 수행하게 되면 변환에 필요한 시간은 크게 늘어난다.

    • 효율적인 수행 방법은 문자열을 파이썬 코드로 한번 변환해 둔 후에, 코드를 활용.
    • compile (string, filename, kind)
    • string – 코드 문자열, filename – 코드 문자열이 저장된 파일명, kind – 코드 종류 형식

>>> code = compile ('a + 1', '<string>', 'eval')

>>> a = 1

>>> for k in range(10):

a = eval(code)

>>> a

11

 

'Programming > Python' 카테고리의 다른 글

◎ 자료형의 종류(문자열,리스트,튜플,사전)  (0) 2010.07.31
◎ 콘솔 입 .출력  (0) 2010.07.30
◎ 파이썬 기초문  (0) 2010.07.30
◎ 변수명 및 예약어  (0) 2010.07.30
◎ 파이썬 설치  (0) 2010.07.30
Posted by devanix
2010. 7. 30. 04:58
  • 주석문(comment)
    • >>> # 주석(comment)
    • >>> import sys # 주석(comment)
  • 연속 라인
    • 줄바꾸기 앞의 \는 다음 라인을 현재 라인과 연결시켜 주는 역할.
    • 예) >>> if (a == 1) and \
  • 치환문(assignment)
    • (=) 문은 우변의 객체 혹은 식을 좌변의 이름에 할당.
    • >>> a = (b = c + d) 이와 같은 C같은 형식은 허용 되지 않음
    • 왜냐하면 b = c+d는 식(expression)이 아니라 문(statement)이기 때문.
    • 자료형 확인은 (type 함수)를 사용
  • 확장 치환문(2.0 이상)
    • +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, **=
  • 이름과 객체
    • 변수의 이름과 값 객체가 분리.
    • a = 1이란 문에서 숫자 1이 변수 a에 저장되는 것이 아니라,
    • a를 이름, 숫자 1을 객체라고 하며, 두 개념은 분리되어 있다.

    [이름과 객체의 분리 a = 1]

  • 객체의 치환

    • X객체에 대한 참조만 Y와 Z에 삽입.
    • 즉, X의 값 하나를 바꿧을 때 Y와 Z에 영향을 미치면 이것은 공유객체,

      그렇지 않으면 분리된 객체임을 알수 있다.

Posted by devanix
2010. 7. 30. 04:54
  • 변수명 만드는 법
    • 첫 문자가 언더스코아(_), 영문자
    • 두 번째 문자는 영문자, 숫자, 언더스코아(_)
    • 정규식 표현([a-zA-Z_][a-zA-Z0-9_]*)
  • 예약어

and

del

for

is

raise

assert

elif

from

lambada

return

break

else

global

not

try

class

except

if

or

while

continue

exec

import

pass

yield(2.2에 추가)

def

finally

in

print

 
  • 프로그램으로 파이썬 예약어(keywork)를 아는 방법

  • 변수명 만들 때 조심할
    • 내장 함수 이름이나 모듈 이름은 피하는 것이 좋다.

Posted by devanix
2010. 7. 30. 04:48
[파이썬 설치]

 Windows
  • 공식 홈 (http://www.python.org) 다운로드.
  • 설치 디렉토리를 묻는 설치 초기화면.(기본값으로 설치).

  • 설치 구성 요소를 선택.(별 무리 없으면 모두 선택).

  • 설치 완료.

  • 파이썬 설치 요소들에 대한 간략한 설명
    • IDLE(Python GUI) - 파이썬 표준 GUI 대화식 인터프리터.
    • Module Docks – 원하는 모듈 검색 도구(파이썬 2.1 이상 지원)
    • Python (Command Line) – 도스창에서 수행되는 파이썬 대화식 인터프리터.
    • Python Manuals – HTML 파일 형식의 파이썬 온라인 문서 모음.


 Mac OS X

맥 OS X나 리눅스 계열에서는 대부분 Default로 설치 되어 있다.

다음과 같이 버전 확인을 하여 설치 유무를 확인 해 보자.

Devanix ~ $  python --version

Python 2.7.10


Posted by devanix
2010. 5. 8. 23:17
1. 설정및 구문강조
(사용자 파일은 Editplus 홈페이지
http://www.editplus.com/kr 에 가시면 받을수 있습니다.)


*함수패턴 : ((def)|(class)) [a-zA-Z_].*:$
*함수패턴 설명 -> 파이썬 소스에서 함수와 클래스를 검색해서 "함수목록(ctrl + F11)"창 에 보여줍니다.


2. 문서 템플릿(template.py 파일은 내용없는 빈 파일로 하나 만들어 주세요.)
메뉴 제목 : Python
파일 경로 : C:\Program Files\EditPlus 2\template.py


3. 사용자 도구
메뉴제목 : Run
명령 : C:\Python23\python.exe
인수 : $(FileName)
디렉토리 : $(FileDir)

[v] 출력 내용 캡쳐
[v] 열려진 파일 저장

[출력 패턴...]
정규식
File "(.+)", line ([0-9]+)

정규식 태크
파일이름 : 태그로 표시된 식 1
줄 : 태그로 표시된 식 2
칸 : 없음

출력패턴 설명 -> 프로그램을 작성하고 실행(ctrl+1)했는데 애러가 발생할경우 "출력 창"에 File "filename.py", line 58
이런식으로 몇번줄에서 애러가 발생했다고 나오져, 이때 위의 문장에 더블클릭 함으로써 애러가 발생한 파일의 라인 번호로 쉽게 찾아가실수 있습니다.(태그 점프라고 하죠)

'Programming > Python' 카테고리의 다른 글

◎ 콘솔 입 .출력  (0) 2010.07.30
◎ 문자열로 된 파이썬 코드 실행하기  (0) 2010.07.30
◎ 파이썬 기초문  (0) 2010.07.30
◎ 변수명 및 예약어  (0) 2010.07.30
◎ 파이썬 설치  (0) 2010.07.30
Posted by devanix
2010. 5. 5. 17:03


'Programming > C' 카테고리의 다른 글

The GNU C Library Reference Manual  (0) 2011.09.08
The C Library Reference Guide  (0) 2011.09.08
비트 제어 - 설정, 클리어, 반전, 검사, 추출  (0) 2011.07.29
다시 체계적으로 배우는 C언어 포인터  (0) 2011.07.07
매크로  (0) 2010.05.05
Posted by devanix