데이터 타입 및 연산자
타입을 확인하려면 type()을 사용하여 확인합니다.
파이썬은 많은 내장 데이터 타입(built-in data type)들을 가지고 있습니다.
- boolean : 참, 거짓 두가지 값을 표현합니다.
- int(integer) : 정수입니다.
- float(floating-point number) : 실수 입니다.
- complex number : 복소수 입니다.
- str(string) : 문자열 입니다.
- list : 순서가 있는 값들의 집합 입니다.
- tuple : 리스트와 같이 순서가 있는 값들의 집합이지만 읽기전용 입니다.
- set : 순서가 없고 중복되지 않는 값들의 집합 입니다.
- dict(dictionary) : 키와 값의 쌍으로 데이터를 저장합니다.
1) boolean 타입
True, Flase 둘 중의 하나의 값을 가집니다. True, False 값은 대소문자를 구분합니다. boolean 타입에 사용할 수 있는 연산자는 and, or, not 이 있습니다.
2) 비교연산자
파이썬에서 비교연산자는 8가지가 있습니다. 이것들은 모두 같은 우선순위를 가집니다.
< : 작다
<= : 작거나 같다
> : 크다
>= : 크거나 같다.
== : 같다.
!= : 다르다.
is : 동일한 객체이다.
is not : 동일한 객체가 아니다.
3)수치형 및 연산자
정수(int), 실수(float), 복소수(complex)가 있습니다. 사용할 수 있는 연산자는 다음과 같습니다.
x + y : 두 값을 더합니다.
x - y : x에서 y를 뺍니다.
x * y : 두 값을 곱합니다.
x / y : x에서 y를 나눕니다.
x // y : x에서 y를 나눈 몫을 반환합니다.
x % y : x에서 y를 나눈 나머지를 반환합니다.
-x : 부호를 바꿉니다.
+x : 변화가 없습니다.
abs(x) : 절대값을 반환합니다.
int(x) : 숫자 문자열이나 실수를 정수로 변환합니다.
float(x) : 숫자 문자열이나 정수를 실수로 변환합니다.
complex(re, im) : 실수부분이 re이고 허수부부이 im 인 복소수를 반환합니다.
c.conjugate() : 켤레복소수(허수부 부호가 바뀐 값)를 반환합니다.
divmod(x, y) : (x // y, x % y) 를 반환합니다.(tuple)
pow(x, y) : x의 y승 값을 반환합니다.
x ** y : x의 y승 값을 반환합니다.
4) 정수형에 대한 비트 연산자
비트 연산자는 정수값에 대해서만 사용됩니다. 음수일 경우 2의 보수가 사용됩니다.
x | y : or 연산입니다.
x ^ y : xor 연산입니다.
x & y : and 연산입니다.
x << n : 왼쪽으로 n번 쉬프트 합니다.
x >> n : 오른쪽으로 n번 쉬프트 합니다.
~x : 비트를 반전시킵니다.
5) 문자열
문자열 literal 은 작은따옴표(') 또는 큰따옴표(")로 문자를 둘러싸서 만들 수 있습니다. 여러줄의 데이터를 작은따옴표 또는 큰따옴표 세 개를 사용해서 둘러쌉니다.
>>> a = 'test'
>>> b = "test"
>>> c = """This
is
test.
"""
>>> c
'This\nis\ntet.\n'
6)시퀀스 타입
list 는 순서가 있는 데이터의 집합으로 대괄호([])와 콤마(,)를 사용하여 값을 정의합니다.
>>> a = [1, 'a', 3] # 서로 다른 타입을 값으로 가질 수 있습니다.
tuple 은 list 와 같지만, 읽기전용입니다. 소괄호를 사용하거나 아무것도 없이 정의합니다.
>>> a = (1, 2, 3)
>>> b = 4, 5, 6
공통적으로 사용되는 연산자를 다음과 같습니다.
x in s : s에 x 값을 포함하고 있으면 True, 아니면 False
x not in s : s에 x 값을 포함하지 않으면 True, 아니면 False
s + t : s와 t 를 연결합니다.
s * n or n * s : s 를 n 번 추가 합니다.
s[i] : s내의 i 번째 아이템을 반환합니다.(i 는 0부터 시작)
s[i:j] : s에서 i부터 j 까지 잘라서 반환합니다.
s[i:j:k] : s에서 i부터 j 까지 k씩 건넌 값을 잘라서 반환 합니다.
len(s) : s의 길이를 반환합니다.
min(s) : s에서 가장 작은 값을 반환합니다.
max(s) : s에서 가장 큰 값을 반환합니다.
s.index(x[, i[, j]]) : s에서 x 를 처음 찾은 위치를 반환합니다. 추가 인자가 주어지면 그 범위에서 찾습니다.
s.count(x) : s에 x 를 몇번 나오는지 반환합니다.
다음은 변경가능한 시퀀스 타입에 사용할 수 있는 연산 입니다.
s[i] = x : s의 i 번째 값을 x 로 바꿉니다.
s[i:j] = t : s의 i부터 j 까지의 내용을 반복자 t의 내용으로 바꿉니다.
del s[i:j] : s의 i부터 j 까지를 지웁니다. s[i:j] = []와 같습니다.
s[i:j:k] = t : s[i:j:k]의 아이템을 반복자 t의 내용으로 바꿉니다. t의 길이는 s[i:j:k] 의 길이와 같아야 합니다.
del s[i:j:k] : list 로부터 s[i:j:k] 를 지웁니다.
s.append(x) : list의 끝에 x 를 추가합니다.(s[len(s):len(s)] = [x] 와 같음)
s.clear() : s로 부터 모든 아이템을 지웁니다. (del s[:] 와 같음)
s.copy() : s로부터 얕은 복사를 합니다. (s[:] 와 같음)
s.extend(t) or s += t : s뒤에 t 를 붙입니다.(대부분의 경우 s[len(s):len(s)] = t와 같음)
s *= n : s의 내용을 n 번 반복합니다.
s.insert(i, x) : s의 i번째에 x 를 삽입합니다. (s[i:i] = [x] 와 같음)
s.pop([i]) : s에서 i번째 아이템을 반한하고, s에서는 삭제합니다.
s.remove(x) : s에서 값이 x 인 첫번째 아이템을 삭제합니다.
s.reverse() : s의 내용을 역순으로 만듭니다.
※ 얕은 복사(shallow copy) 는 실제 값을 복사하는 것이 아니라 위치(주소)만 복사하는 것입니다.
7)Set 타입
set 객체는 순서가 없고 중복되지 않는 값들의 집합입니다. set은 중괄호를 사용하여 만들 수 있습니다.
>>> a = {1, 2, 3}
순서가 없으므로 a[1] 형태로 사용할 수 없습니다.
set은 일반적으로 소속 검사(membership testing), 시퀀스에서 중복 제거를 하거나 교집합, 합집합, 차집합, 대칭차집합(symmetric difference)을 구하는데 사용됩니다.
8) Mapping 타입
dict 객체는 키와 값의 쌍으로 된 값들을 가지는 객체입니다. 중괄호 내에 콜론(:)으로 키와 값의 쌍을 지정하여 만들 수 있습니다.
>>> a = {'a':1, 'b':2, 'c':3}
>>> a['a']
1
출처 : https://offbyone.tistory.com/49
데이터 타입 변환 하기
1. 문자열을 정수로 바꾸기
문자 '12345'를 숫자로 바꾸기
test = '12345'
print(test) #12345
print(type(test)) #<class 'str'>
print(int(test)) #12345
print(type(int(test))) #<class 'int'>
int 로만 감싸준다면 바로 변경 가능합니다.
2. 문자열을 실수로 바꾸기
test = "3.14"
print(test) # 3.14
print(type(test)) # <class 'str'>
print(type(float(test))) # <class 'float'>
float 로만 감싸준다면 바로 변경 가능합니다.
3. 숫자를 문자열로 바꾸기
test = 12345
print(type(str(test))) # <class 'str'>
str 로만 감싸준다면 바로 변경 가능합니다.
4. 리스트(list)와 튜플(tuple) 변환
x = [1,2,3,4]
print(type(x)) # <class 'list'>
print(type(tuple(x))) # <class 'tuple'>
tuple 로만 감싸준다면 바로 변경 가능합니다.
4-1. 튜플(tuple)을 리스트(list)로 변환
y = (6,7,8,9)
print(type(y)) # <class 'tuple'>
print(type(list(x))) # <class 'list'>
list 로만 감싸준다면 바로 변경 가능합니다.
5. 사전(dictionary)을 리스트(list)로 변환
이부분은 조금 까다롭지만 한번 따라해 보세요.
x = {"a":1,"b":2,"c":3}
print(x) # {'a': 1, 'b': 2, 'c': 3}
y = [(i,x[i]) for i in x]
print(y) # [('a', 1), ('b', 2), ('c', 3)]
[ ] 리스트 형태로 묶어준 뒤, 튜플로 for문을 통해 리스트를 표현해주었습니다.
5-1. 리스트(list)를 사전(dictionary)로 변환
이부분은 조금 까다롭지만 한번 따라해 보세요.
print(y) # 리스트형태의 y : [('a', 1), ('b', 2), ('c', 3)]
yx = {i:j for i,j in y}
print(yx) # {'a': 1, 'b': 2, 'c': 3}
{ } 딕셔너리 형태로 묶어준 뒤, for 문을 통해 딕셔너리로 변환 해주었습니다.
'PYTHON' 카테고리의 다른 글
[Python / 파이썬] 파이썬에서 정규표현식 사용하기 (0) | 2019.07.18 |
---|---|
[Python 파이썬] __getitem__() 를 이용한 튜플의 리스트, 리스트의 리스트 다루기 (Handling List of Tuples, List of Lists) // 리스트 안에 튜플 (0) | 2019.07.17 |
[Python] 문자열에 문자열 리스트의 요소가 포함되어 있는지 찾기 (0) | 2019.07.16 |
[Python] 리스트 컴프리헨션 알아보기 (0) | 2019.07.16 |
[Python] list, tuple, dictionary (0) | 2019.07.12 |