파이썬의 자료형

업데이트:

1. 파이썬의 자료형

파이썬(Python)에선 기본적으로 변수의 타입을 따로 지정하지 않아도 자동으로 자료형을 인식해서 사용된다.

자료형
설명
불리언 자료형 True,False 값을 가진 자료형
정수 자료형 0,음수,양수 값을 가진 자료형
실수 자료형 3,145와 같은 소수점을 사용하는 자료형
문자열 자료형 ' '," " 따옴표로 감싸진 값
리스트 자료형 [1,2,3]과 같은 값들의 집합 (추가,수정,삭제 가능)
튜플 자료형 (1,2,3)과 같은 값들의 집합 (추가,수정,삭제 불가능)
딕셔너리 자료형 Key : Value 값을 가지는 자료형
집합 자료형 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형

###1.1 파이썬의 자료형 변환

자료형
설명
bool() 불리언형 자료형으로 변환
int() 정수형 자료형으로 변환
float() 실수형 자료형으로 변환
str() 문자열 자료형으로 변환

2. 불 자료형

불(bool) 자료형은 참(True)과 거짓(False)를 반환하는 자료형입니다.

>>> t = True
>>> f = False
>>> t
True
>>> f
False
>>> type(t)
<class 'bool'>
>>> type(f)
<class 'bool'>

2.1 불 자료형의 참 거짓

참 , 거짓
"python"
'' 거짓
[1,2]
[] 거짓
() 거짓
{} 거짓
1
0 거짓

1과 0은 문자열이 아닌 정수형을 말합니다.
값이 0,null,none 아닐 경우에 프로그래밍에서 대부분은 무언가 값이 들어있을 경우 참으로 인식합니다.

>>> a = 0
>>> b = bool(a)
>>> b
False
>>> a = 1
>>> b = bool(a)
>>> b
True
# 문자열 0은 True
>>> a = '0'
>>> b = bool(a)
>>> b
True

3. 숫자형

숫자형은 정수, 실수와 같은 숫자 형태로 된 자료형입니다.

>>> a = 10
>>> b = -5
>>> c = 1.54
>>> a + b
5
>>> a + c
11.54
>>> type(a)
<class 'int'>
>>> type(b)
<class 'int'>
>>> type(c)
<class 'float'>

파이썬에선 정수와 실수의 연산에 따로 형변환을 해주지 않아도 자동으로 형변환을 해줍니다.

>>> d=1
>>> type(d)
<class 'int'>
>>> d = a+c
>>> type(d)
<class 'float'>

변수 d의 처음 typeint 였으나 floattype이 변환된 걸 보았습니다.
이렇게 변환되는 이유는 정수보다 실수의 표현 범위가 더 넓기 때문입니다.

3.1 숫자형의 연산자

연산자
설명
/ 나눗셈의 몫을 구하는 연산자
// 나눗셈의 몫을 구하는 연산자 ( 소수점을 제외한 정수값만 반환 )
% 나눗셈의 나머지를 구하는 연산자
** 제곱을 구하는 연산자

4. 문자열

"Hello World!"
"777"

문자열이란 이와 같이 우리가 사용하는 문자나 단어, 숫자들로 구성된 집합이다.
여기서 숫자는 숫자형이 아닌가라고 생각할 수도 있겠지만,

>>> a = 11
>>> b = "11"
>>> type(a)
<class 'int'>
>>> type(b)
<class 'str'>

이와 같이 ' ', " " 따옴표로 감싸져 있으면 모두 문자열로 본다.

