이 방법은 주민등록번호 전체를 하나의 문자열로 다루고, 특정 위치의 문자를 추출하여 성별을 판별합니다.
resident_id = "881120-1068234"
gender_digit = resident_id[7] # 인덱스 7은 뒷자리의 첫 번째 숫자를 가리킵니다.
if gender_digit == '1' or gender_digit == '3':
gender = "남자"
elif gender_digit == '2' or gender_digit == '4':
gender = "여자"
else:
gender = "알 수 없음"
print(f"성별을 나타내는 숫자: {gender_digit}")
print(f"성별: {gender}")
코드 분석
1. 변수 초기화 및 문자열 접근
resident_id = "881120-1068234": 분석할 주민등록번호를 resident_id라는 변수에 문자열 형태로 저장합니다.
gender_digit = resident_id[7]: 주민등록번호 문자열의 여덟 번째 문자를 추출하여 gender_digit 변수에 할당합니다. 파이썬에서 문자열 인덱싱은 0부터 시작하므로, 일곱 번째 인덱스([7])는 하이픈(-) 다음의 첫 번째 숫자를 가리킵니다. 이 숫자는 성별을 나타내는 코드입니다.
2. 조건문을 이용한 성별 판별
if gender_digit == '1' or gender_digit == '3': gender_digit가 '1' 또는 '3'일 경우, 성별을 남자로 판단합니다. 과거 출생자(1900년대)는 '1'과 '2'로, 2000년대 이후 출생자는 '3'과 '4'로 성별을 구분합니다.
elif gender_digit == '2' or gender_digit == '4': 앞선 조건이 거짓일 경우, gender_digit가 '2' 또는 '4'인지 확인합니다. 이 조건이 참일 경우, 성별은 여자로 판단됩니다.
else: 위 조건들에 모두 해당되지 않는 경우, 성별을 "알 수 없음"으로 처리합니다. 이는 주민등록번호의 형식이 올바르지 않거나, 특정 규칙에 벗어나는 경우에 해당합니다.
3. 결과 출력
print(f"성별을 나타내는 숫자: {gender_digit}"): 추출된 성별 코드 숫자를 출력합니다.
print(f"성별: {gender}"): 판별된 성별(남자, 여자, 또는 알 수 없음)을 최종적으로 출력합니다.
이 코드는 주민등록번호의 특정 규칙을 활용하여 간단한 조건문만으로도 유용한 정보를 추출하는 방법을 보여줍니다. 👏
#2. 정규 표현식(Regular Expression) 사용
정규 표현식을 사용하면 복잡한 문자열 패턴에서 원하는 정보를 깔끔하게 추출할 수 있습니다. re 모듈을 사용합니다.
import re
resident_id = "881120-1068234"
match = re.search(r'-(\d)', resident_id) # 하이픈(-) 바로 뒤에 오는 첫 번째 숫자를 찾습니다.
if match:
gender_digit = match.group(1)
if gender_digit in ['1', '3']:
gender = "남자"
elif gender_digit in ['2', '4']:
gender = "여자"
else:
gender = "알 수 없음"
print(f"성별을 나타내는 숫자: {gender_digit}")
print(f"성별: {gender}")
else:
print("주민등록번호 형식이 올바르지 않습니다.")
코드 분석
1. 정규 표현식 모듈 가져오기
import re: 파이썬의 re 모듈을 가져옵니다. 이 모듈은 정규 표현식을 사용한 문자열 검색, 치환, 분할 등의 기능을 제공합니다.