프로그램의 기본이자 핵심 단위가 바로 자료형입니다. 예를 들면, 계산 프로그램을 만들려면 어떤 것을 계산할지부터 알아야 하고, 데이터베이스 프로그램을 만들려면 어떤 자료를 저장할지부터 알아야 합니다. 여기서 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 자료형이라 합니다. 자료형의 종류는 다음과 같습니다. 그리고 파이썬에서 변수의 자료형을 확인하고 싶을 때는 type()
이란 함수를 이용하면 됩니다.
Table of Contents
숫자형 #
종류 #
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]
리스트에 이렇게 많은 함수들이 집어넣고 순서를 바꾸는 것에 관련이 있습니다. 리스트에는 순서가 중요하기 때문입니다.
튜플 자료형 #
튜플의 형식은 리스트와 비슷하지만 두 가지 다른 점이 있습니다.
- 리스트는 []로 감싸지만 튜플은 ()로 감쌉니다.
- 리스트는 안의 요소들을 생성, 삭제, 수정이 가능하지만 튜플은 할 수 없습니다.
튜플은 다음과 같이 생성할 수 있습니다.
>>> 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()
을 이용하여 생성하였습니다. 집합은 다음과 같은 특징을 가지고 있습니다.
- 요소들이 unique하다. (중복이 되지 않는다)
- 순서가 없다.
이러한 특징 때문에 종종 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 (Article 0) #
Suggested Pages #
- 0.366 Substitution matrix
- 0.140 phage display technology
- 0.064 pcr
- 0.045 Seongsu
- 0.036 bacteriophage
- 0.025 Java
- 0.025 자바
- 0.024 C++
- 0.024 객체 지향
- 0.023 Jython
- More suggestions...