제로베이스 데이터 취업 파트타임/100일 챌린지_일일 학습 일지

제로베이스 데이터 파트타임 스쿨 학습 일지 [25.03.18]

김뚱입니다 2025. 3. 18. 23:29

[강의 요약]

[Ch 01. 파이썬 기초] 강의 수강

16_산술 연산자(덧셈, 뺄셈)부터 19_산술 연산자(거듭제곱)까지 강의 수강하였음

 

연산자 종류

  • 연산자 란?
    • result = data1 + data2
    • =, + : 연산자
    • data1, data2 : 피연산자
  • 산술 연산자 종류

 

 

[덧셈 연산자 코드]

# 정수를 이용한 덧셈
num1 = 9
num2 = 3

result = num1 + num2
print(f'result : {result}') # result : 12


# 실수를 이용한 덧셈
fNum1 = 3.14
fNum2 = 0.12
result = fNum1 + fNum2
print(f'result : {result}')	# rsult : 3.2600000000000002
print('result : %.2f' % result) # result : 3.26

# 정수와 실수를 이용한 덧셈
result = num1 + fNum2
print(f'result : {result}')	# result : 9.12

# 문자를 이용한 덧셈
str1 = 'Good'
str2 = ' '
str3 = 'morning'
result = str1 + str2 + str3
print(f'result : {result}')	# result : Good morning

# 숫자와 문자를 이용한 덧셈
result = num1 + str1
print(f'result : {result}')	# TypeError: unsupported operand type(s) for +: 'int' and 'str'

★코드 설명★

정수끼리 덧셈 : 가능

실수끼리 덧셈 : 가능

정수와 실수 덧셈 : 가능

문자끼리 덧셈 : 가능

숫자와 문자 덧셈 : 불가능

 

 

[뺄셈 연산자 코드]

# 정수를 이용한 뺄셈
num1 = 10
num2 = 20
result = num1 - num2	# result : -10
print(f'num1 : {num1}')
print(f'num2 : {num2}')
print(f'result : {result}')

# 실수를 이용한 뺄셈
fNum1 = 3.14
fNum2 = 0.14
result = fNum1 - fNum2	# result : 3.0
print(f'fNum1 : {fNum1}')
print(f'fNum2 : {fNum2}')
print(f'result : {result}')
print(f'type of result : {type(result)}')	# type of result : <class 'float'>

# 정수와 실수를 이용한 뺄셈
result = num1 - fNum1
print(f'num1 : {num1}')	# num1 : 10
print(f'fNum1 : {fNum1}')	# fNum1 : 3.14
print(f'result : {result}')	# result : 6.859999999999999
print(f'type of result : {type(result)}')	# type of result : <class 'float'>

# 문자(열)을 이용한 뺄셈
str1 = 'Good'
str2 = ' '
str3 = 'afternoon'
result = str1 - str2 - str3
print('result : {}'.format(result))	# TypeError: unsupported operand type(s) for -: 'str' and 'str'

★코드 설명★

정수끼리 뺄셈 : 가능

실수끼리 뺄셈 : 가능

정수와 실수 뺄셈 : 가능

문자(열)끼리 뺄셈 : 불가능

 

 

[곱셈 연산자 코드]

# 숫자(정수, 실수)를 이용한 곱셈
num1 = 20
fNum1 = 3.14
result = num1 * fNum1
print('result : {}'.format(result))	# result : 62.800000000000004
print('result : %.2f' % result)	# result : 62.80

# 문자(열)을 이용한 곱셈
str1 = 'Hi '
result = str1 * 7
print('result : {}'.format(result))	# result : Hi Hi Hi Hi Hi Hi Hi

★코드 설명★

숫자를 이용한 곱셈 : 가능

문자(열)을 이용한 곱셈 : 특이하게 곱한 횟수만큼 반복해서 결과가 나온다!

 

 

[나눗셈 연산자 코드]

# 숫자(정수, 실수)를 이용한 나눗셈
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

# 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))	# ZeroDivisionError: division by zero

★코드 설명★

숫자를 이용한 나눗셈 : 무한대로 나오는 결과를 형식 문자를 이용해서 제한출력 할 수 있다.

0으로 나눗셈 하는 경우 : 결과 항상 0

0으로 나누는 경우 : 0으로 나눌 수 없음! 에러뜸

 

# 나눗셈의 결과는 항상 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'>

★코드 설명★

나눗셈의 결과는? : 항상 float (딱 떨어지는 수도 마찬가지)

 

 

[나머지 연산자와 몫 연산자 코드]

