29.3 연습문제: 몫과 나머지를 구하는 함수 만들기다음 소스 코드를 완성하여 x를 y로 나누었을 때의 몫과 나머지가 출력되게 만드세요. Show practice_function.py x = 10 y = 3 quotient, remainder = get_quotient_remainder(x, y) print('몫: {0}, 나머지: {1}'.format(quotient, remainder)) 실행 결과 몫: 3, 나머지: 1 정답 def get_quotient_remainder(a, b): return a // b, a % b 해설 get_quotient_remainder 함수에 x와 y를 넣어서 몫과 나머지를 구하고 있습니다. 먼저 get_quotient_remainder 함수는 값을 두 개 받으므로 def get_quotient_remainder(a, b):와 같이 만들어줍니다. 그리고 함수 안에서 return으로 a를 b로 나누었을 때 몫과 나머지를 반환해주면 됩니다. 여기서 몫은 정수로 나와야 하므로 버림 나눗셈 연산자 //을 사용하고, 나머지는 나머지 연산자 %를 사용해야 합니다. 또는, int(a / b)와 같이 나눗셈 연산자 /를 사용한 뒤에 int로 변환해도 됩니다. 특히 return으로 값을 두 개 반환해야 하므로 각 반환값은 콤마로 구분해줍니다. 파이썬을 파이썬답게 정수를 나눈 몫과 나머지 구하기 divmod
Tags: python
1. 파이썬 몫을 구하기파이썬에서 몫을 구하는데 두 가지 방법이 있다. 1. / 슬래시 1개를 사용해서 소숫값이 나오는 방법
2. // 슬래시 2개를 사용해서 정수값이 나오는 방법
2. 파이썬 나머지 구하기파이썬에서 나머지를 구하는데 퍼센트 % 사용해서 값을 구한다.
파이썬의 내장함수 중 divmod() : 매개변수로 두개의 숫자를 입력받아 몫과 나머지를 튜플로 반환한다. divmod(a, b) divmod(10, 3) 이라 할때, 10을 3으로 나누고 (= 10 / 3) 그 몫인 3과 나머지인 1을 튜플 형식으로 (3, 1)로 반환 하는 함수
무조건 divmod를 사용하는 게 좋은 방법은 아니다. 가독성이나, 팀의 코드 스타일에 따라서, a//b, a%b와 같이 쓸 때가 더 좋을 수도 있다. 또한, divmod는 작은 숫자를 다룰 때는 a//b, a%b 보다 느리다. 대신, 큰 숫자를 다룰 때는 전자가 후자보다 더 빠르다. Stack Overflow : https://stackoverflow.com/questions/30079879/is-divmod-faster-than-using-the-and-operators 안녕하세요. BlockDMask 입니다. 오늘은 간단하게 파이썬에서 몫을 구하는 방법에 대해서 짧게 적어보려합니다. 정말간단해요.
1. 파이썬 나눗셈파이썬 나눗셈을 하는데 사용하는 기호는 슬래쉬 ( / ) 하나 입니다.
결과값은 3.33333 이 나옵니다. 몫과 나머지가 그대로 다 나오죠? 2. 파이썬 나눗셈의 몫 구하기파이썬 나눗셈에서 몫을 구하는데 사용하는 기호는 슬래시 두개 ( // )입니다.
결과 값은 3이 나옵니다. 10 / 3 의 값은 3.33333... 인데 그 중 몫은 소수점을 제외한 3이 됩니다. 3. 파이썬 나눗셈의 나머지 구하기파이썬에서 나머지를 구하는 기호는 퍼센트 (%) 기호 입니다.
결과 값은 1이 나옵니다. 10 을 3으로 나누면 몫이 3이고 나머지는 1이기 때문에 1이 나오게 됩니다. 파이썬의 내장함수 중에 divmod 라는 함수가 존재합니다. 이 함수는 매개변수로 숫자를 두개 입력 받아서 몫과 나머지를 튜플 형태로 반환하는 함수 입니다. 함수의 모양을 보면 아래와 같이 생겼습니다. divmod(a, b) divmod 함수는 매개변수로 받은 a를 b로 나눕니다. 그리고 그 몫과 나머지를 튜플(tuple) 데이터 타입으로 반환합니다. 예를 들어 divmod(10, 3) 이라 할때, 10을 3으로 나누고 (= 10 / 3) 그 몫인 3과 나머지인 1을 튜플 형식으로 (3, 1)로 반환 하는 함수 라는 것 입니다 실제 코드로 한번 볼까요?
이렇게 divmod 함수를 이용하면 편하게 몫과 나머지를 구할 수 있습니다. 주의해야할게 하나 남았습니다.
당연하겠지만 divmod의 두번째 인자에는 0을 집어 넣으면 에러가 발생합니다 에러 이름과 설명 - "ZeroDivisionError: integer division or modulo by zero"divmod의 두번째 인자로 0을 넣지 않도록 주의 하면서, divmod를 유용하게 사용하면 좋을것 같습니다. 이상으로 파이썬 나누기, 몫 구하기, 나머지 구하기, divmod로 몫과 나머지를 튜플로 한번에 구하는 방법까지 알아보았습니다. 감사합니다. |