본문 바로가기
Programming/Pyhon Memo

02. 자료형

by (J&M) 2020. 11. 28.

본 포스트는 파이썬을 배우고 정리한 글입니다.

코드

a = 1023
b = 170.6
c = 3 + 5j
print(type(a), type(b), type(c))

d = True
print(type(d))

s1 = 'python'
s2 = "hello, python!"
s3 = '''pyhon programming'''
s4 = """JM's coding memo"""
print(type(s1), type(s2), type(s3), type(s4))

score_list = [90, 88, 74, 68]
print(type(score_list))

score_tuple = (90, 88, 74, 68)
print(type(score_tuple))

set_data = {1, 2, 5, 6, 7, 11}
print(type(set_data))

score_dict = {'국어':88, '수학':80, '과학':95}
print(type(score_dict))

실행결과

<class 'int'> <class 'float'> <class 'complex'>
<class 'bool'>
<class 'str'> <class 'str'> <class 'str'> <class 'str'>
<class 'list'>
<class 'tuple'>
<class 'set'>
<class 'dict'>


파이썬의 자료형

파이썬에는 9가지 자료형이 있다.

  • 정수 (int)
  • 실수 (float)
  • 복소수 (complex)
  • 불 (bool)
  • 문자열 (str)
  • 리스트 (list)
  • 튜플 (tuple)
  • 집합 (set)
  • 사전 (dict)

자료형을 확인하고 싶다면 type()함수를 이용하면 된다.


정수, 실수, 복소수, 불

가장 기본적인 자료형들로, 다른 언어를 해봤다면 알 수 있는 자료형이다. 

C언어만 했다면 모를수도 있는 bool은 참/거짓을 나타내는 자료형이다.

 


문자열, 리스트, 튜플

이 세 자료형은 시퀀스 자료형이라고하는데, 순서가 있는 자료형이다. 순서가 있기 때문에 각 자리에 인덱스가 붙게 된다. 

파이썬은 음수 인덱스도 지원한다. 표로 나타내면 다음과 같이 표현할 수 있다.

0
-5
1
-4
2
-3
3
-2
4
-1

크기가 5인 공간이 있을때 위는 양수 인덱스, 아래는 음수 인덱스이다.

 


집합

집합은 순서가 없고, 중복을 허용하지 않는다.

순서가 없기 때문에 인덱스를 이용해 값을 얻을 수 없다.

 


사전 자료형

사전 자료형도 순서가 없.

집합 기호 ({})을 사용하고, 원소가 키(key):값(value) 형태로 저장되어야 한다.

 


mutable과 immutable

mutable 자료형은 변경 가능한 자료형, immutable 자료형은 변경 불가능한 자료형이다.

mutable 리스트, 집합, 사전
immutable 정수, 실수, 복소수, 부울, 문자열, 튜플

 

비슷하지만 mutable, immutable인 자료형으로 각각 리스트, 튜플을 예로 들어보자.

score = [10,20,30,40]
score[2] = 90
print(score)

출력 [10, 90, 30, 40]

이렇게 리스트를 만들고 원하는 곳의 값을 수정한뒤, 출력을 하면 출력이 잘 되는 것을 볼 수 있다.

하지만 튜플로 이런 코드를 짠다면

score = (10, 20, 30, 40)
score[2] = 90
print(score)

출력 TypeError: 'tuple' object does not support item assignment

에러가 난다. 

 

그러면 정수, 실수같은 자료형들은 한번 할당을 하면 뒤로는 아예 수정을 못하는 건가?라는 생각이 들수 도 있다.

이런 자료형들은 id()값이 바뀌면서 재할당되는 것으로 봐야한다. 

'Programming > Pyhon Memo' 카테고리의 다른 글

03. 연산  (0) 2020.11.30
01. 객체와 변수  (0) 2020.11.28
00. Python 소개  (0) 2020.11.28

댓글