728x90
반응형
많은 언어에서 몫과 나머지를 구할때, /와 %를 사용하여 구한다.
파이썬에서는 divmod를 사용하여 몫과 나머지를 한번에 구할 수 있다.
3나누기15 의 몫과 나머지
/ (나누기), %(나머지)
a = 3
b = 5
print(a/b)
print(a%b)
-------------------
0.2
3
몫과 나머지를 연산기호를 사용하여 구하였다.
나누기 연산의 결과가 0.2로 나누어 떨어지는 결과를 반환한다.
a = 7
b = 15
print(a/b)
print(a%b)
--------------------
0.4666666666666667
7
나누어떨어지지 않는 수는 반올림된다.
divmod
a = 3
b = 15
print(divmod(a,b))
--------------------------
(0,3)
divmod 를 사용하여 몫과 나머지를 알 수 있다.
다만 몫을 나누어떨어질때까지 계산하지않고 한자리만 출력한다.
a = 3.0
b = 15.0
print(divmod(a,b))
------------------------
(0.0,3.0)
float 형식으로 출력을해도 마찬가지다.
a,b = divmod(3,15)
print(a,b)
---------------
0,3
변수에 uppacking 하여 사용한다.
무조건 divmod를 사용하는 게 좋은 방법은 아니다.
가독성이나, 팀의 코드 스타일에 따라서, a//b, a%b와 같이 쓸 때가 더 좋을 수도 있다.
또한, divmod는 작은 숫자를 다룰 때는 a//b, a%b 보다 느리다.
대신, 큰 숫자를 다룰 때는 전자가 후자보다 더 빠르다.
상황에 맞게 잘 쓰면 된다!
728x90
반응형
'Python' 카테고리의 다른 글
[Python] zip() (3) | 2023.02.21 |
---|---|
[Python] 진법변환 (0) | 2023.02.21 |
[Python] 문자열을 날짜, 시간으로 변환하는 방법 (string to date, string to time) - strptime() (0) | 2023.02.03 |
[Python] 날짜, 시간을 문자열로 변환하는 방법 (date to string, time to string) - strftime (2) | 2023.02.03 |
[함수] range() 과 enumerate() (0) | 2023.01.22 |
댓글