'Programming/Python'에 해당되는 글 17건
- 2010.07.31 ◎ 자료형 확인과 기타의 자료형
- 2010.07.31 ◎ 내장 자료형의 분류
- 2010.07.31 ◎ 자료형의 종류(문자열,리스트,튜플,사전)
- 2010.07.30 ◎ 콘솔 입 .출력
- 2010.07.30 ◎ 문자열로 된 파이썬 코드 실행하기
- 2010.07.30 ◎ 파이썬 기초문
- 2010.07.30 ◎ 변수명 및 예약어
- 2010.07.30 ◎ 파이썬 설치
- 파이썬의 객체 자료형
분야 | 설명 |
NoneType | None 객체 자료형 |
TypeType | type 객체의 자료형(type()으로 리턴되는 자료형) |
BooleanType | 부울 자료형(파이썬 2.3이상) |
IntType | 정수형(예:123) |
LongType | 롱형(예:123L) |
FloatType | 실수(부동소수점)형 (예:12.34) |
ComplexType | 복소수형(예: 1.0j) |
StringType | 문자열형(예: 'Spam') |
UnicodeType | 유니코드 문자열형(예: u'Spam') |
TupleType | 튜플형(예: (1,2,3, 'spam')) |
ListType | 리스트형(예: [0,1,2,3]) |
DictType | 사전형(예: {'Bacon':1, 'Ham':0}) |
DictionaryType | DictType의 또 다른 이름 |
FunctionType | 사용자 정의 함수, 람다 함수형 |
LambdaType | FunctionType의 또 다른 이름 |
CodeType | compile() 함수에 의해 리턴되는 코드 객체형 |
ClassType | 사용자 장의 클래스 자료형 |
InstanceType | 사용자 정의 클래스 인스턴스형 |
MethodType | 사용자 정의 클래스 인스턴스의 메쏘드형 |
UnboundMethodType | MethodType의 또 다른 이름 |
BuiltinFunctionType | len(), sys.exit()와 같은 내장 함수의 이름 |
BuiltinMethodType | BuiltinFunction의 또 다른 이름 |
ModuleType | 모듈형 |
FileType | sys.stdout과 같은 오픈된 파일 객체형 |
XRangeType | xrange()에 의해 리턴된 자료형 |
SliceType | slice()에 의해 리턴된 자료형 |
EllipsisType | Ellipsis 자료형 |
TracebackType | sys.exc_traceback와 같은 traceback 객체형 |
FrameType | traceback 객체 tb안의 tb.tb_frame과 같은 프레임 객체형 |
BufferType | buffer() 함수로 생성된 버퍼 객체형 |
- 기타의 자료형
- 파이썬 전체 자료형의 종류를 알아보려면 모듈 types를 이용
>>> import types >>> dir(types) ['BooleanType', 'BufferType', 'BuiltinFunctionType', 'BuiltinMethodType', 'ClassType', 'CodeType', 'ComplexType', 'DictProxyType', 'DictType', 'DictionaryType', 'EllipsisType', 'FileType', 'FloatType', 'FrameType', 'FunctionType', 'GeneratorType', 'GetSetDescriptorType', 'InstanceType', 'IntType', 'LambdaType', 'ListType', 'LongType', 'MemberDescriptorType', 'MethodType', 'ModuleType', 'NoneType', 'NotImplementedType', 'ObjectType', 'SliceType', 'StringType', 'StringTypes', 'TracebackType', 'TupleType', 'TypeType', 'UnboundMethodType', 'UnicodeType', 'XRangeType', '__builtins__', '__doc__', '__file__', '__name__', '__package__'] |
- types 모듈을 이용하여 자료형 비교
>>> from types import * >>> type(123) == IntType True >>> type('abc') == StringType True |
- 내장 자료형 알아보기
- 자료형이 무슨 형인지 알려면 type 내장 함수를 이용
- type 함수는 자료의 종류를 담고 있는 type 객체를 리턴
>>> type({}) <type 'dict'> >>> type('abc') <type 'str'> >>> type(None) <type 'NoneType'> >>> type([]) <type 'list'> >>> type(()) <type 'tuple'> >>> type(type({})) <type 'type'> # 자료형 비교 예 >>> a = 0 >>> L = [1,2,3] >>> type(a) == type(0) # a가 정수인지 검사 True |
'Programming > Python' 카테고리의 다른 글
파이썬 – os.path 모듈 (2) | 2011.11.20 |
---|---|
파이썬 – 정규식표현식(Regular Expression) 모듈 (8) | 2011.11.20 |
◎ 내장 자료형의 분류 (0) | 2010.07.31 |
◎ 자료형의 종류(문자열,리스트,튜플,사전) (0) | 2010.07.31 |
◎ 콘솔 입 .출력 (0) | 2010.07.30 |
-
주요 내장 자료형
자료형 |
설명 |
예 |
수치형(Numbers) |
정수, 롱형, 실수, 복소스등 표현 |
123, 12345L, 1.43 5+3 |
문자열(Strings) |
문자들의 모임 (내용 변경 X) |
'spams', "ham", "'egg'", """hot dog""" |
리스트(Lists) |
순서를 갖는 파이썬 임의 객체의 집합 |
['ham', 'spam'] |
사전(Dictionaries) |
순서를 갖지 않는 객체의 집합 키(key)로 값을 꺼낸다. |
{'ham':4, 'spam':5} |
튜플(Tuples) |
순서를 갖는 파이썬 임의 객체의 집합 (내용 변경 X) |
('ham', 'spam') |
파일(Files) |
파일에 자료를 입.출력하기 위한 객체 |
f = open('ham') |
-
자료 저장 방법에 따른 자료형의 분류
자료형 |
설명 |
예 |
직접자료형(direct) |
직접 자료를 표현하는 자료형 수치형이 여기에 속함. |
정수, 실수, 롱형정수, 복소수 |
시퀀스형(sequence) |
다른 자료를 포함하는 자료형 (순서를 갖는 집합적 자료형) |
문자열, 리스트, 튜플 |
매핑형(mapping) |
다른 자료를 포함하는 자료형 (순서를 갖지 않는 집합적 자료형) |
사전 |
-
변경 가능성에 따른 자료형의 분류
자료형 |
설명 |
예 |
변경가능형(mutable) |
자료의 값을 변경(O) |
리스트, 사전 |
변경불가능(immutable) |
자료의 값을 변경(X) |
문자열, 튜플, 수치형 |
-
자료 저장 개수에 따른 자료형의 분류
자료형 |
설명 |
예 |
리터럴형(literal/scalar) |
한 가지 객체만 저장. |
수치형, 문자열 |
저장형(container) |
여러 가지 다른 객체를 저장 |
리스트, 튜플, 사전 |
-
자료형의 분류
자료형 |
저장모델 |
변경 가능성 |
접근 방법 |
수치형 |
리터럴 |
불가 |
직접 |
문자열 |
리터럴 |
불가 |
시퀀스 |
리스트 |
저장형 |
가능 |
시퀀스 |
튜플 |
저장형 |
불가 |
시퀀스 |
사전 |
저장형 |
가능 |
매핑 |
-
자료형들을 구분하는 또 다른 중요한 구분 기준
(1) '변경 가능하다'(mutable) – 리스트, 사전
>>> s = [1,2,3] >>> s[1] = 200 >>> s [1, 200, 3] |
(2)'변경 가능하지 않다'(immutable) – 수치형, 문자열, 튜플
>>> s = (1,2,3) >>> s[1] = 20 Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> s[1] = 20 TypeError: 'tuple' object does not support item assignment |
'Programming > Python' 카테고리의 다른 글
파이썬 – 정규식표현식(Regular Expression) 모듈 (8) | 2011.11.20 |
---|---|
◎ 자료형 확인과 기타의 자료형 (0) | 2010.07.31 |
◎ 자료형의 종류(문자열,리스트,튜플,사전) (0) | 2010.07.31 |
◎ 콘솔 입 .출력 (0) | 2010.07.30 |
◎ 문자열로 된 파이썬 코드 실행하기 (0) | 2010.07.30 |
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 |
-
콘솔 입력
-
문자열 입력 (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'))] |
'Programming > Python' 카테고리의 다른 글
◎ 내장 자료형의 분류 (0) | 2010.07.31 |
---|---|
◎ 자료형의 종류(문자열,리스트,튜플,사전) (0) | 2010.07.31 |
◎ 문자열로 된 파이썬 코드 실행하기 (0) | 2010.07.30 |
◎ 파이썬 기초문 (0) | 2010.07.30 |
◎ 변수명 및 예약어 (0) | 2010.07.30 |
-
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 |
-
주석문(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에 영향을 미치면 이것은 공유객체,
그렇지 않으면 분리된 객체임을 알수 있다.
-
'Programming > Python' 카테고리의 다른 글
◎ 콘솔 입 .출력 (0) | 2010.07.30 |
---|---|
◎ 문자열로 된 파이썬 코드 실행하기 (0) | 2010.07.30 |
◎ 변수명 및 예약어 (0) | 2010.07.30 |
◎ 파이썬 설치 (0) | 2010.07.30 |
◎ Editplus에서 파이썬 설정(함수패턴,출력패턴) (0) | 2010.05.08 |
-
변수명 만드는 법
-
첫 문자가 언더스코아(_), 영문자
-
두 번째 문자는 영문자, 숫자, 언더스코아(_)
-
정규식 표현([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 |
|
-
프로그램으로 파이썬 예약어(keywork)를 아는 방법
-
변수명 만들 때 조심할
-
내장 함수 이름이나 모듈 이름은 피하는 것이 좋다.
-
'Programming > Python' 카테고리의 다른 글
◎ 콘솔 입 .출력 (0) | 2010.07.30 |
---|---|
◎ 문자열로 된 파이썬 코드 실행하기 (0) | 2010.07.30 |
◎ 파이썬 기초문 (0) | 2010.07.30 |
◎ 파이썬 설치 (0) | 2010.07.30 |
◎ Editplus에서 파이썬 설정(함수패턴,출력패턴) (0) | 2010.05.08 |
- 공식 홈 (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 |
'Programming > Python' 카테고리의 다른 글
◎ 콘솔 입 .출력 (0) | 2010.07.30 |
---|---|
◎ 문자열로 된 파이썬 코드 실행하기 (0) | 2010.07.30 |
◎ 파이썬 기초문 (0) | 2010.07.30 |
◎ 변수명 및 예약어 (0) | 2010.07.30 |
◎ Editplus에서 파이썬 설정(함수패턴,출력패턴) (0) | 2010.05.08 |