본문 바로가기

개발/Python

[파이썬] 연산자, 연산자 우선순위

산술연산자

산술연산자는 일반적인 사칙함수 외 특이사항을 보면,
나누기( "/" )의 경우 정수/정수=실수로 나온다.
제곱은 **를 써서 하고 몫을 구하려면 //를 사용한다.

+ 더하기 a + b = 30
- 빼기 a - b = -10
* 곱하기 a * b = 200
/ 나누기 b / a = 2.0
% 나머지 b % a = 0
** 제곱 a ** c = 1000
// a // c = 3

예제소스를 통해 결과 값을 확인해 보자

a = 10 + 2 #12
b = 10-2 #8
c = 10*2 #20
d = 10/2 #5.0 정수/ 정수 ==> 실수
e = 10**2 #100
f = 10//2 #5
g = 10%2 #0
print( a,b,c,d,e,f,g )

비트 연산자

연산자 설명
& 비트 and
| 비트 or
^ 배타적 or
<< 좌측 쉬프트
>> 우측 쉬프트

 

구성원 연산자

연산자 설명
in 구성원에 있다
not in 구성원에 없다

구성원 연산자에 대한 예제를 살펴보면 하기와 같다.

in, not in

s = "hello world"
print( "hello" in s )
print( "gozz" in s )
print( "power" not in s )


dictionary에서는 value를 찾진 못한다. 오직 key에 대한 in, not in을 수행할 수 있다.

myList = [10,20,30, 40, 50]
myD = { 10:"AA", 20:"BB",30:"CC" }
print( 10 in myD )
print( "AA" in myD ) # 키에 대해서 만 확인이 가능하다

 

식별 연산자

식별 연산자  
is 객체가 같다
not is 객체가 다르다

마찬가지로 간단한 예제를 통해 알아보자

a = 'A'
b = 'A'
print( a is b)
print( id(a))
print( id(b))

연산자 우선순위

우리가 알고 있는 일반적인 사칙연산에서도 곱하기와 나누기가 덧셈, 뺄셈보다 연산자 우선순위를 갖고 있는 것처럼
파이썬에서도 연산자 우선순위가 있다.
하기 표에서 우선순위 숫자가 낮을수록 높은 우선순위를 갖는다.

( 같은 우선순위의 연산자는 먼저 불린 순으로 차례대로 수행된다.)

우선순위 연산자 비고
1 (value...), [value...],
{key: value...}, {value...}
튜플, 리스트, 딕셔너리, 세트 생성
2 x[인덱스],
x[인덱스:인덱스],
x(인수...), x.속성
리스트(튜플) 첨자, 슬라이싱, 함수 호출, 속성 참조
3 await x await 표현식
4 ** 거듭제곱
5 +x, -x, ~x 단항 덧셈(양의 부호), 단항 뺄셈(음의 부호), 비트 NOT
6 *, @, /, //, % 곱셈, 행렬 곱셈, 나눗셈, 버림 나눗셈, 나머지
7 +, - 덧셈, 뺄셈
8 <<, >> 비트 시프트
9 & 비트 AND
10 ^ 비트 XOR
11 | 비트 OR
12 in, not in, is, is not,
<, <=, >, >=, !=, ==
포함 연산자, 객체 비교 연산자, 비교 연산자
13 not x 논리 NOT
14 and 논리 AND
15 or 논리 OR
16 if else 조건부 표현식
17 lambda 람다 표현식