
프로그램 로직 구성의 필수 요소 = 연산자
| 연산자 | 의미 | 예 |
|---|---|---|
| + | 값을 더하기 | 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 |
| ** | 좌변의 값을 우변의 값으로 제곱 | a = 3 ** 2 # a는 9 |
1) 산술 연산자의 기본 동작
1 >>> a, b = 3, 2
2 >>> print("{0} + {1} = {2}".format(a, b, a + b))
3 3 + 2 = 5
4 >>> print("{0} - {1} = {2}".format(a, b, a - b))
5 3 - 2 = 1
6 >>> print("{0} * {1} = {2}".format(a, b, a * b))
7 3 * 2 = 6
8 >>> print("{0} / {1} = {2}".format(a, b, a / b))
9 3 / 2 = 1.5
10 >>> print("{0} // {1} = {2}".format(a, b, a // b))
11 3 // 2 = 1
12 >> print("{0} % {1} = {2}".format(a, b, a % b))
13 3 % 2 = 1
14 >>> print("{0} ** {1} = {2}".format(a, b, a ** b))
15 3 ** 2 = 9
2) 산술 연산자 우선 순위
1 >>> a, b, c = 2, 3, 5
2 >>> print((a + b) - c)
3 0
4 >>> print(b - c + a)
5 0
6 >>> print(a + (b * c)
7 17
8 >>> print(a * b / c)
9 1.2
3) 문자형과 숫자형 연산
1 >>> a, b, c = "2", "3", 4
2 >>> print(a + b)
3 23
4 >>> print(int(a) + int(b))
5 5
6 >>> print(b + c) # TypeError 발생 → 문자열 "3" 이 정수 4와 문자열 접합(+) 연산 시도를 했기 때문
7 >>> print(int(b) + c)
8 7 # 숫자형
9 >>> print(b + str(c))
10 34 # 문자형
| 연산자 | 의미 | 예 |
|---|---|---|
| = | 대입 (할당) | a = 3 |
| += | 좌변의 변수에 우변의 값을 더해서 좌변의 변수에 대입 | a += 2 # a는 5 |
| -= | 좌변의 변수에 우변의 값을 빼서 좌변의 변수에 대입 | a -= 2 # a는 1 |
| *= | 좌변의 변수에 우변의 값을 곱해서 좌변의 변수에 대입 | a *= 2 # a는 6 |
| /= | 좌변의 변수를 우변의 값으로 나누어 좌변의 변수에 대입 | a /= 2 # a는 1.5 |
| //= | 좌변의 변수를 우변의 값으로 나눈 몫을 좌변의 변수에 대입 | a //= 2 # a는 1 |
| %= | 좌변의 변수를 우변의 값으로 나눈 나머지를 좌변의 변수에 대입 | a %= 2 # a는 1 |
| **= | 좌변의 변수를 우변의 값으로 제곱해서 좌변의 변수에 대입 | a **= 2 # a는 9 |
| 연산자 | 의미 | 예 |
|---|---|---|
| == | 양변의 값이 같으면 True를 반환 | a,b = 3,2 a==b # False |
| != | 양변의 값이 다르면 True를 반환 | a!=b # True |
| > | 좌변의 값이 우변의 값보다 크면 True를 반환 | a > b # True |
| < | 좌변의 값이 우변의 값보다 작으면 True를 반환 | a < b # False |
| >= | 좌변의 값이 우변의 값보다 크거나 같으면 True를 반환 | a >= b # True |
| <= | 좌변의 값이 우변의 값보다 작거나 같으면 True를 반환 | a <= b # False |
| 연산자 | 의미 | 예 |
|---|---|---|
| and | 양변의 값 모두 True일 경우에만 True를 반환 | a,b = True, False a and b # False |
| or | 양변의 값 모두 False일 경우에만 False를 반환 | a,b = True, False a or b # True |
| not | True일 경우, False일 경우 True를 반환 | a = True not a # False |
1 >>> gender, age = "male", 20
2 >>> gender == "female" and age >=18
3 False
4 >>> gender == "female" or age >=18
5 True
6 >>> gender == "female" or age < 18
7 False
※ 관계 연산자가 논리 연산자에 우선하며,
논리 연산자 중 not 연산자가 and / or 연산자 보다 우선 순위이다.
| 연산자 | 의미 | 예 |
|---|---|---|
| & | 양변의 비트 값 모두 1일 경우에만 1을 반환 | x, y = 1, 0 x & y # 0 |
| | | 양변의 값 모두 0일 경우에만 0을 반환 | x, y = 1, 0 x | y # 1 |
| ^ | 양변의 값이 다를 경우 1, 같을 경우 0을 반환 | x, y = 1, 0 x ^ y # 1 |
| ~ | 비트 값이 1일 경우 0, 0일 경우 1을 반환 | x = 1 ~x # -2 |
| << | 좌변의 값을 우변의 값만큼 비트를 왼쪽으로 이동 | x = 4 x << 1 # 8 → 정수값이 2배로 증가 |
| >> | 좌변의 값을 우변의 값만큼 비트를 오른쪽으로 이동 | x = 8 x >> 1 # 4 → 정수값이 반으로 감소 |
해당 포스팅은 아래의 사이트를 참고하여 작성하였습니다.
SW Expert Academy https://swexpertacademy.com/