1. 연산자의 종류
연산자의 종류
- 연산자
- 프로그램에서 연산을 수행하기 위하여 사용되는 특수 기호
| 종류 | 설명 |
|---|
| 대입연산자 | 변수에 숫자나 문자열 등의 자료를 대입하거나 연산 결과를 다른 변수에 할당 |
| 산술 연산자 | 더하기(+), 빼기(-), 곱하기(*), 나눗셈의 몫(/), 나머지(%) |
| 단항 연산자 | 어떤 변수에 대한 연산 결과를 다시 변수 자신에게 적용 |
비교 연산자 (관계 연산자) | 두 개의 변수값 간의 관계를 비교하여 참(1)이나 거짓(0)의 결과를 반환 |
| 논리 연산자 | 좌변과 우변을 논리연산하고, 참일때는 1, 거짓일때는 0을 반환 |
대입 연산자
- 대입 연산자(
=)는 좌변에 우변을 대입
- 수학은
같다라는 의미지만 프로그래밍에서는 대입한다라는 의미로 사용
- 변수에 값을 대입하는 경우 - 일반적인 변수의 초기화 과정
pi = 3.14
money = 12000
- 변수에 다른 변수를 대입하는 경우 - 다른 변수의 값이 복사
a = 3
b = a
a = 1
b = 2
a, b = b, a
대입 연산자를 활용한 swap 처리
a = 1
b = 2
print(a)
print(b)
a,b = b,a
print(a)
print(b)
산술 연산자
- 일반적인 사칙 연산
- 덧셈(
+), 뺄셈(-), 곱셈(*), 나눗셈(/, //, %)
- 사칙연산의 결과는 대입연산자를 통해 다른 변수에 대입될 수 있다.
- 정수와 실수의 연산 시에는 정수가 실수 형태로 변환되어 처리되기 때문에 결과는 실수가 된다.
- 모든 수는 0으로 나눌 수 없다.
| 연산자 | 설명 | 예시 | 결과 |
|---|
+ | 덧셈 (Addition) | 3 + 2 | 5 |
- | 뺄셈 (Subtraction) | 5 - 3 | 2 |
* | 곱셈 (Multiplication) | 4 * 3 | 12 |
** | 거듭제곱 (Exponentiation) | 2 ** 3 | 8 |
/ | 나눗셈 (Division, 결과는 항상 float) 나눗셈의 몫을 계산하기 위해 소수점 자리까지 계속 연산을 수행하다가 프로그램이 처리할 수 없는 자리수까지 진행되면 오차를 발생시킴 | 7 / 2 | 3.5 |
// | 몫 연산 (Floor Division, 나눗셈 후 소수점 버림) | 7 // 2 | 3 |
% | 나머지 연산 (Modulo, 나눗셈의 나머지) | 7 % 2 | 1 |
산술 연산자 사용하기
- 산술 연산자의 결과를 다른 변수에 할당하여 출력하거나 직접 출력할 수 있다.
a = 3
b = 4
c = a + b
print(c)
7
print( a - b )
print( a * b )
print( a / b )
-1
12
0.75
나눗셈과 거듭제곱
print( 10 / 3 )
3.3333333333333335
print( 10 // 3 )
3
print( 10 % 3 )
1
print( 3 ** 5 )
243
단항 연산자
- 단항 연산자
- 어떤 변수의 연산 결과를 다시 그 변수 자신에게 대입하고자 할 경우 약식 표현
x = 100
x = x + 5
x = 100
x += 5
- 단항 연산자는 모든 사칙 연산자에게 표현 가능
+=, -=, *=, /=, //=, %=
a = 1
a += 100
a *= 10
a //= 3
a %= 5
print(a)
1
비교 연산자
| 의미 | 연산자 | 예시 | 결과 |
|---|
| 같다 | == 혹은 is | 5 == 5 / a is b (a = b = [1, 2, 3]) | True |
| 다르다 | != 혹은 is not | 5 != 3 / a is not b (a = [1, 2, 3]; b = [1, 2, 3]) | True |
| 초과 | > | 7 > 3 | True |
| 이상 | >= | 4 >= 4 | True |
| 미만 | < | 2 < 5 | True |
| 이하 | <= | 6 <= 10 | True |
print(100 == 50)
print(100 != 50)
print(100 > 50)
print(100 < 50)
print(100 >= 50)
print(100 <= 50)
False
True
True
False
True
False
rerult = 100 > 50
print(rerult)
True
논리 연산자
- 논리 연산자
- 여러 비교 연산자의 결과나 논리값에 대해
AND 나 OR 연산을 수행하여 결과를 얻는다.
AND
OR
print(True and True)
print(True and False)
print(False and True)
print(False and False)
True
False
False
False
print(True or True)
print(True or False)
print(False or True)
print(False or False)
True
True
True
False
NOT 연산자
- boolean 형의 변수를 부정
- True나 False를 부정하여 반대의 결과를 얻음
print(not True)
print(not False)
False
True
비교 연산과 논리 연산의 결합
a = 100 > 50
b = 20 > 10
print(a and b)
True
c = 100 >= 100 and 50 == 10
print(c)
False
print( 100 != 200 and 100 == 100)
True
완전 항등 연산자 is
- 항등 연산자
==,!=
- 데이터 타입에 상관없이 두 변수의 내용이 일치하면 True
print(1 == 1.0)
print(1 != 1.0)
print(1 is 1.0)
print(1.0 != 1.0)
print(1 != 1.0)
연산자 우선 순위
| 순위 | 연산자 | 설명 | 예시 |
|---|
| 1 | () | 괄호: 가장 높은 우선순위 | (3 + 2) * 4 → 20 |
| 2 | ** | 거듭제곱 | 2 ** 3 → 8 |
| 3 | +x, -x, ~x | 단항 연산자 (양수, 음수, 비트 반전) | -5 → -5, ~2 → -3 |
| 4 | *, /, //, % | 곱셈, 나눗셈, 몫, 나머지 | 10 / 2 → 5.0, 7 % 3 → 1 |
| 5 | +, - | 덧셈, 뺄셈 | 5 + 3 → 8, 10 - 4 → 6 |
| 6 | <<, >> | 비트 이동 연산자 | 4 << 1 → 8 |
| 7 | & | 비트 AND | 5 & 3 → 1 |
| 8 | ^ | 비트 XOR | 5 ^ 3 → 6 |
| 9 | ` | ` | 비트 OR |
| 10 | ==, !=, >, <, >=, <=, is, is not, in, not in | 비교 및 항등 연산자 | 5 > 3 → True, [1, 2] is [1, 2] → False |
| 11 | not | 논리 NOT | not True → False |
| 12 | and | 논리 AND | True and False → False |
| 13 | or | 논리 OR | True or False → True |
| 14 | `=, +=, -=, *=, /=, //=, %=, **=, &=, | =, ^=, >>=, <<= ` | 할당 연산자 |