본문 바로가기
→ 지식나눔/Python 기초 강좌

3. Python 기초 문법-수치 자료형

by DigitalJobs 2021. 12. 27.

3. Python 기초 문법-수치 자료형

 

자료형(Data Type)은 무엇인가?
자료형은 말 그대로, 데이터의 형식(DataType)을 말합니다. 파이썬에서는 수치 자료형부터 시작해서 문자 자료형, 튜플, 리스트, 사전 등 여러 가지의 자료형이 존재하며, 자료형을 보고서 데이터가 어떠한 데이터의 형식인지 알 수 있습니다. 파이썬에 내장되어 있는 함수인 type이란 함수를 통해서 객체의 타입을 살펴보도록 하겠습니다. 이 type이란 함수는 객체의 타입을 보여주며, 아래와 같이 사용합니다.
1  
2
3
4
5
6
7
8
>>> type(33)
<class 'int'>
>>> type(3.14)
<class 'float'>
>>> type(['1', '2', '3'])
<class 'list'>
>>> type(33331491491492)
<class 'int'>

위를 보시면 객체 33의 타입은 int로, 이는 정수(integer)를 의미합니다. 객체 3.14는 float이므로 실수(float)를 의미합니다. 그 아래에 있는 대괄호로 감싸진 녀석은 리스트라는 녀석인데, 이 리스트란 개념은 좀 더 뒤에 가서 설명합니다. 아직은 이것이 무엇인지 아실 필요는 없습니다. 수치 자료형, 문자 자료형, 리스트, 튜플, 사전 이런 식으로 차례대로 설명을 할 계획이며, 우선은 숫자를 나타내는 수치 자료형(Numeric Data Type)에 대해서 알아보도록 합시다.

 

1. 정수(Integer)

위에서 말한대로 파이썬에서 등장하는 int라는 녀석은 정수(Integer)의 약자입니다. 아래에 변수에 대입이 되는 객체들은 모두 정수형 객체이며, 그중에서도 가장 많이 쓰이는 10진수의 예입니다.

1  
2
3
4
>>> A = 5
>>> B = 10
>>> print(A, B)
5 10

정수를 10진수가 아닌 2진수, 8진수, 16진수로 인식하게 하고 싶으면 정수 앞에 각각 '0b', '0o', '0x'를 붙이시면 됩니다. 아래와 같이 말입니다.

1  
2
>>> print(0b10, 0o10, 0x10)
2 8 16

위에서 b는 2진수(binary), o는 8진수(octal), x는 16진수(hexadecimal)라는 의미입니다. 반대로 10진수를 각각 2진수, 8진수, 16진수의 형태로 변환하려면 bin, oct, hex 함수를 사용하시면 됩니다.

1  
2
3
4
5
6
>>> bin(202020)
'0b110001010100100100'
>>> oct(20114)
'0o47222'
>>> hex(401000)
'0x61e68'

여기서 주의하셔야 할 부분은, 위에 보시면 출력되는 결과가 정수가 아니라 문자열이라는 것입니다. 즉, 'hex(40) - 20'과 같은 연산에서 hex(40)이 내보내는 결과는 문자열(string), 20은 정수(integer)이니 타입이 맞지 않아 서로 연산을 하지 못합니다. 문자열에 대해서는 다음 편인 문자열 강좌에서 다루니 궁금하신 분은 미리 살펴보고 오셔도 괜찮습니다.

 

그리고 아래의 그림에서 볼 수 있듯이 Python에서의 연산자 종류를 미리 익혀두시면 예제를 이해하는데 큰 도움이 될 것입니다.

 

2. 실수(Float)

파이썬에서 등장하는 float라는 녀석은 부동 소수점(Floating point)의 약자이며, 부동 소수점이란 정수처럼 소숫점이 고정되어 있는 게 아니라 부동이란 의미 그대로 고정되어 있지 않고 움직인다는 말입니다. 이 방식은 컴퓨터에서 실수를 표현하는 방식이며, 소수점의 위치를 나타내는 수를 따로 기록합니다. 앞으로 float라는 단어가 나오면, 이는 부동 소수점이 아니라 실수라는 의미로 설명하도록 하겠습니다. 아래의 예제에서 변수에 대입되는 객체는 모두 실수 형태의 객체라고 말할 수 있습니다.

1  
2
3
4
>>> A = 3.14
>>> B = 5.1402020319
>>> print(A, B)
3.14 5.1402020319

위처럼 실수를 표현하는 방식도 있겠지만, 다른 방식으로는 지수 표기법이라는 것으로 아래와 같이 실수를 표현하는 방식이 존재합니다.

1  
2
3
4
>>> 0.23193202032E8
23193202.032
>>> 1412232.22E-10
0.000141223222

위 코드에서 E는 지수(Exponent)라는 의미이며, 대문자가 아니더라도 소문자 역시 똑같은 의미로 사용됩니다. 위의 예제에서 0.23193202032E8는 0.23193202032 * 10^8이라고 보시면 됩니다. 여기서 10^n은 10의 n승이라는 것입니다. 즉, 0.23193202032 곱하기 10의 8승은 23193202.032라는 값을 지니고, 1412232.22 E-10에서는 10^-10이니 이것은 1412232.22 곱하기 10의 마이너스 10승을 의미하며, 0.000141223222라는 값을 가집니다.

 

3. 복소수(Complex)

파이썬에선 정수와 실수뿐만 아니라 좀더 넓은 개념인 복소수까지도 내부적으로 지원합니다. 여기서 주의하셔야 할 부분은 허수 단위가 i가 아니라 j 또는 J라는 것입니다. 우선은 아래의 예제를 보도록 합시다.

1  
2
3
4
5
6
7
8
9
>>> x = 7 - 3j
>>> type(x)
<class 'complex'>
>>> x.imag
-3.0
>>> x.real
7.0
>>> x.conjugate()
(7+3j)

위 예제에서 imag는 복소수의 허수 부분을 돌려주고, real은 복소수의 실수 부분을 되돌려줍니다. 그리고 conjugate 함수는 복소수의 켤레 복소수를 되돌려줍니다. 물론 정수와 같이 복소수끼리도 연산이 가능합니다. 복소수가 아직 뭔지 모르시는 분들은 복소수를 따로 보고 오셔도 되고, 아니면 파이썬에도 이런 게 있구나 하고 그냥 넘어가셔도 됩니다.

 

↘↘↘↘↘↘↘교육관련문의↘↘↘↘↘↘↘↘

https://blog.naver.com/grinbi0921

 

IT+LIFE : 네이버 블로그

Programming(C,C++,JAVA) CAD(ATC,CADTC) 정보보안, 스크래치, COS, COSPro

blog.naver.com

 

댓글