# 나눗셈 결과
num1 = 10
num2 = 3
result = num1 / num2
print('num1: {}, num2: {}, result: {}'.format(num1, num2, result))
# 결과 : num1: 10, num2: 3, result: 3.3333333333333335

# 나머지 연산자 %를 이용해 나머지를 구함
result = num1 % num2
print('num1: {}, num2: {}, result: {}'.format(num1, num2, result))
# 결과 : num1: 10, num2: 3, result: 1

# 나눗셈 결과 몫만 구함
result = num1 // num2
print('num1: {}, num2: {}, result: {}'.format(num1, num2, result))
# 결과 : num1: 10, num2: 3, result: 3

# divmod() 함수 사용
# 나머지와 몫을 한번에 구할 수 있음
result = divmod(num1, num2)
print('result: {}'.format(result))
print('몫: {}'.format(result[0]))
print('나머지: {}'.format(result[1]))
'''
결과result: (3, 1)
몫: 3
나머지: 1
'''

★코드 설명★

나눗셈 할때 나머지만 구하고 싶다 : 나머지 연산자 % 사용

나눗셈할 때 몫만 구하고 싶다 : // 사용

나머지와 몫을 동시에 구하고 싶다 : divmod() 함수 사용

result: (3, 1) → 튜플이라는 자료 구조이용(나중에 설명)

인덱스[0], 인덱스[1]의 값을 가져오는거임 그냥



 

[거듭제곱 연산자]

# 같은 수를 여러번 곱한 값을 구한다.
num1 = 2
num2 = 3
result = num1 ** num2

print('num1 : {}'.format(num1))	# num1 : 2
print('num2 : {}'.format(num2))	# num2 : 3
print('result : {}'.format(result))	# result : 8


num1 = 2
num2 = 5
result = num1 ** num2

print('num1 : {}'.format(num1))	# num1 : 2
print('num2 : {}'.format(num2))	# num2 : 5
print('result : {}'.format(result))	# result : 32


# pow()함수를 이용한 거듭제곱 구하기
import math	# math 라이브러리 사용을 위해 import
print('2의 3제곱 %f' % math.pow(2, 3))	# 2의 3제곱 8.000000
print('3의 4제곱 %f' % math.pow(3, 4))	# 3의 4제곱 81.000000

★코드 설명★

n의 m승 한 결과를 구하는 거듭제곱을 할 때 연산자 **를 이용한다.

pow() 함수를 이용하여 거듭제곱을 편하게 구할 수 있다.

 

 

[제곱근 구하기]

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

# 2의 제곱근 구하기
result = 2 ** (1/2)
print('2의 제곱근 %f' % result)		# 2의 제곱근 1.414214
print('2의 제곱근 %.2f' % result)	# 2의 제곱근 1.41

# 2의 3제곱근 구하기
result = 2 ** (1/3)
print('2의 3제곱근 %f' % result)	# 2의 3제곱근 1.259921
print('2의 3제곱근 %.2f' % result)	# 2의 3제곱근 1.26

# 2의 4제곱근 구하기
result = 2 ** (1/4)
print('2의 4제곱근 %f' % result)	# 2의 4제곱근 1.189207
print('2의 4제곱근 %.2f' % result)	# 2의 4제곱근 1.19


# sqrt() 함수를 이용한 제곱근 구하기
import math

print('2의 제곱근 %f' % math.sqrt(2))	# 2의 제곱근 1.414214
print('2의 제곱근 %.2f' % math.sqrt(2))	# 2의 제곱근 1.41

print('3의 제곱근 %f' % math.sqrt(3))	# 3의 제곱근 1.732051
print('3의 제곱근 %.2f' % math.sqrt(3))	# 3의 제곱근 1.73

print('4의 제곱근 %f' % math.sqrt(4))	# 4의 제곱근 2.000000
print('4의 제곱근 %.2f' % math.sqrt(4))	# 4의 제곱근 2.00

★코드 설명★

제곱근 공식을 이용하면 2의 제곱근, 2의 3제곱근 등을 구할 수 있지만

sqrt() 함수를 이용하면 오직 '제곱근'만 구할 수 있다는 점을 유의해야한다.

그래도 꽤나 유용한 함수여서 자주 사용한다.

 

 

 

[나의 생각 정리]

  • 기존에 알고 있는 내용을 복습할 수 있어서 유익했음
  • 공식으로만 코드를 작성해도 좋으나 여러 함수를 알고 사용하면 편리함

 

[적용점]

  • 코딩 테스트 문제에서도 산술 연산자를 자주 사용하므로 꼭 숙지해야 하는 내용이라 생각함

 

 

“이 글은 제로베이스 데이터 스쿨 주 3일반 강의 자료 일부를 발췌하여 작성되었습니다.”