파이썬의 연산자

프로그래밍을 위해 꼭 알아야 할 절대지식.

파이썬은 다른 프로그래밍 언어와 마찬가지로 기본 연산과 비교 연산 그리고 논리 연산을 위한 연산자를 제공합니다. 여기서 소개하는 파이썬의 연산자는 나눗셈의 몫과 거듭 제곱을 구하는 연산자와 같이 특수한 문법을 제외하면 대부분의 모든 프로그래밍 언어에서 기본적으로 제공되는 기능으로, 실제로 사용하는 문법도 거의 차이가 없다고 할 수 있습니다.

사실 파이썬이 아니더라도 연산자는 모든 프로그래밍의 기초라고 할 수 있죠. 기초라는 것은 반드시 알아야 한다는 의미겠죠? 모든 프로그래밍 언어의 기본이 되는 연산자라는 것은 어떤 것일까요? 각각의 연산자에 대해 알아보겠습니다.

기본 연산자

파이썬은 사칙 연산과 같은 기본적인 연산을 수행할 때 아래와 같이 덧셈과 뺄셈, 곱셈, 나눗셈 연산자를 사용합니다.

연산자 설명
+ 덧셈
뺄셈
* 곱셈
/ 나누기
// 나눗셈의 몫 구하기
% 나눗셈의 나머지 구하기
** 거듭제곱(하나의 수를 반복하여 곱함)

덧셈과 뺄셈 연산자는 우리가 이미 알고 있는 사칙 연산 기호와 같죠? 그런데 곱셈과 나눗셈 연산자는 조금 다르게 생겼네요? 아마 컴퓨터를 잘 모르는 사람에게는 생소한 기호처럼 보일 것 같습니다. 우리가 학교에서 배운 곱셈 기호는 X 이고 나눗셈 기호는 ÷ 이었으니까요. 그런데 파이썬만이 아닌 대부분의 프로그래밍 언어에서 곱셈은 X 대신 *를 사용하고 나눗셈은 ÷ 대신 /를 사용합니다. 파이썬은 여기에 추가적으로 //, % 기호로 나눗셈의 몫과 나머지를 구할 수 있고, ** 기호로 거듭 제곱을 구할 수 있습니다.

이미 컴퓨터에 익숙한 사람이라면 X 대신 *, ÷ 대신 /를 사용하는 것은 알고 있을 겁니다. 그런데 //와 %는 조금 낯설지도 모르겠네요. 표에서 볼 수 있는 것처럼 각각의 기호는 다음의 연산을 의미합니다.

/ = 나누기

// = 나눗셈의 몫

% = 나눗셈의 나머지

어렵지 않죠? 참고로 나눗셈의 나머지 연산은 숫자를 2로 나눴을 때 나머지가 0이면 짝수이고 1이면 홀수가 되기 때문에 짝수와 홀수를 판단하는 경우에 자주 사용되는 연산입니다. 그리고 하나의 그룹을 여러 그룹으로 나누는 경우에도 나머지 연산을 사용할 수 있습니다. 다음의 코드를 직접 입력해보고 결과를 통해 각각의 동작을 확인해보세요.

# 더하기
a = 123 + 456
print('a = ', a)

# 빼기
b = 456 - 123
print('b = ', b)

# 곱하기
c = 12 * 34
print('c = ', c)

# 나누기
d = 34 / 12
print('d = ', d)

# 몫 구하기
e = 34 // 12
print('e = ', e)

# 나머지 구하기
f = 56 % 8
print('f = ', f)

# 거듭제곱
g = 5 ** 8
print('g = ', g)
a =  579
b =  333
c =  408
d =  2.8333333333333335
e =  2
f =  0
g =  390625

비교 연산자

