파이썬으로 숫자놀이를 해 보자!
먼저 정수끼리 덧셈, 뺄셈, 곱셈, 나머지값, 거듭제곱을 해 보았다. (나눗셈에는 예외 상황이 있어 아래에 따로 설명...)
print(1 + 1) # 1과 1을 더하라, 결과값 2
print(3 - 5) # 3에서 5를 빼라, 결과값 -2
print(2 * 6) # 2와 6을 곱해라, 결과값 12
print(24 % 5) # 24를 5로 나눈 나머지값을 구해라, 결과값 4
print(3 ** 3) # 3을 3번 곱해라(거듭제곱), 결과값 27
파이썬에서는 정수끼리 사칙연산을 하면 결과값도 정수형이 나온다. 그렇다면 소수끼리 하면?
print(1.0 + 1.0) # 결과값 2.0
print(3.0 ** 3.0) # 결과값 27.0
결과값도 소수로 표시되는 것을 확인할 수 있었다. (궁금증은 꼬리에 꼬리를 물고~) 하나는 정수, 하나는 소수라면 어떨까?
print(2.06 * 3) # 결과값 6.18
print(3.3 - 1.3) #결과값 1.999999 왜지?
print(6.7 - 3) # 결과값 3.7
둘 중에 하나라도 소수가 포함되어 있다면 결과값은 소수로 나온다. 이것저것 해 보다가 3.3 - 1.3 이 2도 아니고 2.0도 아닌 1.9999999....가 나와서 엄청 당황했다. 찾아보니 부동소수점인가 뭔가 때문인 것 같은데 나도 아직 이해를 못했으므로 설명 불가 OTL 아래에 관련 링크를 첨부한다. 내가 아래 내용을 모두 이해하게 된다면 블로그에 최대한 쉽게 설명해 보도록 하겠다. (그 날이 올까...ㅜㅜ)
https://blog.winterjung.dev/2020/01/06/floating-point-in-python
파이썬에서 부동소수점 오차 해결하기
실수형 값을 다룰 때 흔히 마주칠 수 있는 부동소수점 오차 문제를 파이썬에서 어떻게 해결할 수 있는지 알아보았다. 이 글은 2017년에 작성했던 글을 다듬고 내용을 추가해 다시 작성한 글입니
blog.winterjung.dev
자, 이제 다시 사칙연산으로 돌아와서... 나눗셈을 해보자!
print(6 / 3) # 결과값 2.0
print(7 / 2) # 결과값 3.5
print(6.0 / 2) # 결과값 3.0
print(9.0 / 2) # 결과값 4.5
나눗셈은 예외적으로 사용된 숫자가 정수든 소스든 상관없이 무조건 소수로 표시된다. 만약 나눈 결과값에서 소수 부분을 버리고 정수로만 표시하고 싶다면? 버림 나눗셈(//)을 이용하면 된다. 나눈 결과값에서 소수 부분을 버린다는 의미이다. 영어로는 floor division 이라고 한다.
print(9 / 2) # 결과값 4.5
print(9 // 2) # 나눈 결과값에서 소수 부분을 버리자, 결과값 4
print(8 / 3) # 결과값 2.6666666
print(8 // 3) # 결과값 2
버림 나눗셈에서 추가로 알아두어야 할 것!
print(9.0 // 3) # 결과값 3.0
print(9.0 // 2) # 결과값 4.0
print(9 // 3.0) # 결과값 3.0
print(8 // 2.0) # 결과값 4.0
둘 중에 하나라도 소수가 사용되었으면 결과값이 소수로 표시된다. 소수 부분을 이미 버렸기 때문에 무조건 x.0 으로 표시된다. 그렇다면 이번에는 2개 이상의 연산이 한꺼번에 들어간 경우를 보도록 하겠다.
print(2 + 3 * 2) # 곱하기 먼저 계산됨, 결과값 8
print((3 + 2) * 5) # 괄호 안부터 먼저 계산됨, 결과값 25
일반 사칙연산 규칙이 그대로 적용되어 더하기, 빼기보다는 곱하기, 나누기가 먼저 계산된다. 괄호()가 있다면 괄호 안을 먼저 계산한다. 마지막으로 반올림(round)도 해 보았다.
print(round(2.1502626)) # 괄호 안의 숫자를 반올림해라, 결과값 2
print(round(2.1502626, 2)) # 괄호 안의 숫자를 소수점 2번째 자리까지 반올림해라, 결과값 2.15
반올림의 경우에도 부동소수점으로 인해 예외상황이 발생하는데, 위 링크를 참고하면 도움이 될 것이다. 개인적으로는 기본적인 덧셈, 뺄셈 등은 원래 알고 있던 것들이고, 거듭제곱(**), 버림나눗셈(//), 반올림(round)은 추가로 암기해야 한다. 벌써 헷갈리면 안 되는데...😅 화이팅이다.
'프로그래밍 언어 & 데이터베이스 > Python' 카테고리의 다른 글
자료형 변환 & 문자열 포맷팅 예시 (0) | 2021.06.06 |
---|---|
파이썬 문자열 안에 따옴표 쓰기 (0) | 2021.06.03 |
프로그래밍의 자료형 (0) | 2021.05.16 |
파이참 IDE 설치하기 (macOS) (0) | 2021.05.11 |
파이썬 프로그래밍 언어 설치하기 (0) | 2021.05.11 |
댓글