HOWTO · Python
파이썬에서 숫자가 짝수인지 홀수인지 확인
모듈러스 연산자 % 또는 비트 AND 연산자 &를 사용하여 파이썬에서 숫자가 짝수인지 홀수인지 확인할 수 있습니다.
이 페이지의 내용
Python에서 정수가 짝수인지 확인하려면 num % 2의 결과가 0인지 검사하면 됩니다. 그렇지 않으면 홀수입니다. 짝수는 2로 나누어떨어지는 정수이고, 홀수는 2로 나눈 나머지가 1인 정수입니다. 이 작업에는 모듈로 연산자가 가장 명확한 기본 선택입니다. 비트 AND 연산자에 1을 사용하는 방법도 정수에 한해 쓸 수 있습니다.
모듈로 연산자로 짝홀 판별하기
모듈로 연산자 %는 나눗셈의 나머지를 구합니다. 정수를 2로 나누면 짝수의 나머지는 0이고 홀수의 나머지는 1입니다. 이 규칙은 음의 정수에도 적용됩니다. Python에서 예를 들면 -4 % 2는 0이고, -3 % 2는 1입니다.
다음 예제를 실행해 보세요.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
def check_parity(num):
if num % 2 == 0:
print("even")
else:
print("odd")
check_parity(22)
제공된 런타임 실행에서 check_parity(22)는 even을 출력합니다. 이 함수는 나누어떨어지는지 직접 확인한 뒤 결과를 나타내는 표기를 출력합니다. 확인하려는 정수로 22를 바꾸면 됩니다. 이 함수는 2.5 같은 소수가 아니라 정수를 입력으로 받습니다. 출력의 even 표기는 코드와 출력 블록의 바이트가 원문과 같도록 영어로 유지됩니다.
비트 AND 연산자로 짝홀 판별하기
비트 AND 연산자 &는 두 정수에서 서로 대응하는 비트를 비교합니다. 정수의 이진 표현에서 최하위 비트는 짝수일 때 0, 홀수일 때 1입니다. 따라서 짝수 정수에서 num & 1은 0이고, 홀수 정수에서는 1입니다. Python에서 수행하는 것은 정수의 비트 연산이며, 먼저 이진 문자열을 만드는 과정은 없습니다.
예를 들어 22의 최하위 비트는 0이므로 22 & 1의 결과도 0입니다. 33의 해당 비트는 1이므로 33 & 1의 결과는 1입니다. 다음 함수는 그 결과를 조건으로 사용합니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
def check_parity(num):
if num & 1 == 0:
print("even")
else:
print("odd")
check_parity(33)
제공된 런타임 실행에서 check_parity(33)은 odd를 출력합니다. 비교 연산보다 num & 1이 먼저 계산되므로, 이 조건은 최하위 비트가 꺼져 있는지 확인합니다. 모듈로 방식과 마찬가지로 함수에는 정수를 전달하세요. 출력의 odd 표기는 코드와 출력 블록의 바이트가 원문과 같도록 영어로 유지됩니다.
가독성을 위해 모듈로 연산자 선택하기
두 표현식 모두 정수의 짝홀을 판별합니다. num % 2 == 0은 나머지를 사용하고, num & 1 == 0은 최하위 비트를 확인합니다. 모듈로 표현은 대개 의도를 더 직접적으로 전달하며, 특히 비트 연산을 다루지 않는 독자에게 이해하기 쉽습니다. 주변 코드에서 이미 비트 연산을 사용하거나 비트 수준의 동작 자체가 중요한 경우가 아니라면, 일반적인 짝홀 판별에는 모듈로를 사용하세요.
비트 연산 방식도 유효한 대안이지만, 일반적인 Python 코드에서 성능 최적화를 위해 꼭 사용할 필요는 없습니다. 한 가지 방식을 골라 일관되게 사용하고 입력의 자료형을 분명히 하세요. 이 판별법은 정수의 짝홀을 확인하는 것이지, 임의의 숫자가 수학적으로 2로 나누어떨어지는지를 확인하는 방법은 아닙니다. 외부에서 입력을 받는 함수라면 짝홀 판별을 호출하기 전에 입력을 검증하거나 변환하세요. 변환 정책은 응용 프로그램에 따라 달라지므로 짝홀 판별식 안에 숨기지 않는 편이 좋습니다.