비교 연산자는 데이터 간의 비교를 통해 어느 쪽의 데이터가 더 크거나 작은지를 확인하는 연산자입니다. 비교 연산자도 기본 연산자와 같이 파이썬만이 아닌 다른 프로그래밍 언어에서도 기본으로 제공하는 연산자입니다. 비교 연산이 필요한 경우에는 다음의 표와 같이 기호를 사용하여 데이터를 비교할 수 있습니다.

연산자 설명
> x는 y보다 크다
>= x는 y와 같거나 크다
< x는 y보다 작다
<= x는 y와 같거나 작다
== x는 y와 같다
!= x와 y는 같지 않다

프로그래밍을 처음 배우는 상황이라면 =(등호)와 ==(관계 연산자)의 사용법이 헷갈릴 수도 있습니다. 두 기호는 비슷하지만 용법은 완전히 다르기 때문에 각각의 용법에 대해 확실하게 이해하고 넘어가는 것이 좋을 것 같네요.

우선 등호(=)는 변수에 값을 대입할 때 사용합니다. 그리고 관계 연산자(==)는 두 개의 값이 같은지를 비교할 때 사용합니다. 변수에 대해서는 조금 더 뒤에서 다룰 예정이지만 일단은 이렇게 알아두시면 됩니다. 비교 연산자도 다음의 코드를 직접 입력해보고 결과를 통해 비교 연산자의 동작을 확인해보세요.

a = 5 > 2
print('a = ', a)

b = 5 >= 2
print('b = ', b)

c = 5 < 2
print('c = ', c)

d = 5 <= 2
print('d = ', d)

e = 5 == 2
print('e = ', e)

f = 5 != 2
print('f = ', f)
a =  True
b =  True
c =  False
d =  False
e =  False
f =  True

첫 번째 예제는 숫자 5와 2의 크기를 단순 비교하는 예제입니다. 5가 2보다 크기 때문에 True가 출력됩니다. 반대로 세 번째 예제에서는 5가 2보다 작지 않기 때문에 False가 출력되죠. 어떤가요? 생각보다 간단하죠?

논리 연산자

and 연산자와 or 연산자, 그리고 not 연산자는 조금 특별한 연산자로 복합적인 조건식을 만들 때 사용하는 논리 연산자입니다. 논리 연산자는 두 개 이상의 조건식을 조합하여 표현할 수 있으며, 부울 연산자라고도 합니다. 사용하는 연산자는 and, or, not의 세 가지 연산자입니다. 다른 프로그래밍 언어에서는 각각의 연산자를 &&, ||, ! 로 표현하기도 합니다.

and

and 연산자는 A와 B가 True인 경우에만 True가 되며 그 외의 경우에는 False가 됩니다. 다음 표에서 A와 B의 상태에 따른 결과를 확인해주세요.

A B Result
True True True
True False False
False True False
False False False

 

a = (3 < 4) and (5 < 6)
print('a = ', a)

b = (3 < 4) and (5 > 6)
print('b = ', b)

c = (3 > 4) and (5 < 6)
print('c = ', c)

d = (3 > 4) and (5 > 6)
print('d = ', d)
a =  True
b =  False
c =  False
d =  False

or

or 연산자는 and 연산자와는 달리 A가 True이거나 B가 True인 경우에 True가 되고, A와 B가 모두 False인 경우에만 False가 됩니다. 다음 표에서 A와 B의 상태에 따른 결과를 확인해주세요.

A B Result
True True True
True False True
False True True
False False False
a = (3 < 4) or (5 < 6)
print('a = ', a)

b = (3 < 4) or (5 > 6)
print('b = ', b)

c = (3 > 4) or (5 < 6)
print('c = ', c)

d = (3 > 4) or (5 > 6)
print('d = ', d)
a =  True
b =  True
c =  True
d =  False

not

not 연산자는 단항 연산자로 참과 거짓을 반대로 바꿀 때 사용합니다. 참고로 단항 연산자란 피연산자가 하나인 연산자를 말합니다. 다음 표에서 A의 상태에 따른 결과를 확인해주세요.

A Not
True False
False True

답글 남기기