본문 바로가기
Python

[Python] 산술연산 - 사칙연산, 제곱, 절대값 구하기

by A6K 2022. 10. 23.

파이썬으로 숫자 데이터를 다룰 때, 산술 연산들을 많이 사용한다.

사칙연산

더하기, 빼기, 나누기, 곱하기를 사칙연산이라고 한다. 숫자 데이터를 다룰 때 기본적으로 사용하게 되는 연산이다. 파이썬에서 더하기, 빼기, 나누기, 곱하기는 각각 +, -, /, * 문자를 사용한다.

예를 들어보자.

num1 = 3
num2 = 2

print(num1 + num2) # 더하기
print(num1 - num2) # 빼기
print(num1 * num2) # 곱하기
print(num1 / num2) # 나누기

# 5
# 1
# 6
# 1.5

더하기와 빼기는 우리가 흔히 사용하는 문자여서 어렵지는 않는데, 곱하기가 '×' 문자가 아닌 '*' 문자를 사용한다는 점과 나누기 역시 '÷' 문자가 아닌 '/' 문자를 사용한다는 점이 헷갈릴 수 있다.

몫과 나머지 구하기

사칙연산의 나누기는 결과를 소수점으로 계산해서 반환해준다. 위의 예제에서 3을 2로 나누면 1.5라는 소수점 결과가 출력된다.

하지만 나누기를 할 때, 몫과 나머지를 계산하고 싶은 경우가 있다. 파이썬은 '퍼센트(%)' 문자와 '슬래시 두개 (//)'문자를 이용해서 나머지와 몫을 구할 수 있다.

예를 들어보자.

num1 = 3
num2 = 2

print(3 % 2) # 나머지 연산
print(3 // 2) # 몫 구하기

# 1
# 1

 3을 2로 나눈 몫은 1이고, 나머지도 1이다. 

파이썬의 내장 함수 중에 divmod() 함수가 있다. 이 함수는 두 개의 숫자를 입력받아서 몫과 나머지를 튜플 형태로 리턴해준다. 

(quotient, remainder) = divmod(10, 3)
print(quotient)
print(remainder)

# 3
# 1

divmod() 함수는 첫 번째 인자로 받은 숫자를 두 번째 인자로 받은 숫자로 나눈다. 그래서 나온 몫(quotient)을 튜플의 첫 번째 값으로 나머지(remainder)를 두 번째 값으로 리턴한다.

ZeroDivisionError

파이썬을 비롯한 프로그래밍 언어에서 나누기를 할 때 주의해야하는 것이 Divided by Zero다. 즉, 0으로 나누려고 시도하는 경우다. 

a = 10
b = 0
print(a/ b)

이런 종류의 코드가 실행되었다고 하자. 그러면 

Traceback (most recent call last):
  File "./test.py", line 6, in <module>
    print(a/ b)
ZeroDivisionError: division by zero

이런 에러가 발생한다. 0으로 나누려고 했다는 에러다. 0으로 나누면 무한대인데 프로그래밍 언어에서는 이를 허용하지 않는다.

얼핏보면 누가 바보같이 0으로 나누려고 할까 싶다. 하지만 나누기 연산은 변수 두 개를 이용하고, 변수의 값은 코드의 다른 부분에서 받아오는 경우가 많다. 이 때, 의도하지 않았지만 분모로 사용되는 변수의 값이 0으로 설정되어 이런 코드로 들어오게 되는 경우가 많은데 이럴 때 자주 만나게 되는 에러다. (대부분 숫자 데이터의 초기값이 0이라서...)

파이썬 절대값 (abs) 구하기

파이썬에서 숫자 데이터를 다룰 때 많이 사용하는 함수가 abs() 함수다. abs() 함수는 숫자의 절대값(absolute value)을 구해주는 함수다. abs() 함수는 파이썬에 내장(built-in)되어 있는 함수다.

예를 들어보자.

print(abs(10))
print(abs(-10))
print(abs(-1.1))
print(abs(1.23))

# 10
# 10
# 1.1
# 1.23

양수를 넣으면 양수가 그대로 나오고, 음수를 넣으면 부호만 바뀐 절대값 양수가 나온다.


 

파이썬 스크립트 작성에 도움되는 글 모음

파이썬으로 프로그램을 작성할 때 도움되는 글들을 모아본다. 개발환경 [Python] macOS에 파이참 설치 [Python] 파이참 깃허브 연동 [Python] 파이썬 PIP란? [Python] VSCode를 이용한 개발환경 [Python] python3..

hbase.tistory.com

 

댓글