컴퓨터 프로그램은 정보를 메모리 위에 올려서 처리하는데, 이 메모리 위에 있는 정보를 의미있는 덩어리로 묶어두기 위한 단위가 필요하다. 이 단위를 파이썬에서는 객체(object)로 관리한다.
한마디로 객체 = 개별 데이터!이며 객체에는 값(value)·유형(type)·정체성(identity)이라는 세 특성이 있다.
정의 | 구하는 함수 | |
---|---|---|
값(value) | 메모리에 기록된 내용 | 객체는 값 그 자체, 그 자신으로 평가됨. |
유형(type) | 데이터의 종류 | type() |
정체성(identity) | 각각의 객체를 식별하기 위한 고유 번호 | id() |
값과 유형이 동일한 데이터가 메모리 공간에 여러 개 존재할 수는 있지만, 이들은 서로 별개의 객체이며 정체성이 서로 다르다.
정의 | 데이터 유형 | 속성 | |
---|---|---|---|
가변객체(mutable) | 객체에 할당된 값 수정 가능 | 리스트(list), 딕셔너리(dic), 세트(set) | call by reference |
불변객체(immutable) | 객체에 할당된 값 수정 불가 | 일반적인 데이터 유형들(int, str, bool 등), 튜플(tuple) | call by value |
☝🏻 파이썬에서 데이터를 다룰 때 데이터의 종류를 의미한다.
☝🏻 변수를 만들 때 사용자가 데이터 유형을 결정하지 않아도 파이썬 내부에서 자동으로 데이터 유형을 판단하여 적용된다.
☝🏻 데이터 유형 확인은 type() 함수를 사용해서 확인한다.
☝🏻 필요에 따라 데이터 유형을 변경할 수 있다. (아래의 자료형 변환 부분 참고)
종류
(1) 정수형 (int)
(2) 실수형 (float)
(3) 복소수형 (complex) .. 등
특징
: 연산 가능
: 숫자를 다루는 내장함수(range, round,pow 등) 사용 가능
산술 연산자
: 파이썬 산술 연산자에도 우선 순위가 있다. +보다 *이 먼저!, ( ) 안에 있는 연산이 먼저!
연산자 | 설명 |
---|---|
+ | 더하기 |
- | 빼기 |
* | 곱하기 |
/ | 나누기 |
** | 제곱 |
// | 몫 구하기 |
% | 나머지 구하기 |
종류
(1) bool
특징
: 참과 거짓을 나타냄
: 주로 비교 & 논리 연산자로 만들어짐. 조건문에 많이 활용됨.
연산자 | 설명 |
---|---|
< | 작다 |
<= | 작거나 같다 |
> | 크다 |
>= | 크거나 같다 |
== | 같다 |
!= | 같지 않다 |
연산자 | 설명 |
---|---|
x or y | x나 y 둘 중 하나만 참이면 참 |
x and y | x,y 모두 참이어야 참 |
not x | x가 True(참)이면 False(거짓) x가 False(거짓)이면 True(참) |
종류
(1) str
특징
: 다른 언어들과 달리 파이썬은 문자와 문자열을 따로 구분하지 않는다.
: '작은따옴표' 혹은 "큰따옴표"에 감싸져있음
: 연산 불가능 (예외 : 문자 + 문자 , 문자 * 정수는 가능)
: 문자열을 다루는 다양한 method들이 존재한다 (예 : split, upper, join 등)
종류
(1) 리스트 (list) : 데이터를 순차적으로 저장하는 열거형 집합
(2) 튜플 (tuple) : 처음 저장한 값을 변경할 수 없는 열거형 집합
(3) 세트 (set) : 순서가 없고 중복이 허용되지 않는 집합
(4) 사전 (dic) : 순서(index, 색인)가 아닌 키와 값이 쌍으로 구성된 집합
특징
: 여러 데이터를 모은 집합 형태의 자료형
파이썬은 사용자가 자료형을 결정하지 않으므로 사용자의 의도와 다른 자료형으로 입력될 수 있다. 이때는 각 데이터들의 자료형을 원하는 자료형으로 변경해야한다.
ex) input( ) 사용, 정수와 실수의 사용 등
ex)
✏️ 코드 입력시
str(10)
: 10이라는 int(정수형)을 str(문자열)로 변경한다는 뜻
✏️ 코드 입력시
int('10')
: 10이라는 str(문자열)을 int(정수형)로 변경한다는 뜻
✏️ 코드 입력시
int('12.5')
: 12.5라는 float(실수형)을 int(정수형)로 변경한다는 뜻
✏️ 코드 입력시
list('hello')
: hello 라는 str(문자열)을 list(리스트)로 변경한다는 뜻