[Python] 기초3-1. 산술연산자

HyunJin·2024년 5월 6일

✍ 연산자 종류

  • 산술연산자: +, -, *, %, //, **
  • 복합연산자: =, +=, *=, /=, %=, %=, //=
  • 비교연산자: >, >=, <, <=, ==, !=
  • 논리연산자: and, or, not

✍ 산술연산자

1. 덧셈연산자

1) 정수 덧셈

num1 = 9
num2 = 3
result = num1 + num2
print(f'result: {result}') # 결과값 result: 12

2) 실수 덧셈

fnum1=3.14
fnum2=0.12
result = fnum1 + fnum2

print(f'result: {result}')  # result: 3.2600000000000002
print('num1+num2=%.2f' %(num1+num2)) # num1+num2 = 3.26

3) 정수와 실수 덧셈

num1 = 9
fnum1 = 3.14
result = num1 + fnum1
print(f'result: {result}') # result: 12.14
print(f'type of result: {type(result)}') # 

4) 문자를 이용한 덧셈

str1='Good'
str2=' '
str3='moring'
result= str1 + str2 + str3
print(f'result: {result}') # result: Good moring

❌ 숫자와 문자를 이용한 덧셈은 불가능❌

result= num1 + str1
print(f'result: {result}')

# 결과값은 에러
  result= num1 + str1
  TypeError: unsupported operand type(s) for +: 'int' and 'str'

✔ 실습

  • 국어, 영어, 수학 점수를 입력하고 합계를 출력

2. 뺄셈연산자

1) 정수 뺄셈

num1 = 9
num2 = 3
result = num1 - num2
print(f'result: {result}') # 결과값 result: 6

2) 실수 뺄셈

fnum1=3.14
fnum2=0.12
result = fnum1 - fnum2

print(f'result: {result}')  # result: 3.02
print('num1-num2=%.2f' %(fnum1-fnum2)) # num1-num2=3.02
print(f'type of result: {type(result)}') # type of result: <class 'float'>

3) 정수와 실수 뺄셈

num1 = 9
fnum1=3.14
result = num1 - fnum1
print(f'result: {result}') # result: 5.859999999999999
print(f'type of result: {type(result)}') # type of result: <class 'float'>

❌ 문자열을 이용한 뺄셈은 불가능❌

str1 = 'Good'
str2 = ' '
str3 = 'moring'
result = str1 - str2 - str3
print(f'result: {result}')

# 결과값은 에러
 result = str1 - str2 - str3
             ~~~~~^~~~~~
 TypeError: unsupported operand type(s) for -: 'str' and 'str'

✔ 실습

  • 이번달 알바비와 카드값을 입력하고 남은 금액이 얼마인지 출력

3. 곱셈 연산자

1) 숫자(정수, 실수)를 이용한 곱셈

num1 = 20
fnum1 = 3.14
result = num1 * fnum1

print('result: {}' .format(result)) #result: 62.800000000000004
print(f'result: %.2f' %result) #result: 62.80

2) 문자(열)을 이용한 곱셈

str1='Hi '
result=str1*5

print('result: {}' .format(result)) # result: Hi Hi Hi Hi Hi 

4. 나눗셈 연산자

1) 숫자(정수, 실수)를 이용한 나눗셈

num1 = 10
num2 = 3
result= num1/num2

print('num1: {}, num2: {}' .format(num1,num2)) 
# num1: 10, num2: 3

print('result: {}' .format(result))
# result: 3.3333333333333335

print('result: %.2f'  % result)
# result: 3.33

print('type of result: {}' .format(type(result)))
# type of result: <class 'float'>
  • 나눗셈의 결과는 항상 float
num1 = 20
num2 = 10
result= num1/num2

print('result: {}' .format(result)) 
# result: 2.0
print('type of result: {}' .format(type(result))) 
# type of result: <class 'float'>

2) 0을 나눗셈 하는 경우

  • 결과는 항상 0
num1 = 0
num2 = 3
result= num1/num2

print('result: {}' .format(result)) # result: 0.0

❌ 0으로는 나눌 수가 없음❌

num1 = 0
num2 = 3
result= num2/num1

print('result: {}' .format(result))

# 결과값은 에러
  result= num2/num1
            ~~~~^~~~~
  ZeroDivisionError: division by zero

✔ 실습

  • 국어, 영어, 수학 점수를 입력하고 평균을 출력

5. 나머지와 몫 연산자

1) 나머지 연산자

  • 나눗셈 결과의 나머지만 구함
  • 나머지 연산자: %
num1=10
num2=3
result1=num1 / num2
result2=num1 % num2

print( f'result1:{result1}') # result1:3.3333333333333335
print( f'result2:{result2}') # result2:1

2) 몫 연산자

  • 나눗셈 결과의 몫만 구함
  • 나머지 연산자: //
num1=14
num2=3
result1=num1 / num2
result3=num1 // num2

print( f'result1:{result1}') # result1:4.666666666666667
print( f'result3:{result3}') # result3:4

3) 나머지와 몫을 한번에 구하기

  • divmod() 함수
  • 첫번재 결과가 몫, 두번째 결과가 나머지
num1=14
num2=3
result=divmod(num1,num2)

print('result: {}'.format(result)) # result: (4, 2)
print('몫: {}'.format(result[0])) # 몫: 4
print('나머지: {}'.format(result[1])) # 나머지: 2

✔ 실습 1

  • 학급 전체 학생수 입력
  • 한 모둠에 속하는 학생 수 입력
  • 전체 모듬수와 남는 학생 수 출력
1) 나머지와 몫 연산자 사용

2) divmod() 함수 사용

✔ 실습 2

  • 123개의 사과를 4개씩 직원들한테 나누어 주려고 한다.
  • 최대 나누어 줄 수 있는 직원수와 남는 사과 개수를 출력해 보자


6. 거듭제곱과 제곱근 연산자

1) 거듭제곱 연산자

  • 같은 수를 여러 번 곱한 값을 구함
  • 거듭제곱 연산자: **
num1=2
num2=10
result = num1**num2
print('result: {}' .format(result)) # result: 1024

2. 제곱근 구하기

  • n의 m 제곱근 공식: n ** (1/m)

  • 2의 제곱근 구하기

result1= 2**(1/2)
print('2의 제곱근: {}' .format(result1)) 
# 2의 제곱근: 1.4142135623730951
print('2의 제곱근: %.2f' % result1)
# 2의 제곱근: 1.41
  • 2의 3제곱근 구하기
result2= 2**(1/3)
print('2의 세제곱근: {}' .format(result2))
# 2의 세제곱근: 1.2599210498948732
print('2의 세제곱근: %.2f' % result2)
# 2의 세제곱근: 1.26

3. math 모듈의 pow()와 sqrt()함수

  • pow(): 가듭제곱 출력
import math

print(math.pow(2,3)) # 8.0
print(math.pow(2,4)) # 16.0
print(math.pow(5,8)) # 390625.0
  • sqrt() 함수: 제곱근 출력
  • sqrt() 함수는제곱근만 출력 가능 ❗
  • 즉, sqrt()함수는 세제곱근, 네제곱근을 구할 수 없음❌
import math

print(math.sqrt(2)) # 1.4142135623730951
print(math.sqrt(3)) # 1.7320508075688772
print(math.sqrt(4)) # 2.0

✔ 실습

  • 첫달에는 200원의 용돈을 받고, 매월 이전 달의 2배씩 인상된 금액을 받음
  • 12개월째 되는 달의 금액을 계산

profile
데이터 분석가 준비생

0개의 댓글