4.1 파이썬에서 문자열을 사용하는 4가지 방법


  1. 큰따옴표(")로 양쪽 둘러싸기
  2. 작은따옴표(')로 양쪽 둘러싸기
  3. 큰따옴표 3개(""")로 양쪽 둘러싸기
  4. 작은따옴표 3개(''')로 양쪽 둘러싸기

예시

>>> str1 = """안녕하세요 저는 "찬호" 입니다"""
>>> str1
'안녕하세요 저는 "찬호" 입니다'
>>> str1 = '안녕 "큰따움표" 사용'
>>> str1
'안녕 "큰따움표" 사용'

4.2 문자열 연산


4.2.1 문자열 더하기

>>> str1 = "Hello"
>>> str2 = "Chan!"
>>> str1 + str2
'HelloChan!'

4.2.2 문자열 곱하기

>>> str1
'='
>>> str1 * 50
'=================================================='

4.2.3 문자열 길이 구하기

>>> str2
'=================================================='
>>> len(str2)
50

5. 리스트(List)

리스트를 사용하는 이유는 간단합니다. 조금더 편하게 집합을 표현하기 위해서 입니다.
예를 들어 동물의 이름들을 나열하라고 한다면

>>> ani1 = 'monkey'
>>> ani2 = 'tiger'
>>> ani3 = 'cat'
>>> ani4 = 'dolphin'
>>> print(ani1,ani2,ani3,ani4)
monkey tiger cat dolphin

위와 같이 표현할 수도 있겠지만 리스트를 사용하면 아래와 같이 더 간편하고 편하게 사용할 수 있습니다.

>>> animal = [ani1, ani2, ani3, ani4]
>>> animal
['monkey', 'tiger', 'cat', 'dolphin']

5.1 리스트 인덱싱

>>> animal
['monkey', 'tiger', 'cat', 'dolphin']
>>> animal[2]
'cat'
>>> animal[0]
'monkey'
>>> str1=animal[0] + animal[2]
>>> str1
'monkeycat'

5.2 리스트 슬라이싱

>>> animal
['monkey', 'tiger', 'cat', 'dolphin']
>>> tmp = animal[2:4]
>>> tmp
['cat', 'dolphin']
>>>

5.3 리스트 연산

  1. 리스트 더하기 : +
  2. 리스트 반복하기 : *
  3. 리스트 길이구하기 : len()

5.4 리스트 수정

>>> animal
['monkey', 'tiger', 'cat', 'dolphin']
>>> animal[1]='dog'
>>> animal
['monkey', 'dog', 'cat', 'dolphin']

5.5 리스트 삭제

>>> animal
['monkey', 'dog', 'cat', 'dolphin']
>>> del animal[1]
>>> animal
['monkey', 'cat', 'dolphin']

5.6 리스트 관련된 함수들

함수
설명
append 리스트의 맨 마지막에 추가 animal.append(‘str’)
sort 리스트의 요소를 순서대로 정렬(숫자,문자)
reverse 리스트를 역순으로 뒤집기
index index(value)에서 value 값이 있을 때 그 위치를 반환
insert animal.insert(0,’dog’) 와 같이 x번째에 값을 삽입하는 함수
remove remove(value)는 리스트에서 첫 번째로 나오는 value를 삭제하는 함수
pop pop() : 요소 맨 마지막 반환 후 삭제, pop(x) : x번째 요소를 반환 후 삭제
count count(x) : 리스트안에 요소 x값이 몇 개가 있는지
extend extend(x) : x값은 리스트만 적을 수 있고 기존 리스트에서 x 리스트를 더하게 된다.

6. 튜플(Tuple)

튜플은 기존에 값을 변화시킬 수 없다는 것을 제외하고 리스트(List)와 완전히 동일합니다. 리스트와 마찬가지로 값을 변화시키는 작업 이외에 인덱싱,슬라이싱,더하기,곱하기,길이 구하는 방법은 리스트와 같습니다.

7. 딕셔너리(dictionary)

딕셔너리는 KeyValue를 한 쌍으로 갖는 자료형으로 리스트나 튜플처럼 순차적으로 해당 요소값들을 구하지 않고 Key값을 통해 Value값을 얻습니다.
결국 순차적으로 데이터를 찾지 않고 Key값을 통해 데이터를 찾는다는게 큰 특징입니다.

7.1 딕셔너리를 사용한 예

{Key1:Value1, Key2:Value2, ...}

와 같이 Key값 과 Value 값으로 이루어진 쌍 여러개를 { } 중괄호로 둘러싸여 있는 구조입니다.

여기서 Key값은 변하면 안되는 상수 값이고, Value는 언제든 변할 수 있는 변수입니다.

7.2 Key값을 통해 Value값 얻기

>>> animal
['monkey', 'cat', 'dolphin']
>>> dic = {'name':'chanho','age':'27','favorite': animal}
>>> dic['name']
'chanho'
>>> dic['favorite']
['monkey', 'cat', 'dolphin']

여기서 한가지 기존에 animal이라는 리스트 값을 딕셔너리의 value 값으로 삽입할 수 있습니다. 만약에 favorite라는 Key 값에 있는 ‘dolphin’이라는 값을 가져오고 싶다면 아래와 같이 사용하여 가져올 수 있습니다.

>>> dic['favorite'][2]
'dolphin'

7.3 딕셔너리를 만들때 주의사항

  • 딕셔너리의 Key는 고유한 값으로 중복해서 선언했을 경우 하나를 제외한 나머지 Key들은 무시됩니다.
  • 또한 위의 예제에서 처럼 Value 값에 List값 을 삽입할 순 있지만, Key값에는 List값을 삽입할 수 없습니다.

8. 집합 자료형

집합 자료형은 한 변수에 저장된 리스트 또는 문자열에 속해있는 값들을 나열해줍니다.
조금 더 간단하게 설명하자면 집합에 관련된 것들을 쉽게 처리하기 위해 만든 자료형입니다. set() 키워드를 사용해서 만들 수 있습니다.

8.1 집합 자료형의 사용 예

>>> str = 'aabbccdd112234efg'
>>> s = set(str)
>>> s
{'e', '1', 'd', 'a', 'f', '2', 'g', 'b', '3', 'c', '4'}
>>> str = [1,2,2,3,"asdf","asdf","asde","p"]
>>> s = set(str)
>>> s
{1, 2, 3, 'p', 'asdf', 'asde'}

8.2 집합 자료형의 특징

집합 자료형의 사용 예에서 보여준 결과를 보고 의문사항이 생깁니다.
분명 a,b,c,d,1,2 가 각각 두 개인데 왜 결과 값으로는 하나씩 밖에 안나오지?

  • 집합 자료형은 중복을 허용하지 않습니다.
  • 집합 자료형은 순서가 없습니다.

참고: 점프 투 파이썬

댓글남기기