파이썬에서는 숫자의 자료형에 따라 결과가 달라질 수 있으므로 정확하게 구분할 필요가 있다.
파이썬에서는 숫자를 정수, 실수, 복소수로 구분한다.
>>>
에 계산식(1+1)을 입력한 뒤 엔터 키를 누르면 결괏값 (2)이 나온다.# 덧셈
>>> 1 + 1
2
# 뺄셈, 곱셈
>>> 1 - 2
-1
>>> 2 * 2
4
# 나눗셈
>>> 5 / 2 # ÷ 기호 대신 /를 사용
2.5
>>> 4 / 2
2.0 # 완전히 나누어 떨어져도 실수 출력
//
로 나눗셈을 하면 나눗셈 결과가 정수로 나온다.//
은 버림 나눗셈(floor division)이라고 부르며 나눗셈의 결과에서 소수점 이하는 버린다.//
연산자를 사용하면 결과는 실수가 나오며 소수점 이하는 버린다.>>> 5 // 2
2
>>> 4 // 2
2
# 실수에 사용하면 실수가 나온다.
# 결과는 항상 .0
>>> 5.5 // 2
2.0
>>> 4 // 2.0
2.0
>>> 4.1 // 2.1
1.0
%
는 두 수를 나누었을 때 나머지만 구한다.//
)으로 구할 수 있다.>>> 5 % 2
1
**
은 거듭제곱 연산자이며 숫자를 특정 횟수만큼 곱한다.>>> 2 ** 10
1024
int
는 정수(integer)를 뜻하며 값을 정수로 만들어 준다 (소수점 이하는 버림)int
에 괄호를 붙이고 숫자 또는 계산식을 넣으면 된다.int
에 문자열을 넣어도 정수로 만들 수 있으나 정수로 된 문자열이라야 한다.>>> int(3.3)
3
>>> int(5 / 2)
2
>>> int('10')
10
type
은 객체의 타입(자료형)을 알아내는 함수>>> type(10) # 파이썬에서는 숫자도 객체(object)이다
<class 'int'> # 객체는 클래스(class)로 표현
* int
는 정수의 자료형이다.
📎 참고) 몫과 나머지 함께 구하기
몫과 나머지를 함께 구하려면 divmod를 사용>> divmod(5, 2) (2, 1) # 튜플
5를 2로 나누었을 때 몫은 2, 나머지는 1이며 결과는 (2, 1) 형태로 나온다.
>> quotient, remainder = divmod(5, 2) >> print(quotient, remainder) 2 1
튜플은 변수 여러 개에 저장할 수 있는데 divmod의 결과가 튜플로 나오므로 몫과 나머지는 변수 두 개에 저장 가능
📎 참고) 진수, 8진수, 16진수
정수는 10진수 이외에도 2진수, 8진수, 16진수로도 표현할 수 있다.
- 2진수: 숫자 앞에 0b를 붙이며 0과 1을 사용합니다.
- 8진수: 숫자 앞에 0o(숫자 0과 소문자 o)를 붙이며 0부터 7까지 사용합니다.
- 16진수: 숫자 앞에 0x 또는 0X를 붙이며 0부터 9, A부터 F까지 사용합니다(소문자 a부터 f도 가능).
>> 0b110 6 >> 0o10 8 >> 0xF 15
# 실수 덧셈
>>> 3.5 + 2.1
5.6
# 실수 뺄셈
>>> 4.3 - 2.7
1.5999999999999996
>>> 1.5 * 3.1
4.65
>>> 5.5 / 3.1
1.7741935483870968
컴퓨터는 실수 표현 시 오차가 발생한다.
>>> 4.2 + 5
9.2
float
는 부동소수점(floating point)에서 따왔으며 값을 실수로 만들어 준다.float
에 괄호를 붙이고 숫자 또는 계산식을 넣으면 된다.float
에 문자열을 넣어도 실수로 만들 수 있으나 실수 또는 정수로 된 문자열이라야 한다.float
자료형>>> float(5)
5.0
>>> float(1 + 2)
3.0
>>> float('5.3')
5.3
# 자료형 확인
>>> type(3.5)
<class 'float'>
📎 참고) 복소수
파이썬에서는 실수부와 허수부로 이루어진 복소수(complex number)도 사용할 수 있다. 허수부는 숫자 뒤에 j를 붙인다.
두 실수를 복소수로 만들 때는 complex를 사용하면 된다.>> 1.2+1.3j (1.2+1.3j) >> complex(1.2, 1.3) (1.2+1.3j)
>>> 35 + 1 * 2
37
>>> (35 + 1) * 2
72
국립환경과학원에서는 아파트에서 소음이 가장 심한 층수를 구하는 계산식을 발표했습니다. 소음이 가장 심한 층은 0.2467 * 도로와의 거리(m) + 4.159입니다. 다음 소스 코드를 완성하여 소음이 가장 심한 층수가 출력되게 만드세요. 단, 층수를 출력할 때는 소수점 이하 자리는 버립니다(정수로 출력).
print( )
# 실행결과
7
# 정답
int(0.2467 * 12 + 4.159)
소음이 가장 심한 층수를 구하는 계산식은 0.2467 * 도로와의 거리(m) + 4.159라고 했으므로 0.2467에 12를 곱한 뒤 4.159를 더해주면 된다.
계산 결과는 7.1194가 나오지만 층수로 표현해야 하므로 int
에 계산식을 넣어서 결과를 정수로 만들어 준다.