연산자 란?

산술연산자
num1 = 10
num2 = 20
print(num1 + num2)
print('num1 + num2 = %.2f' % (num1 + num2))
str1 = 'good'
str2 = ' '
str3 = 'morning'
print(str1 + str2 + str3)
print(str3 + str2 + str1)
print(num1 + str1)
30
num1 + num2 = 30.00
good morning
morning good
Traceback (most recent call last):
File "C:\PythonEx\project\codetest\14.산술연산자.py", line 12, in <module>
print(num1 + str1)
~~~~~^~~~~~
TypeError: unsupported operand type(s) for +: 'int' and 'str'
덧셈 :
숫자끼리 문자끼리는 연산이 되지만 숫자와 문자는 에러가 난다.
문자의 경우 순서를 바꾸면 결과가 바뀐다. (단어 이어붙이기)
뺄셈 :
숫자끼리 가능하지만 문자는 에러가 난다.
곱셈 :
숫자끼리 가능, 문자와 숫자 가능

나눗셈 :
숫자끼리 가능
나눗셈의 결과는 항상 float 타입이다.
num1 = 10
num2 = 3
result = num1 / num2
print('result : {}'.format(result))
print('result : %.2f' %(result))
print(type(result))
result : 3.3333333333333335
result : 3.33
<class 'float'>
나머지와 몫 구하기
num1 = 10
num2 = 3
result = num1 % num2
result2 = num1 // num2
print(result)
print(result2)
1
3
divmod() 함수를 이용하여 나머지와 몫을 동시에 구할 수 있다.

num1 = 10
num2 = 3
result3 = divmod(num1, num2)
print('result : {}'.format(result3))
print('몫 : {}'.format(result3[0]))
print('나머지 : {}'.format(result3[1]))
result : (3, 1)
몫 : 3
나머지 : 1
divmod()함수는 num1을 num2로 나눠서 몫을 [0], 나머지를 [1]에 넣는다.

num1 = 2
num2 = 3
result = num1 ** num2
print('result : {}'.format(result))
result : 8
** 연산자는 앞의 숫자를 뒤의 숫자만큼 거듭제곱한다.
같은 논리로 제곱근을 구할 수 있다.

2의 1/2승은 2의 제곱근
2의 1/3승은 2의 3제곱근
2의 1/4승은 2의 4제곱근

math 모듈의 sqrt()함수와 pow()함수를 이용해 거듭제곱과 제곱근을 구할 수 있다.
pow()함수는 거듭제곱을 구하는 함수이다.
sqrt()함수는 제곱근만 구해주는 함수이다. (3제곱근, 4제곱근 불가)
import math #모듈 사용
print(math.sqrt(2)) #2의 제곱근
print(math.sqrt(3)) #3의 제곱근
print(math.sqrt(4)) #4의 제곱근
print(math.pow(2,3)) #2의 3승
print(math.pow(3,4)) #3의 4승
print(math.pow(5,2)) #5의 2승
1.4142135623730951
1.7320508075688772
2.0
8.0
81.0
25.0
복합연산자

num1 = 10
num1 += 3
print('num1 : {}'.format(num1))
num2 = 10
num2 -= 3
print('num2 : {}'.format(num2))
num3 = 10
num3 *= 3
print('num3 : {}'.format(num3))
num4 = 10
num4 /= 3
print('num4 : {}'.format(num4))
num5 = 10
num5 %= 3
print('num5 : {}'.format(num5))
num6 = 10
num6 //= 3
print('num6 : {}'.format(num6))
num7 = 10
num7 **= 3
print('num7 : {}'.format(num7))
num1 : 13
num2 : 7
num3 : 30
num4 : 3.3333333333333335
num5 : 1
num6 : 3
num7 : 1000
비교연산자


cha1 = 'A'
cha2 = 'S'
print('{} > {} : {}'.format(cha1, cha2, (cha1 > cha2)))
print('\'{}\' > \'{}\' : {}'.format(cha1, cha2, (cha1 > cha2)))
A > S : False
'A' > 'S' : False
작은 따옴표를 나타내고 싶으면 앞에 역슬래쉬를 붙여준다.
코드를 읽을 때 역슬래쉬와 작은 따옴표가 같이 죽어서 코드가 읽히지만
출력할 때는 그대로 나온다.

문자와 아스키 코드 변환

문자열 자체 비교

논리연산자


실습

age = int(input('나이 입력 : '))
vaccine = (age < 20) or (age >= 65)
print('age : {}, vaccine : {}'.format(age, vaccine))
나이 입력 : 25
age : 25, vaccine : False
Operator 모듈

