4.4.1. 자료형

메모리에 저장된 데이터는 여러 유형이 있을 수 있습니다. 예를 들어, 사람의 나이는 숫자 값으로 저장되고 주소는 문자, 숫자로 저장됩니다. 자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 뜻합니다. 프로그램의 기본이자 핵심 단위가 바로 자료형입니다. 파이썬에는 가능한 표준 연산과 각각의 저장 방법을 정의하는 데 사용되는 다양한 표준 데이터 유형이 있습니다.

파이썬에는 다섯 가지 표준 데이터 유형이 있습니다.

  1. 숫자(Numbers)

  2. 문자열(String)

  3. 리스트(List)

  4. 튜플(Tuple)

  5. 사전(Dictionary)

1) 숫자(number)

숫자형(Number)이란 숫자 형태로 이루어진 자료형으로 숫자 값을 저장합니다.

var1 = 1
var2 = 10

del 문을 사용하여 숫자 개체에 대한 참조를 삭제할 수도 있습니다. del 문의 구문은 다음과 같습니다.

del var1[,var2[,var3[....,varN]]]]

del 문을 사용하여 단일 개체 또는 여러 개체를 삭제할 수 있습니다.

del var
del var_a, var_b

파이썬은 네 가지 다른 숫자 타입을 지원합니다 -

  • int (정수형)

  • long (long integers, 8진수와 16진수로 표현될 수 있다)

  • float (소수점이 포함된 숫자)

  • complex (복소수)

다음 몇 가지 예제를 보겠습니다.

int

long

float

complex

10

51924361L

0.0

3.14j

100

-0x19323L

15.20

45.j

-786

0122L

-21.9

9.322e-36j

080

0xDEFABCECBDAECBFBAEl

32.3+e18

.876j

-0490

535633629843L

-90.

-.6545+0J

-0x260

-052318172735L

-32.54e100

3e+26J

0x69

-4721885298529L

70.2-E12

4.53e-7j

  • long integer 표현을 위해 대문자L 을 사용합니다.

  • 복소수는 x + yj로 표시된 실수 부동 소수점 숫자 쌍으로 구성됩니다. 여기서 x와 y는 실수이고 j는 허수 단위입니다.

  • 8진수(Octal)를 만들기 위해서는 숫자가 0o 또는 0O(숫자 0 + 알파벳 소문자 o 또는 대문자 O)로 시작하고, 16진수(Hexadecimal)를 만들기 위해서는 0x로 시작하면 됩니다.

2) 문자열(string)

문자열은 따옴표로 묶인 연속된 문자 집합을 의미합니다. 숫자도 따옴표안에 있으면 문자열입니다. 파이썬에서는 작은 따옴표나 큰 따옴표를 사용할 수 있습니다. 문자열의 부분 집합은 슬라이스 연산자 ([ ] 및 [ : ])를 사용하여 가능합니다. 문자열 시작 위치는 0이고 끝 위치는 -1 입니다.

플러스 (+) 기호는 문자열 연결 연산자이고 별표 (*)는 반복 연산자입니다.

str = 'Hello World!'
print str          # Prints complete string
print str[0]       # Prints first character of the string
print str[2:5]     # Prints characters starting from 3rd to 5th
print str[2:]      # Prints string starting from 3rd character
print str * 2      # Prints string two times
print str + "TEST" # Prints concatenated string

위 코드의 실행 결과는 다음과 같습니다.

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

3) 리스트(list)

리스트는 파이썬의 복합 데이터 유형 중 가장 다양한 기능을 제공합니다.

리스트에는 쉼표로 구분되고 대괄호 ([ ])로 묶인 항목이 있습니다. C의 배열과 차이점은 리스트에 속한 모든 항목이 다른 데이터 유형이 될 수 있다는 것입니다.

리스트에 저장된 값은 슬라이스 연산자 ( [ ] 및 [ : ] )를 사용하여 액세스 할 수 있습니다. 인덱스는 목록의 시작에서 0부터 시작하여 끝은 -1입니다. 더하기 (+) 기호는 목록 연결 연산자이고 별표 (*)는 반복 연산자입니다.

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print list          # Prints complete list
print list[0]       # Prints first element of the list
print list[1:3]     # Prints elements starting from 2nd till 3rd 
print list[2:]      # Prints elements starting from 3rd element
print tinylist * 2  # Prints list two times
print list + tinylist # Prints concatenated lists

