파이썬 공부

파이썬으로 주민등록번호 유효성 검사 + 생년월일 , 성별 출력하기

칠구의 스터디 2023. 7. 19. 15:40

 

 

문제 : 입력받은 주민등록번호를 유효한 주민등록번호인지 검사하고

생년월일과 성별을 출력하는 프로그램을 작성하라.

 

 

문제가 주어졌으면 문제를 이해하는 것이 가장 중요하다

다행히 이문제는 한 번만 읽어도 이해할 수 있을 정도로

어려운 말이 들어가지 않았다

 

 

<<문제 푸는 순서>>

1. 주민등록번호 입력받기

2. 주민등록번호 문자열 검사하기

3. 결과값 출력

 

 

 

 

1. 주민등록번호 입력받기

 

 

rrn = input("주민등록번호를 입력하세요: ")

 

rrn은 주민등록번호 영어인

Resident Registration Number에서 따왔다

 

 

 

2. 주민등록번호 문자열 검사하기

 

 

if len(rrn) != 13 or not rrn.isdigit():
    print("유효하지 않은 주민등록번호입니다.")

 

주민등록번호는 13자리로 구성되어 있으므로

13자리로 입력하지 않으면 유효하지 않는 주민등록번호라고

출력되도록 코드를 작성

(0000000000000 이런 식으로 입력해도

13자리로만 입력하면 출력됨) 

 

 

 

3. 결과값 출력

 

 

else:
    birthdate = f"{rrn[:2]}-{rrn[2:4]}-{rrn[4:6]}"

 

인덱싱을 이용해서 주민등록번호 앞번호인 생년월일 출력

birthgate (생년월일)

rrn[:2] -> 1,2번째 자리

rrn[2:4] -> 3,4번째 자리

rrn[4:6] -> 5 ,6번째 자리

 

 


    century = "19" if int(rrn[6]) < 3 else "20"

 

주민등록번호 7번째 숫자를 확인해서

1900년대생인지 2000년대생인지 확인

century (세기)

7번째 숫자가 3보다 작다면 1900년대생

그렇지 않다면 2000년대생

 

 

    gender = "여성" if int(rrn[6]) % 2 == 0 else "남성"

 

마찬가지로 주민등록번호 7번째 숫자를 확인해서

성별을 구별

 

2로 나눴을 때 나누어 떨어지면 여자

그렇지 않다면 남자

 

 

 

 

<<전체 코드>>

rrn = input("주민등록번호를 입력하세요: ")

if len(rrn) != 13 or not rrn.isdigit():
    print("유효하지 않은 주민등록번호입니다.")
else:
    birthdate = f"{rrn[:2]}-{rrn[2:4]}-{rrn[4:6]}"
    century = "19" if int(rrn[6]) < 3 else "20"
    gender = "여성" if int(rrn[6]) % 2 == 0 else "남성"
   
print("유효한 주민등록번호입니다.")
    print("생년월일:", century + birthdate)
    print("성별:", gender)
 
 
 
 
 

<<출력 결과>>

2307191234567 입력 시

 

 

 

 

'파이썬 공부' 카테고리의 다른 글

파이썬을 이용해서 그리디 문제 풀기  (0) 2023.07.24
간단한 계산기 만들기  (0) 2023.07.07
파이썬 설치하기  (0) 2023.07.06