연산자란?
특정한 작업을 하기 위해서 사용하는 기호
산술 연산자 :+, -, *, /, %, //, **
할당 연산자 :=, +=, -=, *=, /=, %=, //=
비교 연산자 :>, >=, <, <=, ==, !=
논리 연산자 :and, or, not
✅ 숫자 덧셈
print(1+2) print(1+3.04)
3 4.04
✅ 문자 덧셈
print('가나다'+'abc')
가나다abc
보는 것과 같이 문자를 더하면 순서대로 나열되어 출력되는 것을 확인할 수 있다.
✅ 문자와 숫자를 더하면?
print(123+'abc')
TypeError: unsupported operand type(s) for +: 'int' and 'str'
컴퓨터는 이것을 연산할 수 없다😢
✅ 숫자 뺄셈
print(1-2) print(1-3.04)
-1 -2.04
✅ 문자 뺄셈
print('가나다'-'abc')
TypeError: unsupported operand type(s) for -: 'str' and 'str'
문자열끼리는 뺄셈이 불가능하다!
✅ 숫자 곱셈
print(1*2) print(2.5*3.02)
2 7.55
✅ 문자 곱셈
print('가나다'*3)
가나다가나다가나다
✅ 숫자 나눗셈
print(100/3)
33.333333333333336
✅ 문자 나눗셈
print('가나다'/3)
TypeError: unsupported operand type(s) for /: 'str' and 'int'
문자열끼리 나눗셈도 안된다!
초등학교 때 20÷3을 어떻게 표현했는지 기억나는가?
기억이 난다면 몫은 '6', 나머지는 '2'로 배웠다. 몫과 나머지를 표현해주는 연산자가 파이썬에 있는데 바로 //
와 %
이다.
print(20//3) print(20%3)
6 2
❗이런 방법 말고도 divmod()
라는 함수도 있다.
print(divmod(20,3)) print(divmod(35,4))
(6, 2) (8, 3)
2의 3제곱이나 2의 세제곱근 등을 파이썬으로 표현하는 방법은 **
을 사용하면 된다.
print(2**3) print(2**(1/3))
8 1.2599210498948732
❗이런 방법 말고도 제곱근을 구해주는 sqrt()
, 밑과 지수를 입력하면 값을 구해주는 pow()
라는 함수도 있다.
import math print(math.sqrt(5)) print(math.pow(2,3)) print(math.pow(2,1/3))
2.23606797749979 8.0 1.2599210498948732
✅ 할당연산자 : 오른쪽 연산자를 왼쪽에 할당
✅ 복합연산자
+=
: 덧셈 연산 후 할당
-=
: 뺄셈 연산 후 할당
*=
: 곱셈 연산 후 할당
/=
: 나눗셈 연산 후 할당
%=
: 나머지 연산 후 할당
//=
: 몫 연산 후 할당
**=
: 거듭제곱 연산 후 할당a=20 a+=10 print(a)
30
이 상황에서 a
는 변화가 없는 한 영원히 30이라는 값으로 저장되어 있다.
>
: 왼쪽 수가 오른쪽보다 큰지 참 거짓 판별 (결과는 항상 bool)
<
: 왼쪽 수가 오른쪽보다 작은지 참 거짓 판별
>=
: 왼쪽 수가 오른쪽보다 크거나 같은지 참 거짓 판별
>=
: 왼쪽 수가 오른쪽보다 작거나 같은지 참 거짓 판별print(20>30) print(20<30) print(20<=20)
False True True
✅ 문자끼리의 비교는 아스키 코드를 이용해 비교된다.
print('A'>'S')
False
❗ 아스키 코드는 ord()
함수로 확인이 가능하고, 반대로는 chr()
함수가 있다.
print(ord('A')) print(chr(66))
65 B
✅ 문자열끼리의 크기 비교는 사전식 배열을 따른다. (사전 앞에 있을 수록 작은 취급!)
print('Apple'>'Banana') print('Cookie'>'Banana')
False True
✅ 문자열끼리 같은지 다른지 여부는 ==
과 !=
로 확인한다.
print('Apple'=='Apple') print('Apple'!='Apple') print('Apple'=='Banana') print('Apple'!='Banana')
True False False True
논리연산자 : and
,or
,not
✅ and
A and B : A와 B 모두
True
여야True
print(True and True) print(True and False) print(False and True) print(False and False)
True False False False
✅ or
A or B : A 또는 B 둘 중 하나만
True
여도True
print(True or True) print(True or False) print(False or True) print(False or False)
True True True False
✅ not
not A : A의 상태를 부정
print(not True) print(not False)
False True