위 코드의 실행 결과는 다음과 같습니다.

['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']

4) 튜플(tuple)

튜플은 리스트와 비슷한 또 다른 시퀀스 데이터 유형입니다. 튜플은 리스트와 동일하게 쉼표로 구분된 여러 값으로 구성됩니다. 그러나 리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싸여 있습니다. 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없습니다.

튜플은 읽기 전용 리스트로 생각할 수 있습니다. 실제 프로그램에서는 값이 변경되는 형태의 변수가 훨씬 많기 때문에 평균적으로 튜플보다는 리스트를 더 많이 사용하게 됩니다.

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
tinytuple = (123, 'john')

print tuple           # Prints complete list
print tuple[0]        # Prints first element of the list
print tuple[1:3]      # Prints elements starting from 2nd till 3rd 
print tuple[2:]       # Prints elements starting from 3rd element
print tinytuple * 2   # Prints list two times
print tuple + tinytuple # Prints concatenated lists

위 코드의 결과는 다음과 같습니다.

 ('abcd', 786, 2.23, 'john', 70.2)
 abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')

튜플을 변경하려고 시도했으므로 다음 코드는 튜플에 대해 허용되지 않습니다. 이런 코드의 경우 리스트에서는 수행 가능합니다.

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]
tuple[2] = 1000    # Invalid syntax with tuple
list[2] = 1000     # Valid syntax with list

5) 사전(dictionary)

파이썬의 사전은 일종의 해시 테이블 형식을 말합니다. 사전은 연관 배열 혹은 해시처럼 작동하며 Key와 Value라는 것을 한 쌍으로 갖는 자료형입니다. 사전의 키(Key)는 거의 모든 파이썬 유형이 될 수 있지만 일반적으로 숫자 또는 문자열이고, 사전의 값(Value)은 임의의 Python 객체가 될 수 있습니다.

사전은 중괄호 ({ })로 묶이고 값은 대괄호 ([ ])를 사용하여 할당하고 액세스 할 수 있습니다. 파이썬 사전에는 순서의 개념이 없습니다

dict = {}
dict['one'] = "This is one"
dict[2]     = "This is two"

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}

print dict['one']       # Prints value for 'one' key
print dict[2]           # Prints value for 2 key
print tinydict          # Prints complete dictionary
print tinydict.keys()   # Prints all the keys
print tinydict.values() # Prints all the values

위 코드의 결과는 다음과 같습니다.

This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']

6) 자료형 변환

기본 제공 자료형 간에 변환을 수행하려면 형식 이름을 함수로 사용하기 만하면 됩니다. 하나의 데이터 유형에서 다른 데이터 유형으로 변환을 수행하는 몇 가지 내장 함수가 있습니다. 이 함수는 변환된 값을 나타내는 새 객체를 반환합니다.

Sr.No.

Function & Description

1

int(x [,base]) : x를 정수로 변환합니다. base는 x가 문자열 인 경우 기본을 지정합니다.

2

long(x [,base] ) : x를 long integer로 변환합니다. base는 x가 문자열 인 경우 기본을 지정합니다.

3

float(x) : x를 부동 소수점 숫자로 변환합니다.

4

complex(real [,imag]) : 복소수를 만든다.

5

str(x) : 객체 x를 문자열 표현으로 변환합니다.

6

repr(x) : 오브젝트 x를 표현식 문자열로 변환합니다.

7

eval(str) : 문자열을 평가하고 객체를 반환합니다.

8

tuple(s) : s를 튜플로 변환합니다.

9

list(s) : s를 리스트로 변환합니다.

10

set(s) : s를 집합으로 변환합니다.

11

dict(d) : 사전을 만든다. d는 반드시 (키, 값) 튜플의 시퀀스여야 합니다.

12

frozenset(s) : s를 고저오딘 집합으로 변환합니다.

13

chr(x) : 정수를 문자로 변환합니다.

14

unichr(x) : 정수를 Unicode 문자로 변환합니다.

15

ord(x) : 하나의 문자를 정수 숫자로 변환

16

hex(x) : 정수를 16진수 문자열로 변환

17

oct(x) : 정수를 8진수 문자열로 변환

Last updated