일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 서식지정자
- 섭씨화씨변환프로그램
- 라즈베리파이 삼바
- 파이썬
- Python
- if~elif~else
- 파이썬문자열
- 문자열 포매팅
- 라즈베리파이
- 라즈비안
- 파이썬 문자열 프로그램
- 문자열포매팅 정렬
- 파이썬 자료형
- 소수점 표현
- 라즈베리파이3B+
- 온도변환프로그램
- 프로그램
- 문자열
- str()
- while반복문
- 파이썬 형변환
- f문자열포매팅
- 자료형
- 파이썬 반복문
- float()
- print()
- 천 단위 콤마
- 티스토리
- 파이썬 문자열 함수
- 문자열프로그램
- Today
- Total
Welcome to the Matrix
016. 문자열 자료형을 이용한 간단한 파이썬 프로그램 - 주민등록번호 앞 6자리로 생년, 월, 일 정보 출력 본문
016. 문자열 자료형을 이용한 간단한 파이썬 프로그램 - 주민등록번호 앞 6자리로 생년, 월, 일 정보 출력
haru.keiko 2021. 1. 2. 23:31지난 시간에는 '숫자 자료형'을 이용해 '섭씨 화씨 변환 프로그램'을 만들어 봤습니다.
이번에는 지난 시간에 이어 기본 자료형 중 '문자열 자료형'을 이용해 간단한 파이썬 프로그램을 만들어볼 계획입니다.
주민등록번호 앞 6자리를 입력받아 생년, 월, 일 정보 출력
문자열을 이용한 프로그램으로 뭘 만들어볼까 꽤 고민을 했는데요, 간단하게 주민등록번호 앞 6자리를 입력받아 생년, 월, 일을 출력하는 프로그램을 만들어 볼까 합니다.
다들 아는 것과 같이 주민등록번호 앞 두 자리는 생년, 중간 두 자리는 월, 그리고 마지막 두 자리는 일에 대한 정보를 담고 있습니다. 주민등록 번호 앞 6자리를 입력받아 어떻게 처리하면 생년, 월, 일 정보를 가져와 출력할 수 있을까요?
잠시 고민하는 시간을 가져보고요~
전 계속 진행을 하겠습니다.
앞에서도 이야기했듯, 프로그램을 만들기에 앞서 프로그램이 어떠한 순서로 동작을 할지를 먼저 고민해 봐야 합니다. 저는 단순하게 아래와 같은 순서로 동작하는 프로그램을 만들 것입니다.
- 주민등록번호 앞 6자리를 입력(input) 받는다.
- 생년, 월, 일의 정보를 각각 나누어 저장한다.
- 생년, 월, 일을 출력(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}일 입니다.')
작성한 소스코드를 보니, 섭씨 화씨 변환 프로그램에 비해 조금 더 길어 보입니다.
일단 실행을 해볼게요~!
위와 같이 입력하고, 메뉴의 'Run-Run Module'을 선택해 실행을 하면 아래와 같은 결과를 얻을 수 있습니다. 전 세 번을 실행해 아래와 같은 결과를 얻었습니다.
첫 번째, 두 번째 결과를 보면 아주 흡족할만한 결과인데..
세 번째 결과를 보면... 13월?? 55일?? 이게 뭔가요??
우린 아직 '파이썬 예외처리'에 대해 알지 못하기 때문에 잘못된 입력에 대한 처리를 하지 않았습니다.
먼저 살펴봐야 할 부분은 입력한 데이터입니다. '991355'라는 주민등록번호 앞 6자리는 존재할 수가 없습니다. 잘못된 입력 데이터를 이용하여 연산을 하려 했던 것이죠.
일단 지금은 이런 잘못된 부분에 대해서는 '예외처리'라는 것이 필요하다는 정도만 알고, 다음 기회에 더 살펴보도록 해요~!
세 번째 결과를 제외하면, 각각 입력받은 주민등록번호 앞 6자리를 이용해 원하는 생년, 월, 일 값을 가져온 것을 볼 수 있습니다.
소스코드를 보면 단순히 파이썬 '문자열 슬라이싱'을 이용해서 처리를 했습니다. 물론 슬라이싱 말고도 다양한 방법으로 위와 동일한 결과를 보이도록 프로그래밍할 수 있습니다. 하지만, 슬라이싱을 이용하는 것이 가장 간단해 보입니다.
문자열 슬라이싱을 잘 모르겠다면, 아래 링크를 참고하세요.
예외 상황을 처리하지 못한 조금의 찜찜함은 있었지만, 나름 아주 훌륭하게 동작하는 문자열 처리 프로그램을 작성할 수 있었습니다.
어떤가요?
지금까지 우리가 살펴본 파이썬은 아주 작은 부분이지만, 우리는 아주 훌륭하게 동작하는 파이썬 프로그램을 작성할 수 있었습니다.
기대하세요!!
앞으론 더 복잡하고 많은 동작을 하는 프로그램을 작성할 수 있을 거예요~
'Python > PythonBasic' 카테고리의 다른 글
018. 파이썬 if, else, elif 조건문을 이용한 조건 분기 (0) | 2021.01.05 |
---|---|
017. 파이썬 문자열 처리를 위한 다양한 문자열 함수 (0) | 2021.01.04 |
015. 숫자 자료형을 이용한 간단한 파이썬 프로그램 예제 - 섭씨 화씨 변환 프로그램 (0) | 2021.01.02 |
014. 파이썬 사용자 입력을 위한 input() 함수 (0) | 2020.12.31 |
013. 파이썬 문자열 포매팅(서식 지정자) 사용 방법 (0) | 2020.12.28 |