Welcome to the Matrix

016. 문자열 자료형을 이용한 간단한 파이썬 프로그램 - 주민등록번호 앞 6자리로 생년, 월, 일 정보 출력 본문

Python/PythonBasic

016. 문자열 자료형을 이용한 간단한 파이썬 프로그램 - 주민등록번호 앞 6자리로 생년, 월, 일 정보 출력

haru.keiko 2021. 1. 2. 23:31

지난 시간에는 '숫자 자료형'을 이용해 '섭씨 화씨 변환 프로그램'을 만들어 봤습니다.

 

015. 숫자 자료형을 이용한 간단한 파이썬 프로그램 예제 - 섭씨 화씨 변환 프로그램

지금까지 우리는 숫자 자료형, 문자 자료형, 불 자료형과 같은 파이썬 '기본 자료형'에 대해 알아봤습니다. 그리고 문자열을 출력하기 위한 'print() 함수'와 문자열 입력을 위한 'input() 함수'에 대

null-0.tistory.com

이번에는 지난 시간에 이어 기본 자료형 중 '문자열 자료형'을 이용해 간단한 파이썬 프로그램을 만들어볼 계획입니다. 

주민등록번호 6자리로 년, 월, 일 정보 가져오는 파이썬 프로그램 썸네일

 

주민등록번호 앞 6자리를 입력받아 생년, 월, 일 정보 출력

문자열을 이용한 프로그램으로 뭘 만들어볼까 꽤 고민을 했는데요, 간단하게 주민등록번호 앞 6자리를 입력받아 생년, 월, 일을 출력하는 프로그램을 만들어 볼까 합니다.

다들 아는 것과 같이 주민등록번호 앞 두 자리는 생년, 중간 두 자리는 월, 그리고 마지막 두 자리는 일에 대한 정보를 담고 있습니다. 주민등록 번호 앞 6자리를 입력받아 어떻게 처리하면 생년, 월, 일 정보를 가져와 출력할 수 있을까요?

 

잠시 고민하는 시간을 가져보고요~

 

전 계속 진행을 하겠습니다. 

앞에서도 이야기했듯, 프로그램을 만들기에 앞서 프로그램이 어떠한 순서로 동작을 할지를 먼저 고민해 봐야 합니다. 저는 단순하게 아래와 같은 순서로 동작하는 프로그램을 만들 것입니다. 

  1. 주민등록번호 앞 6자리를 입력(input) 받는다.
  2. 생년, 월, 일의 정보를 각각 나누어 저장한다.
  3. 생년, 월, 일을 출력(print)한다.

 

프로그램의 구조, 흐름을 보면 '섭씨 화씨 변환 프로그램'과 별 차이가 없죠?

원래 프로그램이란 게 그렇게 생겨먹었습니다.

여기서 우리가 고민해야 할 부분은 2번, '6자리의 문자열을 어떻게 처리해서 생년, 월, 일의 정보를 각각 나누어 저장하는가?'입니다.

 

일단, IDLE 프로그램을 열고 메뉴에서 'File-New File'로 새 파일을 연 후 아래와 같이 입력해 보세요. 

# 주민등록번호 앞 6자리를 입력받아, 생년 월 일 출력
# 1. 주민등록번호 앞 6자리를 입력
your_number = input('주민등록번호 앞 6자리를 입력하세요 : ')
# 2. 생년, 월, 일의 정보를 각각 나누어 저장
year = your_number[:2]
month = your_number[2:4]
day = your_number[4:]
# 3. 생년, 월, 일을 출력
print(f'생년월일은 {year}년 {month}월 {day}일 입니다.')

작성한 소스코드를 보니, 섭씨 화씨 변환 프로그램에 비해 조금 더 길어 보입니다. 

일단 실행을 해볼게요~!

주민등록번호 앞 6자리를 입력받아, 생년 월 일을 출력하는 파이썬 프로그램

위와 같이 입력하고, 메뉴의 'Run-Run Module'을 선택해 실행을 하면 아래와 같은 결과를 얻을 수 있습니다. 전 세 번을 실행해 아래와 같은 결과를 얻었습니다. 

주민등록번호 앞 6자리를 입력받아, 생년 월 일을 출력하는 파이썬 프로그램 결과

첫 번째, 두 번째 결과를 보면 아주 흡족할만한 결과인데.. 

세 번째 결과를 보면... 13월?? 55일?? 이게 뭔가요??

 

우린 아직 '파이썬 예외처리'에 대해 알지 못하기 때문에 잘못된 입력에 대한 처리를 하지 않았습니다.

먼저 살펴봐야 할 부분은 입력한 데이터입니다. '991355'라는 주민등록번호 앞 6자리는 존재할 수가 없습니다. 잘못된 입력 데이터를 이용하여 연산을 하려 했던 것이죠.

일단 지금은 이런 잘못된 부분에 대해서는 '예외처리'라는 것이 필요하다는 정도만 알고, 다음 기회에 더 살펴보도록 해요~!

 

세 번째 결과를 제외하면, 각각 입력받은 주민등록번호 앞 6자리를 이용해 원하는 생년, 월, 일 값을 가져온 것을 볼 수 있습니다. 

소스코드를 보면 단순히 파이썬 '문자열 슬라이싱'을 이용해서 처리를 했습니다. 물론 슬라이싱 말고도 다양한 방법으로 위와 동일한 결과를 보이도록 프로그래밍할 수 있습니다. 하지만, 슬라이싱을 이용하는 것이 가장 간단해 보입니다. 

 

문자열 슬라이싱을 잘 모르겠다면, 아래 링크를 참고하세요. 

 

008. 파이썬 문자열 연산자로 문자열 다루기

이번에는 '파이썬 문자열 연산자'를 이용해 문자열을 다루는 방법에 대해 알아보겠습니다. 앞선 포스트에서 숫자형 자료형에 대해서 다룬 바 있는데요, 숫자형 자료형은 '산술 연산자', '나누기

null-0.tistory.com

 

예외 상황을 처리하지 못한 조금의 찜찜함은 있었지만, 나름 아주 훌륭하게 동작하는 문자열 처리 프로그램을 작성할 수 있었습니다. 

 

어떤가요?

지금까지 우리가 살펴본 파이썬은 아주 작은 부분이지만, 우리는 아주 훌륭하게 동작하는 파이썬 프로그램을 작성할 수 있었습니다. 

 

기대하세요!!

앞으론 더 복잡하고 많은 동작을 하는 프로그램을 작성할 수 있을 거예요~