파이썬 주민등록번호로 성별 판단하는 코드 분석

2025. 5. 28. 10:20Python

🧠 주민등록번호로 성별 판단하는 코드 분석

🚀 1️⃣ 질문 분석 – 핵심 키워드 정리

핵심 키워드 설명

num 성별을 나타내는 숫자를 담는 변수. '1', '2' 같은 문자에서 꺼내온 값
int() 문자열(예: '2')을 숫자(예: 2)로 바꿔주는 함수
% 나머지를 구하는 연산자 (예: 3 % 2는 1, 4 % 2는 0)
== 양쪽이 같은지 비교하는 연산자. 결과는 True 또는 False

✔ 2️⃣ 해결 방법 – 한 줄씩 코드 분석

def check_gender(pin):
    num = pin.split('-')[1][:1]       # ✅ 주민번호 뒷자리 첫 글자 추출 (예: '2')
    if int(num) % 2 == 0:             # ✅ 숫자로 변환 후 짝수인지 확인
        print('여성')                 # ✅ 짝수면 여성
    else:
        print('남성')                 # ✅ 홀수면 남성

🔍 세부 설명

코드 의미

pin.split('-') '-' 기준으로 문자열 분할 → ['150101', '2012345']
pin.split('-')[1] 두 번째 항목 선택 → '2012345'
[:1] 첫 번째 글자만 선택 → '2'
int(num) 문자 '2'를 숫자 2로 변환
% 2 == 0 2로 나눈 나머지가 0이면 짝수 → 여성
else 나머지가 1이면 홀수 → 남성

🔥 3️⃣ 실전 예시 – 실제 입력값 테스트

check_gender('150101-1012345')  # '1' → 남성
check_gender('150101-2012345')  # '2' → 여성
check_gender('150101-4012345')  # '4' → 여성

입력값 뒷자리 첫 글자 숫자 변환 나머지 (% 2) 결과

'150101-1012345' '1' 1 1 남성
'150101-2012345' '2' 2 0 여성
'150101-4012345' '4' 4 0 여성

💡 4️⃣ 개념 요약 – 문법별 설명

문법 설명 예시

int() 문자열을 정수로 바꿈 int('2') → 2
% 나머지 계산 3 % 2 = 1, 4 % 2 = 0
== 값이 같은지 비교 2 == 2 → True
else 조건이 아닐 때 실행 짝수가 아니면 → 남성

✅ 최종 코드 정리

def check_gender(pin):
    num = pin.split('-')[1][:1]
    if int(num) % 2 == 0:
        print('여성')
    else:
        print('남성')

📌 이제 '2'라는 문자를 숫자로 바꾸려면 int()를 사용해야 한다는 이유,
% 연산으로 짝수/홀수를 구분하는 방식,
그리고 == 비교 연산의 의미까지 모두 이해했을 거예요!

궁금한 부분 더 있으면 언제든지 질문 주세요!
한 줄씩 코드 흐름을 따라가며 시각적으로 다시 설명해드릴게요.