brunch

You can make anything
by writing

C.S.Lewis

by 미래지기 Jul 07. 2024

사칙연산

* | Asterisk, 별표, 별사탕


이제 더하기, 빼기, 곱하기, 나누기를 해 보겠습니다.


print(2 + 5) 을 코딩하면 7이 출력되겠지요?


맞습니다. 이 때 숫자를 계산하는 기호 '+'를 가리켜 '연산자'라고 합니다.


연산자  operator


'계산'과 '연산'은 비슷한 말이지만, '연산'은 수치계산이나 수학에서 주로 쓰는 말이고, '계산'은 더 광범위하게 쓰는 말입니다.


가장 기본적인 연산자는 아래와 같은 4 가지가 있습니다.


더하기 +

빼기 -

곱하기 *

나누기 /


일상 생활에서 곱셈을 할 때는 'x'라는 기호를 쓰지만, 코딩에서는 보통 별표(*)를 씁니다. 또, 나눗셈을 할 때는 '÷'가 아니라 '/' 기호를 씁니다. 이것은 약속입니다.


파이썬에서는 '2 곱하기 11'을 다음과 같이 코딩합니다.


print(2 * 11)


"10 나누기 3"은 다음과 같이 코딩합니다.


print(10 / 3)


다음 이미지를 한 번 보세요.


그럼 "2 + 10 - 4 * 11 / 3 + 6" 같은 긴 식도 한 번에 쓰면 되나요?


물론입니다. 아래 처럼 쓰면 되겠지요?


print(2 + 10 - 4 * 11 / 3 + 6)


그런데, 여기서 한 가지 기억해야 할 것이 있습니다. 사칙연산에는 순서가 있습니다. '곱셈'과 '나눗셈'이 '덧셈'과 '뺄셈'보다 먼저 계산된다는 것입니다.


'*' 나 '/' 연산이
'+'나 '-'보다
먼저 실행된다.


그래서 "2 + 10 - 4 * 11 / 3 + 6" 같은 식은 왼쪽부터 오른쪽으로 하나씩 순서대로 계산되는 게 아니라, 곱셈이나 나눗셈이 먼저 계산되고, 그 다음에 덧셈과 뺄셈이 계산됩니다.


print(2 + 10 - 4 * 11 / 3 + 6)


위의 코드를 실행해 보세요. 아래와 같은 답이 나올 것입니다.


 3.333333333333334


그럼, "3 + 6"을 맨 먼저 계산하고 싶으면 어떻게 하면 되나요?


아주 좋은 질문입니다.

원하는 부분을 우선적으로 먼저 연산하고 싶다면, 그 부분을 괄호( )로 감싸면 됩니다. 아래처럼 말입니다.


print(2 + 10 - 4 * 11 / (3 + 6))


그럼 "3 + 6"을 먼저 연산하게 됩니다. 그래서 위의 코드는 아래 코드와 같은 내용입니다.


print(2  + 10 -  4 * 11 / 9)


출력된 답은 "7.111111111111111"입니다.


자, 아래 코드를 실행해 보세요.


print( 20 - 5 / 8 - 1 * 1.2 / 4 - 1 )


그리고 아래와 같이 바꾼 코드도 실행해 보세요.


print( (20 - 5) / (8 - 1) * 1.2 / 4 - 1 )


출력된 값이 서로 다르지요?




Quiz


아래와 같은 숫자 네 개를 어떻게 연산해야 '19'가 출력될까요?


0  4  4  5  1


힌트 : 덧셈, 뺄셈, 곱셉, 나눗셈 연산자를 한 번씩만 사용합니다.


답은 댓글에 있습니다. ^^


▨ 미래지기

이전 05화 문자와 숫자를 화면에 출력해 보자
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari