정수형 : 소수점이 없는 숫자 (integer)
실수형 : 소수점이 있는 숫자 (floating point, 부동 소수점)
부동 소수점은 프로그래밍을 하면서 반드시 알아둬야 할 단어입니다.
실수형의 경우 52.273을 0.52273 * 10²와 같이 소수점의 위치를 바꿔도 결국 같은 숫자이므로,
'소수점이 움직이는 숫자'라는 의미로 부동 소수점이라고 표현합니다!
숫자 출력해보기
>>> print(273)
273
>>> print (52.273)
52.273
둘의 자료형을 확인해보겠습니다.
앞의 포스팅에서 자료형을 확인할 때는 type()함수를 사용한다고 언급했었죠?
>>> print(type(52))
<class 'int'>
>>> print(type(52.273))
<class 'float'>
int는 integer(정수)의 앞 세 글자를 떼어 표현한 것이고,
float은 floating point(부동 소수점 = 실수라는 뜻)의 앞 단어에서 가져온 것입니다.
0을 print할 때와 0.0을 print할 때는 각각 어떤 결과가 나올까요?
결론은 둘다 0이니 똑같은 결과가 나올까요?
직접 입력해 확인해봅시다!
>>> print(0)
0
>>> print(0.0)
0.0
>>> print(type(0))
<class 'int'>
>>> print(type(0.0))
<class 'float'>
똑같은 0을 나타내는 숫자이지만 0.0은 부동소수점을 포함하고 있기 때문에 float이 출력되는 걸 확인할 수 있습니다.
파이썬에서 지수 표현
수학 연산, 인공지능 알고리즘을 보면
0.52273e2 또는 0.52273E2 등의
특이한 숫자 표현을 볼 수 있습니다.
이는 파이썬에서 부동 소수점을 지수승으로 표현하는 방법입니다!
0.52273 * 10²를 0.52273e2 혹은 0.52273E2라고 표현하는 것입니다.
>>> 0.52273e2
52.273
>>> 0.52273e-2
0.0052273
숫자 연산자
사칙연산자: +, -, *, /
순서대로 더하기, 빼기, 곱하기, 나누기를 의미합니다.
이것들은 모두 알고 있을 것이라 생각하고 예시만 보고 넘어가도록 하겠습니다^^
>>> print("5 + 7 =", 5 + 7)
5 + 7 = 12
>>> print("5 - 7 =", 5 - 7)
5 - 7 = -2
>>> print("5 * 7 =", 5 * 7)
5 * 7 = 35
>>> print("5 / 7 =", 5 / 7)
5 / 7 = 0.7142857142857143
정수 나누기 연산자: //
위에서 보면, 5 / 7 의 연산자는 소수점까지 모두 표시되었죠?
정수 나누기 연산자 // 는 소수점 이하의 자릿수를 떼어 버린 후, 정수 부분만 남기는 연산자입니다!
>>> print("3 / 2 = ", 3 / 2)
3 / 2 = 1.5
>>> print("3 // 2 =", 3 // 2)
3 // 2 = 1
나머지 연산자: %
a % b 연산자는 a를 b로 나눴을 때의 나머지를 표시하는 연산자입니다.
확인해볼까요?
>>> print("5 % 2 =", 5 % 2)
5 % 2 = 1 #몫 = 2, 나머지 = 1
※ 현재는 이 나머지 연산자는 왜 필요한거지...? 싶지만 많이 사용하는 연산자이므로 기억해 둬야 합니다!
제곱 연산자: **
파이썬에서는 숫자를 제곱해주는 제곱 연산자가 있습니다. C와 다르게 말이죠!
예를 들어, 2⁴ 는 2**4로 표시합니다.
>>> print("2 ** 1 =", 2 ** 1)
2 ** 1 = 2
>>> print("2 ** 2 =", 2 ** 2)
2 ** 2 = 4
>>> print("2 ** 3 =", 2 ** 3)
2 ** 3 = 8
>>> print("2 ** 4=", 2 ** 4)
2 ** 4= 16
연산자 우선순위
연산에는 우선순위가 존재합니다. 파이썬에서도 마찬가지로 적용됩니다!
5 + 3 * 2
위의 예시는 어떻게 실행될까요?
3 * 2가 먼저 계산되고 5가 더해지겠죠?
좀 더 어려운 예시를 봅시다.
>>> print(2 + 2 - 2 * 2 / 2 * 2)
0.0
>>> print(2 - 2 + 2 / 2 * 2 + 2)
4.0
우선순위에 따라 직접 계산해보시길 바랍니다.
하지만 이런 방법을 권장하진 않습니다.
이렇게 하면 한 눈에 무엇이 먼저 연산되었는지 보이지 않기 때문에,
가독성이 떨어집니다.
따라서 연산자 우선순위가 확실한 경우에도 다음과 같이 괄호로 감싸주는 것이 좋습니다!
(연산자 우선순위가 헷갈린다면 괄호를 사용하시길 바랍니다.)
( 5 + 3 ) * 2
5 + ( 3 * 2 )
TypeError 예외
서로 다른 자료를 연산하면 TypeError라는 예외가 발생합니다.
언제 발생하는 오류인지 확인해보겠습니다.
>>> string = "문자열"
>>> number = 273
>>> string + number
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
string + number
TypeError: can only concatenate str (not "int") to str
문자열과 숫자를 + 연산자로 연결했습니다.
문자열은 + 연산자를 '문자열 연결 연산자'로 사용하려 하고,
숫자는 + 연산자를 '덧셈 연산자'로 사용하려고 하니 충돌이 발생한 것입니다.
위와 같은 오류가 발생했다면 서로 다른 자료를 연산한 것입니다. 잘 기억해 두시길 바랍니다.
다음 장에서는 변수를 선언하고, 할당하고, 참조하는 방법에 대해 알아보겠습니다.
input() 함수와 int() 함수, float() 함수와 str() 함수에 대해서도 알아보고, 그 때 발생하는 예외도 설명하겠습니다.
'ProgrammingLanguage > Python' 카테고리의 다른 글
02 파이썬 자료형 | 문자열, Syntax Error (0) | 2021.02.12 |
---|---|
01 파이썬 시작하기 | 표현식, 키워드, 식별자, 주석, print() (0) | 2021.02.12 |