티스토리 뷰
대한민국의 주민등록번호는 숫자 13자리로 구성이 됩니다.
990120 - 1234567 |
앞 6자리는 생년월일을 의미하구요.
생년 | 월 | 일 | |||
9 | 9 | 0 | 1 | 2 | 0 |
뒤 7자리는 각각 다음과 같은 의미를 가집니다.
성별 | 지역번호 | 검증번호 | ||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
여러분이 만약 누군가의 주민등록증을 가지고 있다고 할 때, 처음 2자리를 보면 그 사람이 몇 년도에 태어났는지 알 수 있습니다. 그리고 3~6번째 자리를 보면 양력 생일도 확인할 수 있겠지요. 마찬가지로 성별이나 지역정보도 유추할 수 있을겁니다.
이와 같이 전체 주민등록번호 중에서 필요한 만큼의 정보를 끊어서 생년월일, 성별 등의 정보를 알 수 있는데요. 파이썬에서는 슬라이싱이라는 것을 이용해서 데이터를 원하는 만큼 잘라서 가져올 수가 있습니다.
그 전에 먼저 익혀둘 것이 있는데요. 여러 문자의 집합으로 구성된 문자열 (또는 나중에 배울 리스트 등) 은 n 번째 인덱스에 있는 문자 (또는 데이터) 하나만을 가져올 수가 있습니다. 이 때 사용되는 것이 바로 대괄호이며 이런 형태로 사용합니다.
변수명[인덱스]
만약 다음과 같이 주민등록번호를 jumin 이라는 변수에 저장하고, 그 중에 성별 정보를 확인하기 위해서는 jumin[7] 이라고 적으면 됩니다.
jumin = "990120-1234567"
print("성별 : " + jumin[7]) # 성별 : 1
잠깐만요, 가만 보니 성별을 나타내는 1이라는 값은 문자열 중에서 8번째에 위치하고 있습니다. 그런데 왜 7이라고 적었을까요?
프로그램에서는 문자열을 포함한 어떤 인덱스 값이 일반적으로 우리가 생각하는 것처럼 1 이 아닌 0 부터 시작합니다. 그래서 성별을 나타내는 1이란 값의 위치는 8 이 아닌 7 이 되는 것이랍니다.
주민등록번호 | 인덱스 |
9 | 0 |
9 | 1 |
0 | 2 |
1 | 3 |
2 | 4 |
0 | 5 |
- | 6 |
1 | 7 |
... | ... |
이 부분은 아주 중요하며 처음 배울 때는 많이 혼란스러울 수 있으니 꼭 명심해두셔야 합니다.
자, 이제 인덱스에 대한 개념 및 사용법을 익혔으니 다시 슬라이싱으로 돌아오겠습니다. 슬라이싱도 인덱스와 마찬가지로 대괄호를 이용하며 필요에 따라 각 영역을 콜론(:) 으로 구분을 짓습니다.
변수명[시작인덱스:종료인덱스]
처음 입력하는 값은 시작 인덱스, 다음에 입력하는 값은 종료 인덱스가 되는데 만약 [3:7] 과 같이 작성하면 인덱스 기준으로 3부터 7직전까지, 즉 3부터 6까지를 잘라서 가져오는 동작을 하게 됩니다.
주민등록번호 정보에서 연, 월, 일 각각 2자리씩을 가져오려면 이렇게 할 수 있답니다.
# jumin = "990120-1234567"
print("연 : " + jumin[0:2]) # 0 부터 2 직전까지 (0, 1) : 99 년
print("월 : " + jumin[2:4]) # 2 부터 4 직전까지 (2, 3) : 01 월
print("일 : " + jumin[4:6]) # 4 부터 6 직전까지 (4, 5) : 20 일
슬라이싱을 할 때 값을 비워두면 위치에 따라 처음부터, 또는 끝까지를 의미하게 됩니다.
변수명[:인덱스] → 처음부터 인덱스 직전까지 슬라이싱
변수명[인덱스:] → 인덱스부터 끝까지 슬라이싱
변수명[:] → 처음부터 끝까지 슬라이싱
주민등록번호에서 앞 6자리 또는 뒤 7자리를 가져와보겠습니다.
print("생년월일 : " + jumin[:6]) # 처음부터 6 직전까지 -> jumin[0:6] 과 동일
print("뒤 7자리 : " + jumin[7:]) # 7 부터 끝까지 -> jumin[7:14] 와 동일
때로는 데이터에 따라 처음이 아닌 뒤에서부터 슬라이싱을 할 필요도 있는데, 이럴 때는 음수를 이용하면 됩니다. 주민등록번호 뒤 7자리를 가져오되 맨 뒤에서부터 시작하려면 다음과 같이 하면 됩니다. 참고로 맨 처음의 인덱스는 [0] 이지만 맨 뒤의 인덱스는 [-1] 이라는 점 주의해주세요.
print("뒤 7자리 (뒤에부터) : " + jumin[-7:]) # 맨 뒤에서 7번째 위치로부터 끝까지
'파이썬 강의 > 기본편' 카테고리의 다른 글
[파이썬 기본편] 4-4.문자열포맷 (3) | 2021.02.06 |
---|---|
[파이썬 기본편] 4-3.문자열처리함수 (1) | 2021.02.05 |
[파이썬 기본편] 4-1.문자열 (0) | 2021.02.03 |
[파이썬 기본편] 3-5.퀴즈 #2 (6) | 2021.02.02 |
[파이썬 기본편] 3-4.랜덤함수 (5) | 2021.02.01 |
- Total
- Today
- Yesterday
- GUI
- 주피터노트북
- ChatGPT
- onlineclass
- 코랩
- game
- repl.it
- coloso
- 나도코딩
- Mac
- 프롬프트 엔지니어링
- Visual Studio Code
- 환경설정
- pycharm
- Colab
- pygame
- Xcode
- 챗GPT
- vscode
- 비주얼 스튜디오 코드
- 아나콘다
- c언어
- 행맨
- Unity
- 파이썬
- Coding
- 파이게임
- Tkinter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |