본문 바로가기
언어/Python

[Python 기본 공부정리] 2. 연산자(Operator)

by 민-Zero 2019. 11. 20.

공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 

틀린 부분에 대한 지적은 감사합니다.

pyton은 편리한 연산자를 많이 제공한다 C++의 연산자와 유사하나 약간의 차이가 존재한다.

 

1. 산술 연산자(arithmetic operator)

기본적인 산술 연산을 위해 제공되는 연산자이다.

+ 왼쪽 항에 오른쪽 항을 더한다
- 왼쪽 항에 오른쪽 항을 뺀다
* 왼쪽 항에 오른쪽 항을 곱한다
/ 왼쪽 항을 오른쪽 항으로 나눈다
% 왼쪽 항을 오른쪽 항으로 나눈 나머지
** 왼쪽 항에 오른쪽 항만큼 제곱한다
// 왼쪽 항을 오른쪽 항으로 나눈 몫

C++의 경우 /연산을 할 때 int형일 경우 몫만 출력이 되지만 파이썬은 자동으로 자료형을 결정하기 때문에 나누기와 몫, 나머지의 경우가 나뉘어 있다.

 

2. 대입 연산자(assignment operators)

= 왼쪽 항에 오른쪽 항을 대입한다
+= 왼쪽 항에 오른쪽 항의 값을 더하고 왼쪽 항에 대입한다
-= 왼쪽 항에 오른쪽 항의 값을 빼고 왼쪽 항에 대입한다
*= 왼쪽 항에 오른쪽 항의 값을 곱하고 왼쪽 항에 대입한다
/= 왼쪽 항을 오른쪽 항의 값으로 나누고 왼쪽 항에 대입한다
%= 왼쪽 항을 오른쪽 항의 값으로 나눈 나머지를 왼쪽 항에 대입한다
**= 왼쪽 항에 오른쪽 항의 값만큼 제곱하고 왼쪽 항에 대입한다
//= 왼쪽항을 오른쪽 항의 값으로 나눈 몫을 왼쪽 항에 대입한다

산술 연산한 값을 변수에 저장하는 코드를 간결하게 쓰기 위해 사용한다. 연산은 산술 연산과 같지만 그 값을 변수에 저장하는 과정이 추가되었다.

예) a += b는  a = a + b와 같은 동작을 하는 코드이다.

 

**= 연산을 통해 a의 값인 5가 b의 값인 2만큼 제곱된 25가 a로 대입되어 a를 출력할 경우 25를 출력하고 %=을 통해 5를 2로 나눈 나머지의 값이 x에 저장되어 출력되는 모습이다.

 

3. 비교 연산자(comparison operator)

값의 크기를 비교하는 연산자이다. C++의 경우 값을 비교하여 참일 경우 1을 거짓일 경우 0을 반환했지만 파이썬은 참일 경우 True를 거짓일 경우 False의 bool형 값을 그대로 반환한다.

== 왼쪽항과 오른쪽 항의 값이 같을 경우 참
!= 왼쪽항과 오른쪽 항의 값이 다를 경우 참
> 왼쪽항이 오른쪽 항보다 큰 경우 참
< 왼쪽항이 오른쪽 항보다 작은 경우 참
>= 왼쪽항이 오른쪽 항보다 크거나 같을 경우 참
<= 왼쪽항이 오른쪽 항보다 작거나 같을 경우 참

4. 논리 연산자(logical operator)

주어진 논리 식의 참(True) 거짓(False)을 판단한다.

and 두 항을 비교하여 둘다 참일 경우 참을 반환 한다
or 두 항을 비교하여 둘중 하나라도 참인 경우 참을 반환 한다.
not 논리 결과를 반전시킨다.
x y x and y  x or y not(x)
T T T T F
T F F T F
F T F T T
F F F F T

 

5. 비트 연산자(bitwise operator)

비트단위 논리 연산을 진행할 때 사용한다. 만약 a가 30일 경우 0001 1110으로 b가 5일 경우 0000 0101로 바꾸어 비교하는 것이다.

& 두항의 비트를 비교 같은 자리의 비트가 모두 1일 경우 1을 반환 (비트AND)
| 두항의 비트를 비교 같은 자리의 비트중 1이 존재할 경우 1을 반환 (비트 OR)
^ 두항의 같은 자리의 비트가 서로 다를 경우 1을 반환 (비트 XOR)
~ 비트가 1일 경우 0으로, 0일 경우 1로 반환 (비트 NOT, 1의 보수)
<< 지정한 수만큼 비트를 왼쪽으로 이동 (left shift)
>> 지정한 수만큼 비트를 오른쪽으로 이동 (right shift)

 

6. 멤버 연산(membership operator)

멤버 연산자의 경우 list안에 확인하고자 하는 값이 들어가 있는지에 대한 여부를 확인할 때 사용한다.

in 왼쪽항이 오른쪽 리스트 안에 들어 있으면 참
not in 왼쪽항이 오른쪽 리스트 안에 안들어 있으면 참

7. 식별 연산(identity operator)

식별 연산자는 두 항의 값이나 메모리의 위치를 비교하여 참 거짓을 반환한다.

is 개체메모리 위치나 값이 같다면 참
is not 개체메모리 위치나 값이 같지 않다면 참

값을 비교하는 ==으로 확인할 경우 두값이 같다고 나오지만 식별 연산자를 통해 비교할 경우 두 개의 메모리 주소가 다르기 때문에 False로 나오는 것을 확인할 수 있다.

 

※연산자 우선 순위

** 지수
~ + - 보수, 양수와 음수 
* / % // 곱하기, 나누기, 나머지, 몫
+ - 덧셈과 뺄셈
>> << 좌우 비트 시프트
& 비트 'AND'
^ | 비트  'XOR'와  'OR'
<= < > >= 비교 연산자
<> == != 비교 연산자
= %= /= //= -= += *= **= 대입 연산자
is is not 식별 연산자
in not in 맴버 연산자
not or and 논리 연산자

댓글