4.4.2. 파이썬 연산자
Last updated
Last updated
연산자는 피연산자의 값을 조작할 수 있는 구조입니다.
표현식 4 + 5 = 9를 생각해 보겠습니다. 여기서 4와 5는 피연산자라고 부르고 +는 연산자라고 합니다.
파이썬은 산술연산자, 비교연산자, 할당연산자, 논리연산자, Bitwise 연산자, 멤버쉽연산자, Identity연산자를 지원합니다.
1) 산술연산자
산술연산자에는 사칙연산자 +, -, *, / 와 제곱을 나타내는 **, 나머지를 산출하는 % (Modulus), 그리고 나누기에 소숫점 이하를 버리는 // 연산자(Floor Division) 등이 있습니다.
2) 비교연산자
비교연산자는 관계연산자로도 불리우는데, 여기에는 등호(==), 같지 않음(!=), 부등호(<, >, <=, >=) 등이 있습니다.
a 의 값은 10, b는 20 이라고 한다면
3) 할당연산자
할당연산자는 변수에 값을 할당하기 위하여 사용되는데, 기본적으로 = (Equal Sign)을 사용합니다. 산술연산자와 함께 사용되어 할당을 보다 간결하게 하기 위해 사용되는 +=, -=, *=, /=, %=, //= 등과 같은 연산자도 할당연산자에 해당됩니다.
4) 논리연산자
논리연산자에는 and, or, not 이 있는데, and 는 양쪽의 값이 모두 참인 경우만 참이 되고, or 는 어느 한쪽만 참이면 참이 됩니다. not 은 참이면 거짓으로 거짓이면 참이 됩니다. 아래 예제는 No가 출력됩니다.
a 의 값은 10, b는 20 이라고 한다면
5) Bitwise 연산자
Bitwise연산자에는 & (AND), | (OR), ^ (XOR), ~ (Complement), <<, >> (Shift)가 있는데, 이 연산자는 비트단위의 연산을 하는데 사용됩니다.
a = 60; b = 13 이라고 가정하면
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
6) 멤버쉽 연산자
멤버쉽연산자에는 in, not in 이 있는데, 이는 좌측 Operand가 우측 컬렉션에 속해 있는지 아닌지를 체크합니다. 파이썬 멤버쉽 연산자는 문자열, 리스트 또는 튜플과 같은 시퀀스 멤버십을 테스트하는데 사용됩니다.
7) Identity 연산자
Identity연산자에는 is, is not 이 있는데, 이는 두 객체의 메모리 위치를 체크합니다.
8) 파이썬 연산자 우선 순위
가장 높은 우선 순위에서 가장 낮은 모든 연산자를 보여줍니다.
Operator
Example
+ 덧하기
a + b = 30
- 빼기
a – b = -10
* 곱하기
a * b = 200
/ 나누기
b / a = 2
** 제곱
a = 3; b = 4; print(a ** b) 81
// 정수 몫
9//2 = 4 and 9.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.0
% 나머지
b % a = 0
Operator
Example
==
(a == b) is not true.
!=
(a != b) is true.
<>
(a <> b) is true. This is similar to != operator.
>
(a > b) is not true.
<
(a < b) is true.
>=
(a >= b) is not true.
<=
(a <= b) is true.
Operator
Example
=
c = a + b assigns value of a + b into c
+= Add AND
c += a is equivalent to c = c + a
-= Subtract AND
c -= a is equivalent to c = c - a
*= Multiply AND
c *= a is equivalent to c = c * a
/= Divide AND
c /= a is equivalent to c = c / ac /= a is equivalent to c = c / a
%= Modulus AND
c %= a is equivalent to c = c % a
**= Exponent AND
c **= a is equivalent to c = c ** a
//= Floor Division
c //= a is equivalent to c = c // a
Operator
Example
and Logical AND
(a and b) is true.
or Logical OR
(a or b) is true.
not Logical NOT
Not(a and b) is false.
Operator
Example
& Binary AND
(a & b) (means 0000 1100)
| Binary OR
(a | b) = 61 (means 0011 1101)
^ Binary XOR
(a ^ b) = 49 (means 0011 0001)
~ Binary Ones Complement
(~a ) = -61 (means 1100 0011 in 2's complement form due to a signed binary number.
<< Binary Left Shift
a << 2 = 240 (means 1111 0000)
>> Binary Right Shift
a >> 2 = 15 (means 0000 1111)
Operator
Example
in
x in y, x가 시퀀스 y의 멤버이면 1이 됩니다.
not in
x not in y, x가 시퀀스 y의 멤버가 아닌 경우 1이 됩니다.
Operator
Example
is
연산자의 양쪽에 있는 변수가 동일한 객체를 가리키는 경우 true로 평가하고 그렇지 않으면 false로 평가합니다.
is not
연산자의 양쪽에 있는 변수가 동일한 객체를 가리키는 경우 false로 평가하고 그렇지 않으면 true로 평가합니다.
Operator
Description
**
지수 (전원으로 인상)
~ + -
Ccomplement, 단항 플러스와 마이너스 (마지막 두의 메서드 이름은 + @이며, - @)
* / % //
곱하기, 나누기, 나머지, 몫
+ -
덧셈과 뺄셈
>> <<
좌우 비트 시프트
&
비트 'AND'
^ |
비트 전용 'OR'와 정기적 인 'OR'
<= < > >=
비교 연산자
<> == !=
평등 연산자
= %= /= //= -= += *= **=
할당 연산자
is is not
식별 연산자
in not in
맴버 연산자
not or and
논리 연산자