변수 데이터형
이전 시간에 변수에 값을 저장하고 변수명 규칙을 배웠습니다. 이번 시간에는 변수에 숫자, 문자열, 불, 리스트, 튜플, 딕셔너리 등 다양항 데이터형의 데이터를 배워보겠습니다. 파이썬에서 많이 사용되는 데이터형은 다음과 같습니다.
- 숫자: -45, -587, 0, 13, 545, -0.452, -474.0, 0
- 문자열: 'a', 'b', 'abc', 'happy', '안녕하세요'
- 불: True, False
- 리스트: ['이승윤', 43, '010-1234-5678', 'mbn@korea.com']
- 튜플: ('떡볶이', '순대' , '튀김' , '어묵', '세트')
- 딕셔너리: {'red':'레드', 'yellow':'옐로', 'blue':'블루', 'green':'그린'}
숫자
파이썬에서 사용하는 숫자에는 정수로 구성된 정수형(Interger)과 소수점이 있는 실수형(Floating Point) 숫자가 있습니다. 정수형 숫자는 -3, 0, 36등과 같은 음수, 0, 양수로 구성된 정수를 의미하고, 실수형 숫자는 3.14, -38.333, 0.0같이 소수점이 있는 숫자를 말합니다.
정수형 숫자
다음 예제는 정수형 변수의 데이터 형을 구하는 프로그램입니다.
x = 40
print(x)
print(type(x))
데이터의 형을 얻고자 할 때는 type() 함수를 사용합니다. 실행 결과를 확인하면 40 <class 'int'> 값을 확인할 수 있습니다.
- 1행 변수 x에 40을 저장한다. 데이터 값 40이 정수형 숫자이기 때문에 변수 x도 정수형이 됩니다.
- 3행 type() 함수는 괄호 안에 들어가는 변수의 형(Type)을 얻는 데 사용합니다. 3행이 실행된 결괏값으로 <class 'int'>가 출력됩니다. 이것은 변수 x의 형이 int(integer), 즉 정수형이라는 것을 나타내는 것입니다.
type() 함수
type(변수_데이터)
type() 함수는 괄호 안에 들어가는 변수나 데이터의 데이터 형을 얻는 데 사용됩니다.
실수형 숫자
다음은 실수형 숫자의 데이터 형이 사용되는 예제입니다.
x = 1.567
y = 8/2
print(x, y)
print(type(x), type(y))
실행 결과를 확인해 보시면 1.567 4.0 <class 'float'> <class 'float'> 값을 확인할 수 있습니다.
- 1행 변수 x에 1.567을 저장한다. 1.567은 실수형이기 때문에 변수 x는 실수형 데이터 형을 가지게 됩니다.
- 2행 8/2는 8을 2로 나눈 결과로 4.0이 됩니다. 정수를 정수로 나누 결과는 실수형이 됩니다.
- 3행 변수 x와 y의 값을 출력합니다. print() 함수를 이용할 때 괄호 안에 들어가는 항목을 콤마(,)로 구분하면 두 항목 사이에 공백(' ')이 하나 생기면서 두 항목이 하나의 줄에 연달아 출력됩니다.
- 4행 print(type(x), type(y))는 실행 결과에 나타난 것과 같이 변수 x와 y의 데이터 형을 출력합니다. 실행결과에 나타난 <class 'float'>에서 float는 'Floating Point'의 약어로 실수(또는 부동 소수점)의 데이터 형을 의미합니다.
문자열
문자열(String)은 하나 또는 다수의 문자로 구성된 데이터 형을 말합니다. 문자열을 사용할 때는 숫자와는 다르게 다음과 같이 해당 문자열 앞 뒤에 작은따옴표(') 또는 큰 따옴표(")를 붙여 사용해야 합니다.
다음 예제를 통해 문자열 데이터 형에 대해 알아보겠습니다.
a = 'x'
b = 'hello.'
c = '안녕하세요.'
print(a)
print(b)
print(c)
print(type(c))
실행 결과 x hello 안녕하세요 <class 'str'> 값을 확인할 수 있습니다.
- 1~3행 변수 a, b, c는 모두 문자열입니다. 이와 같이 문자열은 하나의 문자 또는 여러 문자로 구분됩니다.
- 5~7행 문자열 abc의 값을 화면에 출력합니다.
- 8행 type(c)는 문자열 c의 데이터 형을 얻는 데 사용합니다. 실행결과에 나타난 'str'은 string, 즉 문자열을 나타냅니다.
숫자형 40과 문자열 '40'에 대한 차이에 대해 알아보겠습니다.
a = 40
print(a)
print(type(a))
b = '40'
print(b)
print(type(b))
실행 결과 40 <class 'int'> 40 <class 'str'> 값을 확인할 수 있습니다.
- 1행 변수 a는 40의 값을 가집니다.
- 3행 print(type(a))의 실행 결과인 <class int>를 통하여 변수 a는 정수형 숫자임을 확인할 수 있습니다.
- 5행 '40'은 데이터가 작은따옴표로 둘러싸여 있기 때문에 변수 b는 문자열의 데이터 형을 가지고 있습니다.
- 7행 print(type(b))의 실행 결과가 <class str>이기 때문에 변수 b의 데이터 형이 문자열임을 확인할 수 있습니다.
40과 '40'의 차이
정수형 숫자 40은 실제 컴퓨터에 저장될 때 2진 형태인 1110과 같은 값으로 저장됩니다. 그러나 '40'은 키보드로 4와 0을 입력하는 것과 같은 방식으로 '4'와 '0'에 해당하는 컴퓨터 코드(아스키코드, UTF-8 등의 유니코드, EUC-KR 등)로 각각저장됩니다.쉽게 말하면 정수형 또는 실수형 데이터는 컴퓨터가 이해할 수 있는 2진수 형태로 변환되어 컴퓨터에 저장되고 문자열은 각각의 문자에 해당되는 약속된 코드 값이 컴퓨터 메모리에 저장되는 것입니다.
컴퓨터에서 말하는 숫자는 점수, 포인트, 길이, 무게 등 연산이 가능해야 하고, 방 번호나 번지수, 전화번호처럼 연산하지 않는 숫자는 문자열로 처리해야 하는 것입니다.
문자열 인덱스와 요소 추출
문자열의 인텍스는 문자열의 각 요소가 존재하는 위치를 나타내며 인덱스는 0부터 시작합니다.
다음 예제를 통해 문자열의 인덱스를 이용하여 문자열의 각 요소를 추출하는 방법에 대해 알아보겠습니다.
x = 'i am happy!'
print(x)
print(x[0])
print(x[0:3])
print(x[5:])
print(x[-1])
print(x[-3:])
print(x[-4:-2])
실행 결과 i am happy!, i, i a, happy!, !, py!, pp가 출력되는것을 확인할 수 있습니다.
- 1행 변수 x에 문자열 'i am happy!'를 저장한다.
- 3행 실행 결과의 첫 번째 줄에 나타난 것과 같이 전체 문자열 'i am happy!'를 출력합니다.
- 4행 x[0]은 문자열 x의 1번째 원소인 'i'를 의미한다. 따라서 print(x[0])는 실행결과 2번째 값과 같이 'i'를 출력합니다.
- 5행 x[0:3]은 문자열 인덱스 0부터 2까지의 요소 값을 의미합니다. 여기서 인덱스 3은 포함되지 않습니다.
- 6행 x[5:]는 문자열 x의 인덱스 5부터 끝까지의 쇼소, 즉 'happy!'를 의미합니다.
- 7행 x[-1]은 문자열 x의 끝에서 1번째 요소인 '!'를 의미합니다.
- 8행 x[-3:]은 문자열 x의 끝에서 4번째 요소인 'p'부터 끝까지인 'py!'를 의미합니다.
- 9행 x[-4:-2]는 문자열 x의 끝에서 4번째 요소인 'p'부터 끝에서 2번째 바로 전, 즉 끝에서 3번째 요소까지인 'pp'를 의미합니다.
문자열에서 사용되는 공백은
' '으로 나타내고, 이 공백도 다른 문자들과 같이 하나의 문자로 처리된다는 것에 유의하시기 바랍니다.
불
불(Bool) 데이터형은 참과 거짓 두 가지 값을 가지고 있습니다.
- True: 참
- False: 거짓
다음 예제를 통해 불(Bool) 데이터형에 대해 알아보겠습니다.
a = True
b = False
print(a)
print(b)
c = 20 > 30
print(c)
print(type(a))
실행 결과 True, False, False, <Class 'bool'>을 확인할 수 있습니다.
- 1,2행 변수 a와 b는 불의 데이형을 가지고 있습니다. 불은 앞서 말씀드렸듯 참, 거짓 두 가지 값을 가지고 있습니다.
- 6행 20
>30은 '20은 30보다 크다'는 것을 의미하는데 이 명제는 거짓이기 때문에 c 값은 False가 됩니다. - 9행 print(type(a))는 면수 a의 데이터형을 출력하는데, 실행결과에 나타난 <calss bool>은 불 데이터를 의미합니다.
6행에 사용된
>과 유사한 기호인>=,<,<=,==,!=등은 값을 비교한다는 의미에서 비교 연산자라고 합니다.
오늘은 데이터형 변수에 대해 알아보았습니다. 다음시간에는 숫자 연산을 배워보도록 하겠습니다.