연산자(Operators)
프로그램은 입력을 받으면 데이터를 저장하고 처리한 후 원하는 결과로 출력한다. 지금까지 변수와 자료형을 통해 데이터를 저장하는 방식을 알아보았다. 이제 데이터를 연산을 통해 어떻게 처리할 수 있는지 알아보자.
1. 산술 연산자
파이썬은 다양한 수학 연산 기능을 제공한다.
+ | 덧셈 |
-
|
뺄셈
|
*
|
곱셈
|
/
|
나눗셈
|
//
|
몫
|
%
|
나머지
|
**
|
제곱
|
a = 5
b = 2
print(a + b) # 5 더하기 2
print(a - b) # 5 빼기 2
print(a * b) # 5 곱하기 2
print(a / b) # 5 나누기 2 (항상 결과는 float 타입)
print(a // b) # 5를 2로 나눈 몫
print(a % b) # 5를 2로 나눈 나머지
print(a ** b) # 5의 2 제곱
7
3
10
2.5
2
1
25
정수 0으로 다른 수를 나누게 되면 ZeroDivisionError가 발생함에 주의한다.
print(12 / 0)
File "/Users/edu/test.py", line 1, in <module>
print(12 / 0)
ZeroDivisionError: division by zero
2. 복합 연산자
산술 연산 이후 동일한 변수에 재 할당할 때, 연산을 축약할 수 있다.
a += b | a = a + b |
a -= b | a = a - b |
a *= b | a = a * b |
a /= b | a = a / b |
a //= b | a = a // b |
a %= b | a = a % b |
a **= b | a = a ** b |
a = 5
b = 2
a += b # a = a + b
b -= 1 # b = b - 1
print(a)
print(b)
7
1
만약 복합 연산자의 오른쪽에 숫자 하나만 있는 것이 아니라, 연산식이 온다면 오른쪽 연산식이 먼저 계산되고 복합 연산이 일어남에 주의한다.
말이 어려우므로 예제를 꼭 확인하자.
a = 5
b = 2
a -= b + 3 # a = a - (b + 3)
print(a)
0
a -= b + 3이라는 식이 있다면 a = a - b + 3으로 생각하여 답을 6이라고 잘못 계산할 수 있다.
하지만 복합 연산자의 오른쪽 연산식이 먼저 계산되므로 a = a - (b + 3)으로 생각하여 답을 0으로 계산해야 한다.
3. 비교 연산자
두 피연산자의 값을 비교하여 참(True), 거짓(False)을 반환할 수 있다.
<
|
미만 (작다)
|
<=
|
이하 (작거나 같다)
|
>
|
초과 (크다)
|
>=
|
이상 (크거나 같다)
|
==
|
같다
|
!=
|
같지 않다
|
print(2 < 5) # 2가 5보다 작은가?
print(2 <= 5) # 2가 5보다 작거나 같은가?
print(2 > 5) # 2가 5보다 큰가?
print(2 >= 5) # 2가 5보다 크거나 같은가?
print(2 == 5) # 2가 5와 같은가?
print(2 != 5) # 2가 5와 다른가?
True
True
False
False
False
True
너무나 당연하지만 문자열도 비교 연산이 가능하다.
print("one" == "one") # True
print("python" == "PYTHON") # False
print("vscode" != "VSCODE") # True
print("hello" != "hello") # False
4. 논리 연산자
a and b
|
a와 b가 모두 True이면 True
|
a or b
|
a와 b 중 하나라도 True이면 True
|
not a
|
a가 True이면 False, False이면 Tru
|
print(True and True) # True
print(True and False) # False
print(False and True) # False
print(False and False) # False
print(True or True) # True
print(True or False) # True
print(False or True) # True
print(False or False) # False
print(not True) # False
print(not False) # True
불린형에 대해 학습할 때 다른 자료형이 불린형으로 어떻게 평가되는지에 대한 내용이 있었다. (아래 표 참고)
0
|
False
|
1
|
True
|
-1
|
True
|
0.0
|
False
|
1.5
|
True
|
‘’
|
False
|
‘Hello’
|
True
|
[]
|
False
|
[1, 2, 3]
|
True
|
불린형 이외의 자료형으로 논리 연산을 할 때에도 위의 표를 기준으로 평가된다.
print(not 0) # True
print(not "") # True
print(not "python") # False
또한 논리 연산자는 비교 연산과 함께 사용되는 경우가 많다.
이런 경우에는 비교 연산이 먼저 실행되어 True/False로 평가되고, 그 이후에 and, or, not의 논리 연산이 실행된다.
print(1 == 2 and "hi" == "hi") # False and True
print(5 > 2 or 0 != 0) # True or False
print(not 4 <= 3) # not False
False
True
True
'Python' 카테고리의 다른 글
컨테이너(Container) 자료형 (1) | 2024.03.23 |
---|---|
조건문(Condition) (0) | 2024.03.23 |
사용자 입력(input)과 출력(print) (0) | 2024.03.17 |
변수(Variables) (0) | 2024.03.17 |
기본 자료형(Data types) (0) | 2024.03.17 |