본문 바로가기

파이썬(문제풀이)

파이썬 주민등록번호를 분석하여 성별을 판별하는 프로그램

#1. 문자열 슬라이싱 및 조건문 사용

이 방법은 주민등록번호 전체를 하나의 문자열로 다루고, 특정 위치의 문자를 추출하여 성별을 판별합니다.

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}")

코드 분석 


#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("주민등록번호 형식이 올바르지 않습니다.")

#3. 리스트를 이용한 맵핑

딕셔너리(dictionary)나 맵(map)을 사용하면 숫자와 성별을 매칭시켜 코드를 더 간결하게 만들 수 있습니다.

resident_id = "881120-1068234"
gender_digit = resident_id[7]
gender_map = {'1': '남자', '2': '여자', '3': '남자', '4': '여자'}

gender = gender_map.get(gender_digit, "알 수 없음")

print(f"성별을 나타내는 숫자: {gender_digit}")
print(f"성별: {gender}")

코드 분석