View

알고리즘 문제를 풀다 보면, 정수를 나눈 몫과 나머지를 구해야 할 때가 있습니다.

예시) 7을 3으로 나눈 몫과 나머지를 구해야 하는 경우


다른 언어에서는..(또는 이 기능을 모르시는 분은)

보통 사람들은 나머지와 몫을 따로 구합니다

a = 7
b = 5
print(a//b, a%b)

파이썬에서는

파이썬의 divmod와 unpacking(*)을 이용하면 다음과 같이 코드를 짤 수 있습니다.

a = 7
b = 5
print(*divmod(a, b))

divemode(a,b)

=> a를 b로 나눈 목과 나머지를 tuple로 return

⨳ divmod를 사용할 때 주의할 점

무조건 divmod를 사용하는 게 좋은 방법은 아닙니다.가독성이나, 팀의 코드 스타일에 따라서, a//b, a%b와 같이 쓸 때가 더 좋을 수도 있습니다.

또한, divmod는 작은 숫자를 다룰 때는 a//b, a%b 보다 느립니다. 대신, 큰 숫자를 다룰 때는 전자가 후자보다 더 빠르지요.

* 둘의 퍼포먼스 차이에 관련해서는 Stack Overflow 질문을 참고


* (asterisk) 사용 예시

tuple = (4,5)
print('{}과 {}를 계산하세요'.format(*tuple))

- 출력 : 4과 5를 계산하세요

그밖의 다양한 사용 

Share Link
reply
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31