파이썬에는 다음과 같은 자료형이 존재한다.
여기서는 각각의 자료형에 대해서 설명한다.
숫자형에는 다음과 같은 종류가 존재한다.
>>> a = 4.24E10
>>> a = 4.24e-10
# 8진수
>>> a = 0o177
>>> print(a)
127
# 16진수
>>> a = 0x8ff
>>> b = 0xABC
>>> print(b)
2748
이러한 숫자형 자료형을 연산자를 통해 연산 가능하다. 연산자는 산술 연산자와 복합 연산자로 나뉜다.
+, -, *, /, ** (제곱), %, // (몫)+=, -=, *=, /=, //=, %=, **=문자열은 ', ", ''', """로 표현할 수 있다.
# 한 줄 문자열
a = ‘Hello’
b = “Python”
# 여러 줄 문자열
c = ‘’‘여러 줄 문자열’’’
d = “”“여러 줄 문자열”””
이러한 문자열은 연산자를 통해 연산 가능하다. 연산자는 연결/반복 연산자와 포매팅 방법으로 나뉜다.
+ (문자열 이어 붙이기)* (문자열 반복)len(문자열)"Python"[0] → 'P', "Python"[-1] → 'n'"Life is too short"[0:4] → 'Life'문자열 포매팅에는 다음과 같은 방법이 있다.
“I eat %d apples.” % 3
“I eat {} apples”.format(3)
“I ate {0} apples and {1} oranges”.format(3, 5)
name = “철수”
age = 20
f”My name is {name} and I am {age} years old.”
문자열 관련 함수는 다음과 같다.
“hobby”.count(‘b’) # 2
“hobby”.find(‘b’) # 2
“hobby”.index(‘b’) # 2
“,”.join([‘a’,‘b’,‘c’]) # ‘a,b,c’
“hi”.upper() # ‘HI’
“HI”.lower() # ‘hi’
“ hi “.strip() # ‘hi’
“Life is short”.replace(“short”, “long”) # ‘Life is long’
“a:b:c:d”.split(’:’) # [‘a’, ‘b’, ‘c’, ‘d’]
리스트는 대괄호 []로 감싸서 표현한다.
a = [1, 2, 3]
b = [‘a’, ‘b’, ‘c’]
c = [1, 2, [‘a’, ‘b’]] # 리스트 안에 리스트
리스트는 다양한 연산과 메서드를 사용할 수 있다.
a[0] → 1, c[2][0] → 'a'a[1:] → [2, 3][1, 2] + [3, 4] → [1, 2, 3, 4][1, 2] * 2 → [1, 2, 1, 2]len(a) → 3리스트 값 수정/삭제도 가능하다.
a = [1, 2, 3]
a[2] = 4 # [1, 2, 4]
del a[1] # [1, 4]
리스트 관련 함수는 다음과 같다.
a = [1, 3, 2]
a.append(4) # [1, 3, 2, 4]
a.sort() # [1, 2, 3, 4]
a.reverse() # [4, 3, 2, 1]
a.index(3) # 1
a.insert(1, 100) # [4, 100, 3, 2, 1]
a.remove(100) # [4, 3, 2, 1]
a.pop() # [4, 3, 2]
a.count(2) # 1
a.extend([5, 6]) # [4, 3, 2, 5, 6]
튜플은 리스트와 유사하지만 수정, 삭제가 불가능한 자료형이다. 소괄호 ()를 사용한다.
t1 = (1, 2, 3)
t2 = (‘a’, ‘b’, ‘c’)
t3 = (1, 2, (‘a’, ‘b’))
요소가 1개인 튜플은 쉼표를 반드시 붙여야 한다.
t4 = (1,) # 올바른 튜플
t5 = (1) # 그냥 정수형
튜플도 인덱싱, 슬라이싱, 연산이 가능하다.
t1[0] → 1t1[1:] → (2, 3)t1 + t2 → (1, 2, 3, 'a', 'b', 'c')t2 * 2 → ('a', 'b', 'c', 'a', 'b', 'c')len(t1) → 3하지만, 요솟값을 변경할 수 없기 때문에 sort, insert, remove, pop과 같은 내장 함수는 존재하지 않는다.
딕셔너리는 키(key)와 값(value) 쌍으로 데이터를 저장하는 자료형이다. 중괄호 {}를 사용하며, 각 쌍은 :로 구분한다.
a = { ‘name’: ‘철수’, ‘age’: 20 }
b = { 1: ‘one’, 2: ‘two’ }
c = { ‘a’: [1, 2, 3] }
a['name'] → '철수'a['school'] = 'ABC'a['age'] = 21del a['name']a = { ‘name’: ‘철수’, ‘age’: 20, ‘school’: ‘ABC’ }
a.keys() # dict_keys([‘name’, ‘age’, ‘school’])
a.values() # dict_values([‘철수’, 20, ‘ABC’])
a.items() # dict_items([(‘name’, ‘철수’), (‘age’, 20), (‘school’, ‘ABC’)])
a.get(‘name’) # ‘철수’
a.get(‘height’) # None (오류 발생 안 함)
‘name’ in a # True
‘height’ in a # False
a.clear() # 모든 항목 삭제
※ get()은 존재하지 않는 키에 접근해도 오류가 나지 않음. 기본값을 줄 수도 있음:
a.get('height', '없음') → '없음'
집합은 중복을 허용하지 않고, 순서가 없는 자료형이다. set() 함수나 중괄호 {}를 사용해 만든다.
s1 = set([1, 2, 3])
s2 = {1, 2, 3}
s3 = set(“hello”) # 중복 제거됨 → {‘e’, ‘h’, ‘l’, ‘o’}
s1 = set([1, 2, 3, 4])
s2 = set([3, 4, 5, 6])
s1 & s2 # 교집합 → {3, 4}
s1 | s2 # 합집합 → {1, 2, 3, 4, 5, 6}
s1 - s2 # 차집합 → {1, 2}
s1 ^ s2 # 대칭차집합 → {1, 2, 5, 6}
s = set([1, 2, 3])
s.add(4) # 원소 추가 → {1, 2, 3, 4}
s.update([5, 6]) # 여러 원소 추가 → {1, 2, 3, 4, 5, 6}
s.remove(3) # 특정 원소 제거 → {1, 2, 4, 5, 6}
불 자료형은 True, False 두 가지 값만을 가진다. 첫 글자는 반드시 대문자로 써야 한다.
a = True
b = False
비교 연산자는 항상 불 값을 반환한다.
1 < 2 # True
3 == 3 # True
1 != 2 # True
4 > 7 # False
and : 둘 다 참일 때만 참or : 둘 중 하나라도 참이면 참not : 참 → 거짓, 거짓 → 참True and False # False
True or False # True
not True # False
not False # True
다음 값들은 거짓(False) 으로 취급된다.
None0 (정수형, 실수형 모두)'' (빈 문자열)[], {}, () (빈 리스트, 딕셔너리, 튜플)그 외의 값들은 모두 참이다.
bool(0) # False
bool(””) # False
bool([]) # False
bool(123) # True
bool(“hello”) # True