지금까지 컴퓨터는 문자와 숫자를 입력받아 계산한다고 배웠습니다. 오늘은 그 문자와 숫자에 대해서 조금 더 자세하게 알아보겠습니다.
모든 프로그래밍 언어에서 자료는 변수에 저장됩니다.
자료 data
변수 variable
문제는 자료의 종류입니다. 자료의 종류는 얼마나 될까요? 구체적으로는 열 가지가 넘습니다. 지금까지 우리는 그중에서 단 두 가지만을 배웠을 뿐입니다.
'자료의 종류'를 영어로는 'data type'이라고 합니다. 흔히 '자료형'이라고 부르고 있습니다. 여기서 '형'은 형, 동생의 그런 호칭이 아닙니다. 유형 類型이라는 뜻입니다. '자료의 유형', 즉 컴퓨터로 입력할 수 있는 자료의 유형에는 도대체 어떤 종류가 있느냐는 것입니다. 프로그래밍 언어를 만든 사람들이 미리 유형을 정해놓은 것이지요. 아무렇게나 입력할 수는 없으니까요.
자료형 資料型 data type
파이썬이라는 언어에서 정의해 놓은 자료형은 7가지 종류로 나눌 수 있습니다. 그중에서 오늘은 세 가지만 알아보겠습니다.
1. 숫자형 Numeric
프로그래머는 컴퓨터에 숫자를 입력합니다. 이 숫자는 3가지 종류로 나누어집니다. 정수, 실수, 복소수입니다. 갑자기 수학 시간이 된 것 같지요? 조금만 인내심을 발휘해서 읽어보시기 바랍니다.
a = 3
위의 코드는 우리가 여러 번 작성했던 코드입니다. 익숙하죠? 원주율 3.14도 숫자니까 아래처럼 변수에 저장할 수 있습니다.
pi = 3.14
그럼 복소수는 어떻게 저장할까요? 다음과 같습니다.
c = 3 + 4j
정수 integer
실수 float
복소수 complex
정수는 양의 부호 +와 음의 부호 -를 붙일 수 있는 자연수를 말합니다. 아래와 같습니다.
... -3, -2, -1, 0, 1, 2, 3 ...
실수는 유리수와 무리수를 통틀어 부르는 말입니다. 원래 '실수'는 영어로 'real number'라고 합니다. 그러나 파이썬에서는 실수를 'float'이라고 부릅니다. 그 이유는 나중에 설명하겠습니다.
float /ˈfɫoʊt/ : 뜨다, 떠가다
아래와 같은 수는 모두 실수입니다.
3.14
-0.3
-1.44
복소수에 대해서는 나중에 기회가 되면 설명하도록 하겠습니다.
이제 변수에다 정수와 실수를 각각 저장해 볼까요?
a = 3
b = 3.14
그럼 0은 정수인가요, 실수인가요?
예리한 질문입니다.
정수도 되고, 실수도 될 수 있습니다. 아니, 정확하게 말하면 정수로 저장하거나, 실수로 저장할 수 있습니다. 아래 변수 d에 저장된 숫자는 정수입니다. 그리고 변수 e에 저장된 숫자는 실수입니다.
d = 0
e = 0.0
아하! 소수점이 있으면 실수로 취급되는군요?
그렇습니다.
2. 문자형 Str
이제 문자형을 알아보겠습니다. 사실 문자형에 대해서는 지금까지 코딩을 하면서 거의 다 배웠습니다. 문자열은 자료를 큰따옴표나 작은따옴표로 감싼다는 것, 그리고 특이하게 + 와 * 연산자를 사용할 수 있다는 것만 잊지 마시기 바랍니다.
x = 3
y = "3"
위의 코드에서 변수 x에 저장된 자료는 정수입니다. 그리고 변수 y에 저장된 자료는 문자열(string)입니다.
str1 = 'abc'
str2 = "def"
print(str1 + str2)
위의 코드를 실행하면 "abcdef"가 출력됩니다. 두 개의 문자열이 연이어 출력되었습니다. 문자열에서 + 기호는 그런 뜻입니다.
str3 = 'abc'
print(str3 * 5)
위의 코드를 실행하면 "abcabcabcabcabc"가 출력됩니다. 문자열이 곱한 수만큼 반복해서 연이어 출력되었습니다. 문자열에서 * 기호는 그런 뜻입니다.
3. 불리언 Bool
a라는 변수가 하나 있습니다.
이 변수에는 정수(integer)를 저장할 수 있습니다. -10이든지, 2024든지 (범위가 허락하는 한) 그 어떤 정수도 저장할 수 있습니다. 연도를 저장할 수도 있고, 나이도 저장할 수 있습니다. 내가 가지고 있는 연필의 총개수도 저장할 수 있습니다. 이 변수를 '정수형'으로 사용한다면 말입니다.
이 변수에는 실수(float)도 저장할 수 있습니다. 150.50도 저장할 수 있고 0.008902 같은 수도 저장할 수 있습니다. 가격을 저장할 수도 있고, sine 30도의 값이나 2차 방정식의 근도 저장할 수 있습니다. 이 변수를 '실수형'으로 사용한다면 말입니다.
그런데, 경우에 따라서는 단 두 가지의 값만 저장해야 하는 일이 생깁니다. 다른 값은 저장할 수 없습니다. 마치 '흑' 아니면 '백'처럼, 마치 '1' 아니면 '0'과 같이, 단 두 가지 값 중 하나만 허용되는 자료형이 있습니다. 이것을 가리켜 '불리언'이라고 합니다.
불리언 boolean
이 자료형의 이름은 '조지 불 George Boole'이라는 19세기 영국 수학자의 이름에서 따 온 말입니다. '조지 불'은 기호논리학의 창시자입니다. 초창기 프로그래머들이 그의 업적을 기린 것이죠.
George Boole
아니, 정말 '불'이라는 이름을 가진 사람이 있다고요?
물론이죠, 심지어 '분'이라는 이름을 가진 사람도 있죠. 들어 보셨나요, '팻 분'이라고?
Charles Eugene Pat Boone
감미로운 음색으로 사랑받는 팝스타죠. 1934년 생이신데 아직 살아계시고요. 이 분은 크리스마스 캐럴로 유명했습니다. 뭐, 지금도...
암튼... 쿨럭!
본론으로 돌아와서.
그래서, 이 불리언이라는 자료형은 '참'이냐 '거짓'이냐만 저장할 수 있는 자료형입니다.
참 true
거짓 false
참은 True (대문자 T로 시작), 그리고 거짓은 False (대문자 F로 시작)입니다. 이 값은 특이하게 대문자로 시작해야 합니다. 소문자로 그냥 'true'라고 쓰고 싶다고요? 그럼 에러 메시지를 보게 될 것입니다. 'true'라는 값은 없고, 'True'라는 값은 있습니다. 파이썬을 만든 사람이 그렇게 하자고 정한 것입니다.
그래서...
a라는 변수에 불리언 값을 저장하려면 아래와 같이 씁니다.
a = True
또는
a = False
아래 코드를 작성해서 실행해 보세요.
a = True
b = False
print(a)
print(b)
그럼, 이 불리언 자료형은 언제 어떻게 쓰는 건가요?
불리언은 사칙연산이 아니라 주로 '비교'를 할 때 사용됩니다. 비교에 대해서는 나중에 설명하겠습니다.
자, 오늘은 여기까지입니다. 어떠셨나요? 오늘 설명하지 않은 나머지 자료형 네 가지는 다음에 알려드리겠습니다.