Skip to content

파이썬 자료형 #
Find similar titles

프로그램의 기본이자 핵심 단위가 바로 자료형입니다. 예를 들면, 계산 프로그램을 만들려면 어떤 것을 계산할지부터 알아야 하고, 데이터베이스 프로그램을 만들려면 어떤 자료를 저장할지부터 알아야 합니다. 여기서 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 자료형이라 합니다. 자료형의 종류는 다음과 같습니다. 그리고 파이썬에서 변수의 자료형을 확인하고 싶을 때는 type()이란 함수를 이용하면 됩니다.

숫자형 #

종류 #

int #

정수형(integer)입니다. 정수로서 이는 양의 정수, 음의 정수, 그리고 0을 대입할 수 있습니다.

>>> a = 231
>>> a
231
>>> a = -23
>>> a
-23
>>> type(a)
<class 'int'>

float #

실수형(floating-point)입니다.

>>> a = 4.2
>>> a
4.2
>>> type(a)
<class 'float'>

실수형을 scientific notation으로도 다음과 같이 표현할 수 있습니다.

>>> a = 3.4e-23 # 3.4*10^-23를 의미합니다.
>>> a = 3.4E-23 # 위와 같은 수 입니다.

complex #

복소수(complex) 자료형입니다. 복소수는 다음과 같이 두가지 방법으로 정의 가능합니다.

>>> a = complex(1, 3)
>>> a
(1+3j)
>>> type(a)
<class 'complex'>
>>> a = 3-4j
>>> a
(3-4j)
>>> type(a)
<class 'complex'>

숫자형에 활용 가능한 operations #

숫자형 자료형에는 다음과 같은 방식으로 연산이 가능합니다.

