이번 포스팅에서는 쉽게하는 Python 자료형에 대해 알아보도록 할께요. 자료형을 알면 프로그래밍시 데이터를 어떻게 사용하고 저장하고 활용할지 계획을 할 수가 있게 됩니다. 자료형도 프로그래밍 할 때 중요한 내용이므로 꼭 기억해두세요.
자료형이란?
자료형은 프로그램이 데이터를 담는 형태를 말하는데요. 숫자를 더하고 싶을 때 숫자 자료형을 파악해서 계산을 하고, 문자열을 인식하는 등의 활동을 파이썬 내부에서 알아서 처리를 합니다.
자료형은 숫자형, 매핑형(딕셔너리), 시퀀스, 집합형 등이 있는데 하나씩 살펴보도록 하겠습니다.
숫자형 자료형
숫자형 자료형은 정수(Integer), 실수(Float), 복소수(Complex)가 있습니다.
정수(Integer) 자료형
정수 자료형은 양수, 음수, 0을 의미합니다.
>>> numbers = 1
>>> type(numbers)
<class 'int'>
>>> numbers = -1
>>> type(numbers)
<class 'int'>
>>> numbers = 0
>>> type(numbers)
<class 'int'>
소수(Float) 자료형
소수 자료형은 숫자에 소수점이 붙은 자료형입니다.
>>> float = 3.14
>>> type(float)
<class 'float'>
>>> float = -3.14
>>> type(float)
<class 'float'>
복소수(Complex) 자료형
복소수 자료형입니다. 복소수 자료형은 complex() 함수를 통한 정의 또는x+yj 등의 정의로 선언할 수 있습니다.
>>> complex = complex(1, 2)
>>> print(complex)
(1+2j)
>>> type(complex)
<class 'complex'>
>>> complex = 1-2j
>>> print(complex)
(1-2j)
>>> type(complex)
<class 'complex'>
숫자형 자료형의 연산
숫자형 자료형은 아래와 같은 연산이 가능합니다.
연산 | 실행결과 |
x + y | x와 y의 합 |
x - y | x와 y의 차 |
x * y | x와 y의 곱 |
x / y | x와 y의 몫 |
x // y | x와 y의 나머지 |
x % y | x / y의 나머지 |
-x | x의 음수 |
+x | x 그대로 표현 |
abx(x) | x의 절대값 |
int(x) | x를 정수로 변환한 값 |
float(x) | x를 실수로 변환한 값 |
complex(re, im) | 실수부인 re와 허수부인 im으로 구성. im의 기본값은 0 |
c.conjugate() | 복소수 c의 켤레복소수 이 때 c는 변수를 의미 사용예시) >>> c = 3+4j >>> print(c.conjugate()) |
divmod(x, y) | x를 y로 나눈 몫과 나머지 사용예시) >>> a = 7 >>> b = 2 >>> print(*divmod(a, b)) 3 1 |
pow(x, y) | x와 y의 거듭제곱 |
x ** y | x와 y의 거듭제곱 |
불(Bool) 자료형
불 자료형은 사실이면 True, 거짓이면 Flase를 반환합니다.
>>> print(bool(1==5))
False
>>> print(bool(1==1))
True
시퀀스 자료형
시퀀스 자료형은 문자열(str), 리스트(list), 튜플(tupple), range 등이 있는데 하나씩 살펴보도록 하겠습니다.
문자열 자료형
>>> str = '안녕하세요'
>>> print(str)
안녕하세요
>>> type(str)
<class 'str'>
리스트(list) 자료형
리스트 자료형은 숫자, 문자열을 나열합니다. 만약, 로또 당첨번호 숫자를 한 변수에 저장하여 사용하는 예시를 들어보겠습니다.
로또 당첨번호 숫자는 1, 10, 20, 32, 43, 66이라고 했을 때 아래와 같이 사용합니다.
리스트 자료형 문법
list[데이터1, 데이터2, 데이터3...]
또는
[데이터1, 데이터2, 데이터3...]
이제 리스트 함수를 이용해 아래와 같이 리스트에 데이터를 넣어보겠습니다.
>>> lotto = [1, 10, 20, 32, 43, 66]
>>> print(lotto)
[1, 10, 20, 32, 43, 66]
>>> type(lotto)
<class 'list'>
이번에는 lotto 변수에 저장된 세번째 데이터를 꺼내볼까요?
>>> print(lotto[2])
20
여기서 처음 프로그래밍을 접하시는 분들은 궁금한 점이 있을 수 있어요. 세번째 데이터를 꺼낸다고 했는데 왜 2를 넣느냐는 의문이 들 수가 있습니다. 이것은 데이터의 시작 인덱스는 0부터 시작하기 때문이에요.
lotto 리스트 변수에 담겨있는 값을 바꾸고 싶을 경우, 다시 재정의 해야할까요? 그러한 경우에는 해댱 인덱스의 데이터를 바꾸기 하시면 됩니다. 0번째 인덱스의 데이터를 바꿔보겠습니다.
>>> lotto[0] = 3
>>> print(lotto)
[3, 10, 20, 32, 43, 66]
데이터를 추가하려면 어떻게 할까요?
>>> lotto.append(11)
>>> print(lotto)
[3, 10, 20, 32, 43, 66, 11]
데이터를 삭제하고 싶을 때는 아래와 같이 하시면 됩니다.
>>> print(lotto)
[3, 10, 20, 32, 43, 66, 11]
>>> del lotto[-1]
>>> print(lotto)
[3, 10, 20, 32, 43, 66]
원하는 인덱스의 데이터만 꺼내올 수도 있어요. 이를 슬라이싱(Slicing)이라고 합니다.
처음 데이터부터 2번째 인덱스 전까지의 데이터를 꺼내볼께요.
>>> print(lotto[:2])
[3, 10]
이번에는 3번째부터 마지막까지 인덱스의 데이터를 꺼내보겠습니다.
>>> print(lotto[3:])
[32, 43, 66]
이번에는 2번째부터 5번째 전까지의 인덱스 데이터를 꺼내볼께요.
>>> print(lotto[2:5])
[20, 32, 43]
슬라이싱을 이용해서 데이터를 추가하고, 변경하고, 삭제하고를 해보았습니다. print 함수를 이용해서 슬라이싱 및 출력을 했을 때 원본 데이터는 변경이 되지 않는데, 변경을 하고 싶으면 아래와 같이 하시면 됩니다. 이 방식은 실제 변수의 데이터를 슬라이싱 하여 변수 값을 저장하는 겁니다.
>>> lotto = lotto[1:5]
>>> print(lotto)
[10, 20, 32, 43]
여기까지 파이썬의 숫자형 자료형 및 시퀀스 자료형(문자열, 리스트)에 대해 알아보았습니다. 다음 포스팅에서 시퀀스 자료형을 더 다루도록 할께요.
여기까지 포스팅을 읽어주시고 따라해주신 것 감사합니다.
댓글