3.1.1 Numbers
인터프리터는 간단한 계산기처럼 작동합니다. 우리는 인터프리터에 식을 입력할 수 있고, 인터프리터는 그 식에 대한 답을 알려줍니다. (이렇게 답을 내놓는 것을 '출력한다' 고 표현합니다.) 식의 문법은 단순합니다. 연산기호 +
, -
, *
, /
는 다른 대부분의 언어(Pascal 또는 C)에서와 마찬가지로 작용합니다. 괄호( )
는 그룹을 만드는 데 사용합니다.
>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5 # 나누기 "/"는 언제나 부동소수점 수를 답으로 내놓습니다.
1.6
파이썬에서 정수는 int
(integer), 소수점 아래까지 나타나는 것은 float
라고 부릅니다. 튜토리얼을 진행하며 파이썬에서 숫자를 사용하는 방법에 대해 더 자세히 알아가겠습니다.
integer : 정수
floating point : 부동소수점
나누기 /
의 결과는 항상 소수점 아래까지 나타납니다. floor division //
을 사용하면 언제나 정수를 결과로 얻을 수 있습니다. 나눗셈의 나머지를 버리고 몫만 알려주기 때문입니다. 반면 %
는 나눗셈의 나머지만 답으로 알려줍니다.
>>> 17 / 3 # 기본적인 나누기 / 는 소수점 이하까지 포함한 답을 알려줍니다.
5.666666666666667
>>> 17 // 3 # floor division // 은 소수점 이하를 버리고 답을 알려줍니다.
5
>>> 17 % 3 # 반대로 % 는 나눗셈의 나머지 부분만 알려줍니다.
2
파이썬에서 **
는 제곱수를 의미합니다.1
>>> 5 ** 2 # 5의 2제곱(5의 2승)
25
>>> 2 ** 7 # 2의 7제곱(2의 7승)
128
=
(등호)는 변수에 값을 정해주는데 사용합니다. 변수의 값을 설정한다고 곧바로 어떤 일이 일어나지는 않습니다. 관련된 명령을 해야 반응이 나타납니다.
>>> width = 20 #width라는 변수에 20이라는 값을 설정합니다.
>>> height = 5 * 9 #height라는 변수에는 5*9라는 값을 설정합니다.
# 변수에 값을 설정해도, 관련된 명령을 하기 전에는 아무 일도 일어나지 않습니다.
>>> width * height
900
변수에 값이 설정(할당)되지 않은 경우 오류가 생깁니다.
>>> n # n이라는 변수에 값이 설정지 않은 상태입니다.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined
# 변수 n의 값이 설정되어 있지 않다는 오류메시지가 나타납니다.
파이썬은 부동소수점을 완벽히 지원합니다. 계산식 안에 여러가지 유형의 숫자가 섞여있을 때, 그 중 float 이 존재하면 답 역시 float으로 나오게 됩니다.
>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5
대화형모드를 사용할 때, 마지막 계산의 값은 _
변수에 할당됩니다. 즉, 우리가 파이썬을 계산기로 사용할 경우 편하게 연속적인 계산을 할 수 있습니다.
>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _ # _ 부분에 바로 위 계산의 답인 12.5625가 들어갑니다.
113.0625
>>> round(_, 2) # _ 부분에 바로 위 계산의 답인 113.0625가 들어갑니다.
113.06
이 변수는 읽는 용도로만 사용해야 하며, 특정한 값을 지정하면 안됩니다. 그 경우 내장함수와 그 기능을 덮어버리는 독립적인 지역변수가 만들어지기 때문입니다.
파이썬은 정수와 float 외에도 소수(=decimal)와 분수(=fraction) 등 다양한 타입의 숫자를 지원합니다. 복잡한 형식의 수를 표현할 수 있고, j
나 J
를 접미사로 사용하여 허수를 나타낼 수도 있습니다. (e.g. 3+5j
)
각주1
**
가 -
보다 먼저 계산되기 때문에 -3**2
의 값은 -9
가 된다. 9를 답으로 얻고 싶다면 (-3)**2
를 사용해야 한다.