Operation Result
x + y sum of x and y
x - y difference of x and y
x * y product of x and y
x / y quotient of x and y
x // y floored quotient of x and y
x % y remainder of x / y
-x x negated
+x x unchanged
abs(x) absolute value or magnitude of x
int(x) x converted to integer
float(x) x converted to floating point
complex(re, im) a complex number with real part re, imaginary part im. im defaults to zero.
c.conjugate() conjugate of the complex number c
divmod(x, y) the pair (x // y, x % y)
pow(x, y) x to the power y
x ** y x to the power y

문자열 자료형 #

문자열(string)이란 문자의 집합을 의미합니다.

>>> a = 'this is a sentence'
>>> a
'this is a sentence'
>>> a = '232'
>>> type(a)
<class 'str'>

앞서 본 작은따옴표로 양쪽 둘러싸기 말고도 문자열 작성하는 방법은 다음과 같은 3가지 방식이 있습니다.

>>> "it is a string" # 큰 따옴표로 감싸기
>>> '''this is also a string''' # 작은 따옴표 3개를 연속으로 써서 감싸기
>>> """this is a string""" # 큰 따옴표 3개를 연속을 싸서 감싸기

문자열 연산 #

문자열을 파이썬에서는 더하거나 곱할 수 있습니다.

>>> 'let\'s ' + 'add them up' # sting안에 '가 들어가는 경우 \로 나가줘야 특수문자 인식이 됩니다.
"let's add them up"
>>> 'repeat 3 times ' * 3
repeat 3 times repeat 3 times repeat 3 times

위의 예제와 같이 더하면 두 개의 문자열이 붙고 곱하면 곱한 수만큼 문자열이 반복됨을 알 수 있습니다.

문자열 인덱싱과 슬라이싱 #

문자열의 indexing과 slicing은 문자열을 편집하기에 좋은 테크닉입니다.

>>> a = 'learning python is easy'
>>> a[0] # a의 0번째 문자를 가져옵니다.
'l'
>>> a[-2] # a의 뒤에서 두번째 문자를 가져옵니다.
's'
>>> a[9:15] # a의 9에서 15번째 문자를 가져옵니다.
'python'
>>> a[:] # a의 문자열 전체를 가져옵니다.
'learning python is easy'

formatting #

문자열 내의 특정한 값을 바꿔야 할 시에는 formatting을 활용합니다.

>>> temperature = 20
>>> f'Current temperature is {temperature} Celsius'
Current temperature is 20 Celsius

위와 같이 문자열 앞에 f를 쓰고 문자열 안에 변수를 받을 곳에 {변수이름}로 작성하면 변숫값을 받아 자동완성되는 문자열이 만들어집니다.

관련함수 #

문자열에도 자체적으로 가지고 있는 함수들이 있습니다. 이 중 많이 쓰는 몇 개를 소개하겠습니다.

>>> a = 'learning python is EASY'
>>> a.upper() # 문자열 대문자 변환
'LEARNING PYTHON IS EASY
>>> a.lower() # 문자열 소문자 변환
'learning python is easy'
>>> a.replace('EASY', 'hard!') # 'easy'를 'hard'로 치환
'learning python is hard!'
>>> a.split() # 공백을 기준으로 문자열 나누어 리스트로 리턴
['learning', 'python', 'is', 'EASY']

리스트 자료형 #

리스트는 여러 요소를 묶어 하나의 변수로 활용할 때 씁니다.

>>> a = [1, 3, 'five', ['list', 'of', 'lists']]

위의 a는 리스트로서 4개의 요소를 가지고 있습니다. 요소들의 자료형은 어떤 형식이든 상관이 없으며 특히 마지막 요소같이 리스트 안에 리스트나 집합, 딕셔너리들을 넣을 수 있습니다.

리스트 인덱싱과 슬라이싱 #

리스트도 문자열처럼 인덱싱과 슬라이싱이 가능합니다.

>>> a[0]
1
>>> a[-1]
['list', 'of', 'lists']
>>> a[-1][2] # a 리스트 안의 요소인 리스트의 2번째 요소를 불러옵니다.
'lists
>>> a[:2] # 2번째 요소 까지 슬라이스
[1, 3]

리스트 관련 함수들 #

리스트에도 자체 함수들이 있습니다. 이 중 많이 쓰는 몇 가지를 소개하겠습니다.

>>> a = [1, 3, 4, 5, 2, 10]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5, 10]
>>> a.extend([11, 12]) # a 리스트에 extend함수 안의 리스트를 합쳐준다. extend는 요소가 아닌 리스트가 있어야 합니다.
>>> a 
[1, 2, 3, 4, 5, 10, 11, 12]
>>> a.append(13) # a에 13이라는 요소를 첨가합니다. extend와 달리 요소를 넣어줍니다.
>>> a
[1, 2, 3, 4, 5, 10, 11, 12, 13]
>>> a.insert(5, 6) # a에 5번째 자리에 6을 집어넣습니다.
>>> a
[1, 2, 3, 4, 5, 6, 10, 11, 12, 13]

리스트에 이렇게 많은 함수들이 집어넣고 순서를 바꾸는 것에 관련이 있습니다. 리스트에는 순서가 중요하기 때문입니다.

튜플 자료형 #

튜플의 형식은 리스트와 비슷하지만 두 가지 다른 점이 있습니다.

  1. 리스트는 []로 감싸지만 튜플은 ()로 감쌉니다.
  2. 리스트는 안의 요소들을 생성, 삭제, 수정이 가능하지만 튜플은 할 수 없습니다.

튜플은 다음과 같이 생성할 수 있습니다.

>>> t = (1, 2, 3)
>>> t2 = (1, 2, 3, ('a', 'b', 'c')) # 리스트처럼 튜플안의 튜플이 가능합니다.

슬라이싱, 더하기, 곱하기 #

리스트처럼 함수로 다양하게 조작할 수 없는 튜플이지만 인덱싱과 슬라이싱은 가능합니다.

>>> t[:2]
(1, 2)
>>> t + t1
(1, 2, 3, 1, 2, 3, ('a', 'b', 'c'))
>>> t * 3
(1, 2, 3, 1, 2, 3, 1, 2, 3)

딕셔너리 자료형 #

