본문 바로가기
Python

파이썬 기본 자료형

by GGoris 2014. 12. 22.
반응형

이 글은 '열혈강의 Python 개정판ver.2'를 참고로 작성하였습니다.


'열혈강의 Python 개정판ver.2' 이강성저  프리렉





RaspberryPI에 Raspbian을 사용하였습니다.





파이썬 기본 자료형





문자열



문자열은 텍스트표현을 위한 자료형으로 

큰따옴표(") 혹은 작은따옴표(')로 묶여진 문자들의 집합입니다.

>>> print "Hello Python"

Hello Python

>>> print 'Hello Python'

Hello Python

>>>



문자열은 배열처럼 인덱싱을 통해 각각의 문자를 사용할 수 있습니다.

>>> s='Hello Python'

>>> s[0]

'H'

>>> s[5]

' '

>>> s[6]

'P'

>>> s[-1]

'n'



슬라이싱을 통해 일부 부분문자열을 사용할 수 있습니다.
첫위치가 생략되면 '처음부터'
마지막 위치가 생략되면 '끝까지'를 의미합니다.
>>> s[1:3]
'el'
>>> s[0:4]
'Hell'
>>> s[:6]
'Hello '
>>> s[4:]
'o Python'


3개의 인자를 갖는 슬라이싱도 있습니다.

string[start:stop:step]


>>> s[4:10:1] #정방향 4~9까지

'o Pyth'

>>> s[4:10:-1] #역방행 4~9까지인데

#시작위치와 끝위치가 정방향

''

>>> s[10:4:-1] # 10~5까지 역방향

'ohtyP '

>>> s[::-1] #문자열 뒤집기

'nohtyP olleH'

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

'HloPto'



+연산자를 이용해 문자열을 연결할 수도 있고

*연산자를 이용해 여러번 반복할 수도 있습니다.

>>> 'Hello' + ' ' + 'Python'+'!!'

'Hello Python!!'

>>> 'Hello' + ' ' + 'Python'+('!!'*3)

'Hello Python!!!!!!'



문자열을 변경할 수 없습니다.
>>> s
'Hello Python'
>>> s[0]='h'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
#하지만 +연산과 슬라이싱을 이용해 변경할 수 있습니다.
>>> s
'Hello Python'
>>> s='h'+s[1:]
>>> s
'hello Python'


내장함수 len을 이용해 문자열의 길이를 알수 있고
멤버십 테스트로 부분 문자열 검사를 할 수 있습니다.

>>> len(s)

12

>>> 'hello' in s

True

>>> 'hello' not in s

False






리스트



리스트는 대괄호'[]'를 사용해 임의의 객체 여러개를 저장하는 자료형입니다.

문자열과 유사하게 사용될 수 있습니다.

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

>>> len(L)

3

>>> L[1:]

[2, 3]

>>> L+L

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

>>> L*2

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

>>> L[::-1]

[3, 2, 1]

>>> 4 in L

False



리스트는 문자열에서는 사용할 수 없는 몇가지 메소드를 사용할 수 있습니다.
>>> L.reverse()
>>> L
[3, 2, 1]
>>> L.append(4)
>>> L
[3, 2, 1, 4]
>>> del L[2]
>>> L
[3, 2, 4]
>>> L.sort()
>>> L
[2, 3, 4]







튜플



튜플 또한 문자열 과 유사하게 활용됩니다.

튜플은 괄호('()')를 사용합니다.

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

>>> len(T)

3

>>> T[1:]

(2, 3)

>>> T+T

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

>>> T*2

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

>>> T[::-1]

(3, 2, 1)

>>> 2 in T

True



위 처럼 튜플도 리스트나 문자열처럼 활용가능하지만

리스트같은 메서드는 지원하지는 않습니다.

>>> T

(1, 2, 3)

>>> T.reverse()

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

AttributeError: 'tuple' object has no attribute 'reverse'

>>> T.append(5)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

AttributeError: 'tuple' object has no attribute 'append'



리스트와 튜플의 또한가지 차이점은

튜플은 값 변경을 할 수 없지만,

리스트는 값변경이 가능하다는 점입니다.

>>> T[0]=100

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: 'tuple' object does not support item assignment

>>> L

[2, 3, 4]

>>> L[0]=100

>>> L

[100, 3, 4]







사전



사전은 안드로이드의 hashMap과 비슷한 느낌입니다.

하나의 키(key)에 그에 대응하는 하나의 벨류(value)를 갖습니다.

이 키-벨류를 여러개 포함 할 수 있습니다.

>>> dic={'one':'banana','two':'apple','three':'monkey'}

>>> dic['one']

'banana'

>>> dic['four']='dog'

>>> dic

{'four': 'dog', 'three': 'monkey', 'two': 'apple', 'one': 'banana'}

>>> 'dog' in dic

False

>>> 'four' in dic

True

>>>



사전을 리스트나 튜플로 변환 가능합니다.
>>> dic #내용확인
{'four': 'dog', 'three': 'monkey', 'two': 'apple', 'one': 'banana'}
>>> dic.keys() #키를 리스트로추출
['four', 'three', 'two', 'one']
>>> dic.values() #벨류를 리스트로 추출
['dog', 'monkey', 'apple', 'banana']
>>> dic.items() #키-벨류 튜플을 리스트로 추출
[('four', 'dog'), ('three', 'monkey'), ('two', 'apple'), ('one', 'banana')]



그 외


자료형을 확인하는 방법은 내장함수인 type()메서드를 사용합니다.

>>> type(dic)

<type 'dict'>

>>> type(L)

<type 'list'>

>>> type(T)

<type 'tuple'>

>>> type(123)

<type 'int'>

>>> type('asdf')

<type 'str'>



파이썬에서 사용할 수 있는 자료형들을 확인하려면

아래와 같이 입력하면 됩니다.

>>> import types

>>> dir(types)



또한  types모듈을 이용해 비교할 수도 있습니다.
>>> from types import *
>>> type(123)==IntType
True
>>> type('asdf')==StringType
True





반응형

'Python' 카테고리의 다른 글

파이썬 수치자료형  (0) 2014.12.25
파이썬 제어문  (0) 2014.12.23
파이썬 메모리 관리  (0) 2014.12.23
파이썬 기본 문법  (0) 2014.12.22
파이썬 시작하기!  (0) 2014.12.22

댓글