프로그래밍언어/Python

파이썬 - 연산자(산술, 대입, 관계, 논리, 비트연산자 , 우선순위)

멍토 2020. 1. 14.

산술 연산자

연산자 의미
+ 양변의 값을 더하기 a = 3 + 2   # a = 5
- 양변의 값을 배기 a = 3 - 2   # a = 1
* 양변의 값을 곱하기 a = 3 * 2   # a = 6
/ 좌변의 값을 우변의 값으로 나누기 a = 3 / 2   # a = 1.5
// 좌변의 값을 우변의 값으로 나눈 몫 a = 3 // 2  #  a = 1
% 좌변의 값을 우변의 값으로 나눈 나머지 a = 3 % 2  # a = 1
** 좌변의 값을 우변의 값으로 제곱 ㅁ = 3 ** 2 # a = 9

 

더하기 연산

a, b, c = "2", "3", 4
print(a + b)
=> 23    #문자열 더하기 연산이므로 합쳐져서 나온다.
print(int(a) + int(b))
=> 5    #int 형으로 캐스팅해야 원하는 결과가 나온다.
print(b + c)
=> TypeError : 문자열 + 정수형을 하면 Error가 난다.
print(int(b) + c)
=> 7
print(b + str(c))
=> 34   #정수형을 문자형으로 캐스팅한후 더했으므로 34가 나온다.

 

대입연산자

연산자 의미
= 대입(할당) a = 3
+= 좌변의 변수에 우변의 값을 더해 대입 a = 3; a+=2  # a = 5
-= 좌변의 변수에 우변의 값을 빼서 대입 a = 3; a-=2  # a = 1
*= 좌변의 변수에 우변의 값을 곱해서 대입 a = 3; a *= 2 # a = 6
/= 좌변의 변수에 우변의 값을 나누어 대입 a = 5; a /=2 # a = 2.5
//= 좌변의 변수에 우변의 값을 나누어 몫을 대입 a = 5; a //= 2 # a = 2
%= 좌변의 변수에 우변의 값을 나누어 나머지를 대입 a = 5; a %= 2 # a = 1
**= 좌변의 변수에 우변의 값으로 제곱하여 대입 a = 5; a **=2  % a = 25

 

관계연산자

연산자 의미
== 양변의 값이 같다면 True리턴, 아니라면 False 리턴 2 == 2  #True
!= 양변이 다르다면 True, 아니라면 False 2 != 2 #False
> 좌변이 우변보다 크다면 True, 작거나 같다면 False 2 > 2 #False
< 좌변이 우변보다 작다면 True, 같거나 크다면 False 2 < 3 # False
>= 좌변이 우변보다 크거나 같다면 True, 작다면 False 2>=2  True
<= 좌변이 우변보다 작거나 같다면 True, 크다면 False 2 <= 2 True

 

#파이썬에서는 수학처럼 양쪽 범위체크가 가능하다.

파이썬의 경우
a가 5와 10사이에 있는지 알고싶을때
5 <= a <= 10
5~10 사이라면 True를
아니라면 False를 리턴한다.
다른 언어의 경우
a >= 5 && a<= 10    #&&는 and 연산이다.
a가 5보다 크거나 같고 (그리고) a가 10보다 작거나 같다면
True를 리턴한다.

 

논리 연산자

연산자 의미
and 양쪽의 값이 모두 True일때만 True를 리턴 True and False  #False
or 양쪽 값중 하나만 True라면 True를 리턴 True or False  #True
not True 일경우 False를 False라면 True를 리턴한다. not True  #False

 

비트 연산자

연산자 의미
& 양변의 비트값이 모두 1일 경우 1을 반환(2진수로 계산시) 0101 & 1001  # 0001
| 양변의 비트값중 하나라도 1이라면 1을 반환 0010 | 0101  #0111
^ 양변값이 다를경우 1, 같을 경우 0을 반환(xor) 0110 ^ 0101  # 0011
~ 비트 값이 1일 경우 0, 0일 경우 1을 반환 ~0001 # 1110
<< 좌변의 값을 우변의 값 만큼 왼쪽으로 비트이동 4 << 1 # 100 -> 1000 => 8
>> 좌변의 값을 우변의 값만큼 우측으로 비트이동 4>>1 # 100 -> 10 => 2

 

우선순위 연산자 설명
1 () 괄호
2 ** 제곱
3 +, -, ~ 부호, 비트부정
4 +, /, //, % 곱, 나누기, 몫, 나머지
5 +, - 더하기, 빼기
6 <<, >> 비트이동
7 & 비트 논리곱
8 ^ 비트 배타적 논리합(exclusive or, xor)
9 | 비트 논리함
10 <, <=, >, >=, ==, != 작다, 작거나같다, 크다, 크거나 같다, 같다, 같지 않다.
11 not 부정
12 and 논리곱
13 or 논리합

1. 괄호가 최우선

2. 산술연산이 비트연산보다 우선

3. 관계연산이 논리연산보다 우선

 

댓글

💲 광고입니다.