딕셔너리(dictionary)의 큰 특징은 key와 value가 짝이 되어 하나의 요소를 구성하게 됩니다. key를 불러오면 key에 연결된 value들을 불러올 수 있으며 value를 하나의 요소나 리스트로 구성하게 되면 강력한 도구가 됩니다. 주의해야 할 점은 key 값은 딕셔너리 안에서 고유의 값이어야 하며 string이나 하나의 수(int, float) 같이 unhashable type이어야 한다는 점입니다.

생성법 #

딕셔너리는 다른 자료형과는 조금 다른 형태를 가지고 있습니다.

>>> dict = {'key1': 'value', 'key2': 12323, 'key3': ['list', 'can', 'be', 'a', 'value']}

위의 딕셔너리의 key 값들은 key1, key2, key3이고 이에 해당되는 value들은 각각 value, 12323, 리스트 이렇게 다양한 자료형을 가질 수 있습니다. 여기에 또 하나의 key와 값을 집어 넣으려면

>>> dict['key4'] = ['here', 'is', 'another', 'value']
>>> dict
{'key1': 'value', 'key2': 12323, 'key3': ['list', 'can', 'be', 'a', 'value'], 'key4': ['here', 'is', 'another', 'value']}

이렇게 하면 됩니다. 삭제도 다음과 같이 실행하면 됩니다.

>>> del dict['key1']
>>> dict
{'key2': 12323, 'key3': ['list', 'can', 'be', 'a', 'value'], 'key4': ['here', 'is', 'another', 'value']}

사용법 #

딕셔너리는 key 값으로 값을 불러오는 데에 사용됩니다. 이는 여러 요소들을 가지는 다른 자료형들과는 다른 사용법이며, 가장 큰 특징이기도 합니다.

>>> dict['key2']
12323

관련함수 #

딕셔너리에도 마찬가지로 자체 함수들을 가지고 있습니다.

>>> dict.keys() # 딕셔너리의 키값을 받습니다.
dict_keys(['key2', 'key3', 'key4'])
>>> dict.items() # key와 value의 매치된 dict_items 객채가 생성됩니다.
dict_items([('key2', 12323), ('key3', ['list', 'can', 'be', 'a', 'value']), ('key4', ['here', 'is', 'another', 'value'])])
>>> 'key2' in dict # dict안의 'key2'라는 키가 있는지 확인할 수 있습니다.
True
>>> 'key' in dict
False

집합(set) 자료형 #

집합 생성 및 특징 #

집합 (set)은 다음과 같이 생성이 됩니다.

>>> s1 = set([1, 2, 2, 3, 4, 4, 4, 4,]}
>>> s1
{1, 2, 3, 4}
>>> s2 = set('hello123')
>>> s2
{'o', '3', 'e', '2', 'l', 'h', '1'}

집합을 set()을 이용하여 생성하였습니다. 집합은 다음과 같은 특징을 가지고 있습니다.

  1. 요소들이 unique하다. (중복이 되지 않는다)
  2. 순서가 없다.

이러한 특징 때문에 종종 list 안에 중복을 제거하는 용도로 사용하기도 합니다.

관련 함수 #

집합에도 다른 리스트처럼 기본적인 추가 삭제 관련 함수들이 있습니다.

>>> s2.add(1)
>>> s2
{'o', '3', 1, 'e', '2', 'l', 'h', '1'}
>>> s2.update([2, 3, 4, 5])
>>> s2
{'o', '3', 1, 2, 'e', 3, 4, 5, '2', 'l', 'h', '1'}
>>> s2.remove(3)
>>> s2
{'o', '3', 1, 2, 'e', 4, 5, '2', 'l', 'h', '1'}

활용법 #

이름이 집합인 만큼 교집합, 합집합, 차집합 등 집합 연산을 다음과 같이 수행할 수 있습니다.

>>> s1 & s2 # s1과 s2의 교집합
{1, 2, 4}
>>> s1 | s2 # s1과 s2의 합집합
{'o', 1, 2, 3, 4, '3', 'e', 5, '2', 'l', 'h', '1'}
>>> s1 - s2 # s1과 s2의 차집합
{3}

Incoming Links #

Related Articles #

Suggested Pages #

0.0.1_20140628_0