python & vscode

파이썬 연산자

노래하는 마케터 2022. 11. 7. 18:09
728x90

💠파이썬의 연산자 

파이썬 연산자는 8종류입니다. 아니 사실 거의 모든 언어들이 그렇습니다.  

이 8가지 종류중에 삼항연산자라는 것이 있는데.. 파이썬에서는 조금 애매한 부분이 있습니다. 연산자가 아닌 문법으로 삼항연산자의 역할을 하거든요. 너무 어려워 하시지 마시고 우선 목차를 살펴 보세요. 알고보면 매우 쉽답니다.

  • 산술 연산자(Arithmetic Operators)
  • 할당 연산자(Assignment Operators)
  • 삼항 연산자(Ternary Operator)
  • 비교 연산자(Comparison Operators)
  • 논리 연산자(Logical Operators)
  • 항등 연산자(Identity Operators)
  • 멤버 연산자(Membership Operators)
  • 비트 연산자(Bitwise Operators)

 

 

1. 산술 연산자(Arithmetic Operators)

산술연산자는 단순히 계산을 위한 연산자 들입니다.

연산자 역할
+ 더하기
- 빼기
* 곱하기
/ 나누기
% 나머지
** 제곱
// 나눈 후 몫이 소수점이면 내림

 

연습 해볼까요?

print(11 + 2) print(11 - 2) print(11 * 2) print(11 / 2) print(11 % 2) print(11 ** 2) print(11 // 2)

 

 

2. 할당 연산자(Assignment Operators)

할당 연산자는 값을 변수에 할당할때 쓰는 연산자 입니다.

연산자 역할
= 오른쪽 값을 왼쪽 변수에 할당함
+= 기존 왼쪽 변수 값과 오른쪽 변수를 더한 후 재할당
-= 기존 왼쪽 변수 값과 오른쪽 변수를 뺀 후 재할당
*= 기존 왼쪽 변수 값과 오른쪽 변수를 곱한 후 재할당
/= 기존 왼쪽 변수 값과 오른쪽 변수를 나눈 후 재할당
%= 기존 왼쪽 변수 값과 오른쪽 변수로 나눈 나머지를 재할당
//= 기존 왼쪽 변수 값과 오른쪽 변수로 나눈 후 내림한 값을 재할당
**= 기존 왼쪽 변수 값에 오른쪽 변수만큼 제곱을 한 후 재할당
  • 비트연산자와도 함께 쓸수 있습니다. 밑에 따로 비트연산자를 설명하겠습니다~

 

아래 코드를 예시로 위 연산자를 연습해 보세요. 이 코드에디터에서 바로 수정하고 확인해볼 수 있습니다.

a = 90 print(a) a += 10 print(a) a /= 10 print(a)

 

 

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)

연산자를 사이에 두고 좌우 변수를 비교하는 연산자 입니다. 이 연산자들의 반환값은 참, 거짓 입니다.

연산자 역할
== 같다면.
!= 같지 않다면
> 왼쪽 값이 더 크다면
< 오른쪽 값이 더 크다면
>= 왼쪽 같이 크거나 같다면
<= 오른쪽 값이 크거나 같다면
a = 10 b = 9 if a > b: print('a가 큽니다.') else: print('b가 큽니다.')

 

 

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개 밖에 없습니다. 함께 확인해 보실까요?

a = 10 b = [1, 10, 3, 4, 65, 8] c = 9 if a in b: print('a가 b 리스트 안에 있습니다.') if not c in b: print('c가 b 리스트 안에 없습니다.')

 

 

8. 비트 연산자(Bitwise Operators)

비트단위로 연산을 하는 비트연산자 입니다. 아직은 어려울 수 있으니 '이런게 있구나..' 하시면 됩니다. 

요즘은 잘 사용하진 않지만, 예전에는 메모리가 비싸서 최대한 메모리를 아끼고 아끼는 비트연산을 했습니다. 지금도 임베디드 프로그래머들은 할 수 도 있겠군요. 예를들어 True, False 를 나타내는 bool 타입 자료형은 8비트를 차지 합니다. 하지만 이중 8개의 비트중 사용하지 않는 것이 대부분이지요. 이런 것을 비트연산자를 사용하면 메모리를 절약 할 수 있습니다. 

 

파이썬은 C++과 마찬가지로 6개의 비트연산자가 있습니다. 아참, 그리고 아래 코드출처는 위키독스 입니다.

연산자 역할
& and의 연산을 비트단위로 합니다.
| or의 연산을  비트단위로 합니다.
^ xor의 연산을 비트단위로 합니다.
~ not의 연산을 비트단위로 합니다.
<< 비트단위로 "왼쪽으로 비트단위 밀기" 연산을 합니다.
>> 비트단위로 "오른쪽으로 비트단위 밀기" 연산을 합니다.
a = 0b10101010 b = 0b01110011 print('a = ', a, ":", bin(a)) print('b = ', b, ":", bin(b)) print('a & b = ', a & b, ":", bin(a & b)) print('a | b = ', a | b, ":", bin(a | b)) print('a ^ b = ', a ^ b, ":", bin(a ^ b)) print('~a = ', ~a, ":", bin(~a)) a = 0b1 print('a = ', a) a = a << 1 # * 2 print('a = ', a) a = a << 1 # * 2 print('a = ', a) a = a << 3 # * 2**3 print('a = ', a) a = a >> 1 # / 2 print('a = ', a) a = a >> 1 # / 2 print('a = ', a) a = a >> 2 # / 2**2 print('a = ', a)

출처 : https://dingrr.com/blog/post/python-103-연산자의-8가지-종류

 

[Python 103] 연산자의 8가지 종류 | 블로그 | 딩그르르

[Python 103] 연산자의 8가지 종류

dingrr.com

 

728x90

'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