본문 바로가기

프로그래밍/Python

파이썬 강좌 :: 05. 정수와 실수를 위한 자료형


여러분 안녕하세요! 저번 강좌에서 변수에는 데이터를 저장할 수 있고 변수의 자료형은 데이터의 형태에 따라 달라진다고 말씀드렸어요. 이번 강좌부터 몇강좌에 걸쳐서 파이썬에서 제공하는 기본 자료형들에 대해 알아보는 시간을 갖도록 할거에요.


기본 자료형이란 파이썬에서 기본적으로 제공하는 자료형이에요. 예를 들어 이번 강좌에서 배울 정수, 실수 자료형이 있고, 또 참과 거짓을 위한 자료형도 있어요. 자 그럼 정수와 실수를 위한 자료형부터 천천히 알아보도록 할까요?


목차

1. 정수를 위한 자료형

2. 실수를 위한 자료형

3. 정수와 실수의 연산




1. 정수를 위한 자료형


프로그래밍에서 정수소숫점이 없는 수를 의미해요. 예를 들어 300 200 100은 정수지만 1.5 3.14 8.12는 정수가 아닌 실수에요. 그럼 실제로 x라는 변수에 정수 데이터를 대입하고 자료형을 확인해보도록 할게요.


>>> x = 10

>>> type(x)

<class 'int'>


어떤 변수의 자료형을 확인하는 방법은 type이라는 이름의 함수를 사용하는 것이에요. type이라는 이름과 함께 소괄호에 변수의 이름을 적은 후 엔터를 누르면 해당 변수의 자료형이 출력된답니다.


출력된 내용을 보면 <class 'int'> 라고 적혀있어요. 이 말은 변수 x의 자료형이 'int'라는 얘기와 같아요. 여기서 같이 출력된 class라는 단어는 지금은 자료형이라고 생각하셔도 되요. 나중에 객체 지향에 대해서 공부를 하면서 다시 언급할거에요.




2. 실수를 위한 자료형


위에서도 언급했지만 수에 소숫점이 존재하면 그것은 무조건 실수에요. 예를 들어 1.5 3.14 8.12는 소숫점이 있기때문에 실수로 취급되요. 마찬가지로 y라는 변수에 실수 데이터를 대입하고 자료형을 확인해보도록 할게요.


>>> y = 3.14

>>> type(y)

<class 'float'>


출력된 내용을 통해 실수가 저장된 변수 y의 자료형은 'float'임을 확인할 수 있어요.




3. 정수와 실수의 연산


프로그래밍 세계에서 연산은 같은 자료형끼리만 수행되요. 예를 들어 정수는 정수끼리만 연산할 수 있고 실수는 실수끼리만 연산할 수 있어요. 다른 자료형들도 마찬가지에요.


그렇다면 우리는 정수와 실수를 연산할 수 없는 걸까요? 예를 들어 10 + 3.14 같은 연산은 수행할 수 없는 걸까요? 그렇지않아요. 분명 프로그래밍에서 연산은 같은 자료형끼리만 수행되지만 우리는 정수와 실수를 연산할 수 있어요. 다음 코드를 보세요.


>>> z = 10 + 3.14

>>> z

13.14

>>> type(z)

<class 'float'>


정수(10)와 실수(3.14)를 더한 값을 변수 z에 대입하니 우리가 생각한대로 13.14라는 값이 대입되었어요. 마찬가지로 13.14라는 값은 실수니까 변수 z의 자료형도 float형임을 확인할 수 있네요. 어떻게 된걸까요? 분명 연산은 같은 자료형끼리만 수행할 수 있는데 말이에요.


그 비밀은 암묵적인 형변환에 있어요. 파이썬 인터프리터는 똑똑해서 정수와 실수를 연산하려고 시도한다면 정수를 실수로 조용히 변환해버린답니다. 즉 우리가 작성한 'z = 10 + 3.14' 코드는 다음과 같이 바뀌어요.


z = 10.0 + 3.14


보시면 정수(10)이 실수(10.0)로 변환되요. 실수 쪽이 아닌 정수 쪽이 변환되는 이유는 간단해요. 실수를 정수로 변환하면 데이터를 잃어버릴 수 있기 때문이에요. 3.14를 정수로 바꾸면 3이 되버리는데 0.14에 대한 데이터가 사라지면 계산의 정확성이 떨어지겠죠?