💠파이썬의 연산자
파이썬 연산자는 8종류입니다. 아니 사실 거의 모든 언어들이 그렇습니다.
이 8가지 종류중에 삼항연산자라는 것이 있는데.. 파이썬에서는 조금 애매한 부분이 있습니다. 연산자가 아닌 문법으로 삼항연산자의 역할을 하거든요. 너무 어려워 하시지 마시고 우선 목차를 살펴 보세요. 알고보면 매우 쉽답니다.
- 산술 연산자(Arithmetic Operators)
- 할당 연산자(Assignment Operators)
- 삼항 연산자(Ternary Operator)
- 비교 연산자(Comparison Operators)
- 논리 연산자(Logical Operators)
- 항등 연산자(Identity Operators)
- 멤버 연산자(Membership Operators)
- 비트 연산자(Bitwise Operators)
1. 산술 연산자(Arithmetic Operators)
산술연산자는 단순히 계산을 위한 연산자 들입니다.
연산자 | 역할 |
+ | 더하기 |
- | 빼기 |
* | 곱하기 |
/ | 나누기 |
% | 나머지 |
** | 제곱 |
// | 나눈 후 몫이 소수점이면 내림 |
연습 해볼까요?
2. 할당 연산자(Assignment Operators)
할당 연산자는 값을 변수에 할당할때 쓰는 연산자 입니다.
연산자 | 역할 |
= | 오른쪽 값을 왼쪽 변수에 할당함 |
+= | 기존 왼쪽 변수 값과 오른쪽 변수를 더한 후 재할당 |
-= | 기존 왼쪽 변수 값과 오른쪽 변수를 뺀 후 재할당 |
*= | 기존 왼쪽 변수 값과 오른쪽 변수를 곱한 후 재할당 |
/= | 기존 왼쪽 변수 값과 오른쪽 변수를 나눈 후 재할당 |
%= | 기존 왼쪽 변수 값과 오른쪽 변수로 나눈 나머지를 재할당 |
//= | 기존 왼쪽 변수 값과 오른쪽 변수로 나눈 후 내림한 값을 재할당 |
**= | 기존 왼쪽 변수 값에 오른쪽 변수만큼 제곱을 한 후 재할당 |
- 비트연산자와도 함께 쓸수 있습니다. 밑에 따로 비트연산자를 설명하겠습니다~
아래 코드를 예시로 위 연산자를 연습해 보세요. 이 코드에디터에서 바로 수정하고 확인해볼 수 있습니다.
3. 삼항 연산자(Ternary Operator)
앞 서 말씀드린 삼항 연산자로 왔습니다. 사실 솔직하게 말씀드리면, 파이썬에게 삼항연산자는 없습니다. 대신 삼항 연산자보다 더욱 가독성 좋은 문법이 있습니다. 우선 아래는 자바스크립트의 삼항연산자 입니다.
let num = 9;
(num % 2 === 0) ? console.log("짝수입니다.") : console.log("홀수입니다.");
만약 num을 2로 나눈 나머지가 0이면, '짝수입니다' 경고를, 아니면 '홀수입니다' 를 출력해주는 문법입니다.
그리고 아래는 같은 역할을 하는 파이썬 문법 입니다.
num = 9
val = "짝수입니다." if num % 2 == 0 else "홀수입니다."
print(val)
>>> 홀수입니다.
비슷 하지만 '연산자' 가 아닌 문법 입니다.
4. 비교 연산자(Comparison Operators)
연산자를 사이에 두고 좌우 변수를 비교하는 연산자 입니다. 이 연산자들의 반환값은 참, 거짓 입니다.
연산자 | 역할 |
== | 같다면. |
!= | 같지 않다면 |
> | 왼쪽 값이 더 크다면 |
< | 오른쪽 값이 더 크다면 |
>= | 왼쪽 같이 크거나 같다면 |
<= | 오른쪽 값이 크거나 같다면 |
5. 논리 연산자(Logical Operators)
논리 연산자는 if... else 구문처럼 조건문을 결합할때 사용합니다.
연산자 | 역할 |
and | and를 두고 좌우 조건문이 모두 참이면 |
or | or을 두고 좌우 조건문중 하나라도 참이면 |
not | 조건문 자체가 거짓이라면 |
a = 3
b = 5
c = 10
d = 9
print(a < b and c > d)
print(a < b or c < d)
print(not c < d)
>>> True
>>> True
>>> True
6. 항등 연산자(Identity Operators)
항등 연산자는, 같은 메모리에 있는지를 확인 하는 겁니다. 2가지 밖에 존재 하지 않습니다. 잘 한번 코드를 봐주세요. 값이 같은 것을 넘어 객체 존재 자체가 같아야 합니다.
a = [1, 3, 4, 5]
b = [1, 3, 4, 5]
print(a == b)
print(a is b)
print(a is not b)
>>> True
>>> False
>>> True
- a와 b는 같은 값의 리스트를 할당 받았습니다.
- == 연산자는 값이 같기에 True를 반환 하였습니다,
- 반면 is 는 false를 리턴 하였습니다.
- 같은 메모리 주소가 아니기 때문입니다. is not 은 반대이기때문에 true를 리턴하였습니다.
7. 멤버 연산자(Membership Operators)
멤버 연산자는 왼쪽 값이 오른쪽 컨테이너 객체의 멤버인지를 확인하는 연산자 입니다. 이 또한 2개 밖에 없습니다. 함께 확인해 보실까요?
8. 비트 연산자(Bitwise Operators)
비트단위로 연산을 하는 비트연산자 입니다. 아직은 어려울 수 있으니 '이런게 있구나..' 하시면 됩니다.
요즘은 잘 사용하진 않지만, 예전에는 메모리가 비싸서 최대한 메모리를 아끼고 아끼는 비트연산을 했습니다. 지금도 임베디드 프로그래머들은 할 수 도 있겠군요. 예를들어 True, False 를 나타내는 bool 타입 자료형은 8비트를 차지 합니다. 하지만 이중 8개의 비트중 사용하지 않는 것이 대부분이지요. 이런 것을 비트연산자를 사용하면 메모리를 절약 할 수 있습니다.
파이썬은 C++과 마찬가지로 6개의 비트연산자가 있습니다. 아참, 그리고 아래 코드출처는 위키독스 입니다.
연산자 | 역할 |
& | and의 연산을 비트단위로 합니다. |
| | or의 연산을 비트단위로 합니다. |
^ | xor의 연산을 비트단위로 합니다. |
~ | not의 연산을 비트단위로 합니다. |
<< | 비트단위로 "왼쪽으로 비트단위 밀기" 연산을 합니다. |
>> | 비트단위로 "오른쪽으로 비트단위 밀기" 연산을 합니다. |
출처 : https://dingrr.com/blog/post/python-103-연산자의-8가지-종류
'python & vscode' 카테고리의 다른 글
파이썬 리스트 출력 정리 (0) | 2022.11.07 |
---|---|
파이썬 print 사용법 총정리 (0) | 2022.11.07 |
효율적인 코드 (0) | 2022.11.07 |
for _ in range (0) | 2022.11.06 |
사칙연산을 위한 7가지 연산자 (0) | 2022.11.06 |