Stargazer

[Python] 모두가 쉬운 파이썬 - 연산자 본문

프로그래밍/Python

[Python] 모두가 쉬운 파이썬 - 연산자

COM2IT 2021. 1. 7. 22:36
반응형

안녕하세요! 모두의 IT 세상의 COM2IT 입니다.

 

파이썬에서 사용하는 연산자에 대해서 알아보도록 하겠습니다.

 


산술 연산자(Arithmetic Operators)

 

산술 연산자는 사칙연산 같은 연산자를 들을 말합니다. 

변수 a = 4, b = 10  가 있다고 가정하고, 각 연산자에 따른 결과는 다음과 같습니다.

연산자 의미 예시 결과
+ 더하기 a + b 14
- 빼기 a - b -6
* 곱하기 a * b 40
/ 나누기 b / a 2.5
% 나머지 b % a 2
** 제곱 a ** 2 16
// b // a 2

 


비교 연산자(Comparison Operators)

 

비교 연산자는 두 값을 비교해서 연산자에 따른 참 또는 거짓의 값을 반환하는 연산자입니다.

a = 1, b=2  라 가정해보면, 연산자에 따른 결과는 다음과 같습니다.

연산자 의미 예시 결과
== 값이 동일하다 a == b False
!= 값이 다르다 a != b True
> 왼쪽 값이 오른쪽 값보다 크다 a > b False
< 왼쪽 값이 오른쪽 값보다 작다. a < b True
>= 왼쪽 값이 오른쪽 값보다 크거나 같다. a >= b False
<= 왼쪽 값이 오른쪽 값보다 작거나 같다. a <= b True

 


할당 연산자(Assignment Operators)

 

할당 연산자는 연산의 결과를 왼쪽 변수에 대입하는 연산자를 말합니다.

a = 4, b=10 이라 가정 해봅시다.

연산자 의미 예시 풀이 결과
= 오른쪽 값을 왼쪽에 대입한다 c = a+b c = (a+b) = 14 c = 14
+= 오른쪽 값을 왼쪽 값에 더하고 왼쪽변수에 대입한다 b += a  b = b + a b = 14
-= 오른쪽 값을 왼쪽 값에서 빼고 왼쪽변수에 대입한다 b -= a b = b - a b = 6
*= 오른쪽 값을 왼쪽 값에 곱하고 왼쪽변수에 대입한다 a *= b a = a * b a = 40
/= 오른쪽 값을 왼쪽 값에서 나누고 왼쪽변수에 대입한다 b/=a b = b / a b = 2.5
%= 오른쪽 값을 왼쪽 값에 나누고 남은 나머지를 왼쪽변수에 대입한다 b %= a b = b % a b = 2
**= 오른쪽 값만큼 왼쪽 값을 제곱하고 왼쪽변수에 대입한다 a**=2 a = a ** 2 a = 16
//= 오른쪽 값으로 왼쪽 값을 나눈 몫을 왼쪽변수에 대입한다 b //= a b = b // a b = 2

 

 


비트 연산자(Bitwise Operators)

 

비트 연산자는 비트 단위에서 논리 연산, 쉬프트 연산(이동)을 할때 사용하는 연산자 입니다.

무슨 말이냐면 컴퓨터는 값을 0과 1로 저장하는데, 0과 1을 표현하는 한자리를 비트(bit) 라고 합니다. 

어떤 값이 있을때 이 값을 비트 단위로 표현하면 2진법으로 표현이 됩니다.

보통 사람들은 10진법을 사용하는데, 컴퓨터는 이를 2진법으로 저장하기 때문입니다.

 

 

a = 39, b = 14 (1바이트) (1바이트 = 8비트) 라고 가정 해봅시다.

(=> a = 0010 0111 , b =0000 1110

연산자 의미 예시 풀이 결과
& AND 연산, 둘다 1 일때만 1 a & b     0010 0111
& 0000 1110
  ---------------
   0000 0110
0000 0110
=> 6
| OR 연산, 둘 중 하나만 1 이어도 1 a | b   0010 0111
| 0000 1110
  ---------------
   0010 1111
0010 1111
=> 47
^ XOR연산, 둘 중 하나만 1 이어야지 1 a ^b    0010 0111
^ 0000 1110
  ---------------
   0010 1001
0010 1001
=> 41
~ 보수 연산,  0과 1을 바꾼다. ~a 0을 1로 ,1을 0으로 1101 1000
=> 216
<< 왼쪽 시프트 연산, 지정된 수 만큼 비트수 왼쪽으로 이동 a<<2 비트를 왼쪽으로 2칸 이동, 비워진 공간은 0으로 채워준다 1001 1100
=> 156
>> 오른쪽 시프트 연산, 지정된 수 만큼 비트수 오른쪽으로 이동 a>>2 비트를 오른쪽으로 2칸 이동, 비워진 공간은 0으로 채워준다 0000 1001
=> 9

 


논리 연산자(Logical Operators)

 

논리 연산자란 논리식에 따라서 참과 거짓을 반환하는 연산자입니다.

a = True, b = False 가정하면 다음과 같습니다.

 

연산자 의미 예시 결과
and 논리 AND 연산, 둘 다 참일때만 참 a and b False
or 논리 OR 연산, 둘 중 하나만 참이여도 참 a or b True
not 논리 NOT 연산, 논리 상태를 반전 not a False

 


맴버쉽 연산자(Membership Operators)

 

맴버쉽 연산자는 list 내에 피연산자의 값이 존재하는 확인하여 참 또는 거짓으로 반환하는 연산자입니다.

a= 4 , b = [1,2,3,4,5] 라 가정하면 다음과 같습니다.

연산자 의미 예시 풀이 결과
in list 내에 포함되어 있다면 참 a in b b 안에 a가 있다면 참 True
not in list 내에 포함되어 있지 않다면 참 a not in b b 안에 a가 없다면 참 False

 


식별 연산자(Identity Operators)

 

식별 연산자란 변수 파트에서 잠깐 언급했던 is 를 말합니다.

다시말해, 두 개체의 메모리의 위치를 비교해서 참 또는 거짓을 반환하는 연산자입니다.

a=5, b=5 라 가정하면, 결과는 다음과 같습니다.

연산자 의미 예시 풀이 결과
is 두 개체의 메모리 주소가 같으면 참 a is b a와 b가 가리키는 주소가 같은가? True
is not 두 개체의 메모리 주소가 다르면 참 a is not b a와 b가 가리키는 주소가 다른가? False

연산자 우선순위(Operators Precedence)

 

연산자에는 실행되는 순서라는 것이 있습니다.

순서가 없으면 혼란이 오기 때문에 연산자간의 순서는 반드시 존재해야 합니다.

우선순위는 다음과 같습니ㅏㄷ.

순서 연산자 의미
1 ** 제곱
2 ~ + - 보수, 단항 플러스와 마이너스
3 * / % // 곱하기,나누기, 나머지, 몫
4 + - 더하기, 빼기
5 << >> 비트 시프트
6 & 비트 AND
7 ^ | 비트 XOR, 비트 OR
8 <= < > >= 비교 연산자
9 <> == != 평등 연산자
10 = %= /= //=
-= += *= **=
할당 연산자
11 is , is not 식별 연산자
12 in, not in 맴버쉽 연산자
13 not, or, and 논리 연산자

 

다음에는 제어문에 대해서 배워보도록 하겠습니다.

반응형
Comments