파이썬은 산술연산자, 비교(관계)연산자, 할당연산자, 논리연산자, 비트(Bitwise) 연산자, 멤버(Membership) 연산자, 식별 (Identity)연산자가 있다.
산술연산자에는 총 7가지 종류의 연산자가 있다.
# 산술 연산자 Example
>>> 3 + 2 # + 더하기
5
>>> 2 - 5 # - 빼기
-3
>>> 3 * 2 # * 곱하기
6
>>> 6 / 3 # / 나누기
2.0
>>> 7 % 2 # % 나머지
1
>>> 7 // 2 # // 몫
3
비교(관계)연산자는 객체의 대소를 비교하는 연산을 수행한다.
# 비교 연산자 Example
>>> a = 10; b = 15 # a, b 변수 값 할당
>>> a > b # a 가 b보다 크다
False
>>> a < b # a 가 b보다 작다
True
>>> a >= b # a 가 b보다 크거나 같다
False
>>> a <= b # a 가 b보다 작거나 같다
True
>>> a == b # a 가 b는 같다.
False
>>> a != b # a 가 b는 같지 않다.
True
할당연산자는 변수에 값을 할당할때 사용하는 연산자를 말한다. 기본적으로 =을 사용하고 산술연산자와 함께 간결하게 사용되기도 한다.
# 할당 연산자 Example
>>> a = 100; b = 1000 # a=100, b=1000
>>> c = a+b; c # c는 a 더하기 b
1100
>>> c += a; c # c는 c 더하기 a
1200
>>> c -= a; c # c는 c 빼기 a
1100
>>> c *= a; c # c는 c 곱하기 a
110000
>>> c /= a; c # c는 c 나누기 a
1100.0
>>> a = 5; b=3 # a=5, b=3
>>> c=a+b;c # c는 a더하기 b
8
>>> c %=a; c # c는 c나누기 a의 나머지 (8 / 5의 나머지 3)
3
>>> c **=a; c # c는 c의 a승 (3^5)
243
>>> c //=a; c # c는 c나누기 a의 몫 (243 / 5 의 몫 48)
48
and, or, not이 있다.
# 논리 연산자 Example
>>> a=True; b=False # a는 참, b는 거짓
>>> a # a 변수 값
True
>>> b # b 변수값
False
>>> a and b # 둘 다 참인가?
False
>>> a or b # 둘 중 하나 참인가?
True
>>> not a # a 반전 (True > Flase)
False
>>> not b # b 반전 (Flase > True)
True
말 그대로 비트 단위로 연산한다.
# 비트 연산자 Example (1이 참, 0은 거짓)
>>> a = 12; b = 8 # a는 1100, b는 1000
>>> a & b # 1100 & 1000 = 1000
8
>>> a | b # 1100 | 1000 = 1100
12
>>> a^b # 1100 ^ 1000 = 0100
4
>>> ~a # ~1100 = -1100
-13
>>> a<<2 # 0000 1100 <<2 = 0011 0000
48
>>> a>>2 # 1100 >> 2 = 0011
3
in, not in이 있다.
# 멤버 연산자 Example
>>> list = [1, 3, 5, 7, 9, 10] # list에는 1, 3, 5, 7, 9, 10이 들어있음
>>> 2 in list # list에 2가 있냐?
False
>>> 1 in list # list에 1이 있냐?
True
>>> 2 not in list # list에 2가 없냐?
True
동일한 객체인지 두 개체의 메모리 위치를 비교한다.
# 식별 연산자 Example
>>> a = 5 ; b = 5 ; c = 7 # a, b, c에 값을 할당
>>> id(a) ; id(b) ; id(c) # id()함수로 a, b, c 레퍼런스 확인
140736392533792
140736392533792
140736392533856
>>> a is b # a와 b의 메모리 위치가 동일한가?
True
>>> a is not b # a와 b의 메모리 위치가 다른가?
False
>>> a is not c # a와 c의 메모리 위치가 다른가?
True
여기까지 Python에 존재하는 연산자에 대해서 알아보았다. 종류가 많지만 하나하나 테스트하다 보면 자연스럽게 이해가 될 것이다. 당장에 응용은 힘들겠지만 많이 사용하면 반드시 능숙해진다. 각 연산자의 종류를 인지해놓고 상황에 맞게 사용해 보도록 하자.
다음은 연산 우선순위에 대해 알아보겠다.
연산에는 우선순위가 있고 다양한 연산자가 혼용될 경우 아래의 순서로 계산이 이루어진다.
우선순위 |
연산자 |
설명 |
1 |
(값...), [값...], |
튜플, 리스트, 딕셔너리, 세트 생성 |
2 |
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 |
람다 표현식 |
오늘은 연산자와 연산 우선순위에 대해 알아보았다. 다양한 예문풀이를 통해 실력을 키워보자.
다음은 조건문과 반복문에 대해 알아보자.
[python] 파이선 / 파이썬 조건문, 반복문
원래 계획은 TTS 사용하는데 필요한 부분까지만 파이썬을 익히면서 글을 쓰려고 했는데, 하다 보니 재미있어서 어느새 6편을 적고 있다. 파이썬의 장점 중 하나인 쉽고 접근성이 높은 언어라는 ��
winding-roads.tistory.com
[python] 파이썬 / 파이선 함수 (0) | 2020.07.30 |
---|---|
[python] 파이선 / 파이썬 조건문, 반복문 (0) | 2020.07.28 |
[python] 파이선 / 파이썬 코딩 방법 (0) | 2020.07.27 |
[python] 파이선 / 파이썬 자료형 (0) | 2020.07.26 |
[python] 파이선 / 파이썬 설치 (0) | 2020.07.25 |