'''
#나이 계산 프로그램
주민번호를 입력받으면 몇 살인지 계산
★input을 통해 입력받은 값은 전부 문자열(str)
6자리숫자-7자리숫자
1. 주민등록번호 입력 받음
*6자리숫자-7자리숫자
- -(하이픈)이 존재하는지 확인
- 하이픈을 제외한 나머지가 숫자 형식인지
2. 주민번호 7번째자리 숫자 추출
- 1900년대생과 2000년대생 나누기 (1,2면 1900년대생 / 3,4면 2000년대생)
3-1. 1900년대생은 2022-19+int("추출")
3-2. 2000년대생은 2022-20+int("추출")
'''
**이건 내가 짠 코드!!!**
import sys
ssn = input("주민등록번호를 입력해주세요. ")
hyphen = ssn.find("-")
if (hyphen == -1) :
print("하이픈이 누락되었습니다. 다시 확인해주세요.")
sys.exit()
ssn2 = ssn.split("-")
if ( len(ssn2[0]) != 6 ) :
print("주민등록번호 앞자리 숫자가 6자리가 아닙니다.")
sys.exit()
if ( len(ssn2[1]) != 7) :
print("주민등록번호 뒷자리 숫자가 7자리가 아닙니다.")
sys.exit()
if ( ssn2[0].isnumeric() == False ) :
print("주민등록번호 앞자리에 숫자가 아닌 문자가 존재합니다.")
sys.exit()
if ( ssn2[1].isnumeric() == False ) :
print("주민등록번호 뒷자리에 숫자가 아닌 문자가 존재합니다.")
sys.exit()
if ( ssn[7] == '3' or ssn[7] == '4') :
print( 2022 - 2000 - int(ssn[0:2]) + 1 )
elif ( ssn[7] == '1' or ssn[7] == '2') :
print( 2022 - 1900 - int(ssn[0:2]) + 1)
else :
print("계산할 수 없습니다.")
===========================================================================
import sys
import datetime
def validSsn(ssn) :
hyphen = ssn.find("-")
if (hyphen == -1) :
print("하이픈이 누락되었습니다. 다시 확인해주세요.")
sys.exit()
ssn2 = ssn.split("-")
if ( len(ssn2[0]) != 6 ) :
print("주민등록번호 앞자리 숫자가 6자리가 아닙니다.")
sys.exit()
if ( len(ssn2[1]) != 7) :
print("주민등록번호 뒷자리 숫자가 7자리가 아닙니다.")
sys.exit()
if ( ssn2[0].isnumeric() == False ) :
print("주민등록번호 앞자리에 숫자가 아닌 문자가 존재합니다.")
sys.exit()
if ( ssn2[1].isnumeric() == False ) :
print("주민등록번호 뒷자리에 숫자가 아닌 문자가 존재합니다.")
sys.exit()
ssn = input("주민등록번호를 입력해주세요. ")
validSsn(ssn)
if ( ssn[7] == '3' or ssn[7] == '4') :
print( datetime.datetime.now().year - 2000 - int(ssn[0:2]) + 1 )
elif ( ssn[7] == '1' or ssn[7] == '2') :
print( datetime.datetime.now().year - 1900 - int(ssn[0:2]) + 1)
else :
print("계산할 수 없습니다.")
========================================================================================
**강사님 예시 코드 ↓ **
import sys
ssn = input("주민등록번호를 입력해주세요. ")
hyphen = ssn.find("-")
if (hyphen == -1) :
print("하이픈이 누락되었습니다. 다시 확인해주세요.")
sys.exit()
ssn2 = ssn.split("-")
if ( len(ssn2[0]) != 6 ) :
print("주민등록번호 앞자리 숫자가 6자리가 아닙니다.")
sys.exit()
if ( len(ssn2[1]) != 7) :
print("주민등록번호 뒷자리 숫자가 7자리가 아닙니다.")
sys.exit()
if ( ssn2[0].isnumeric() == False ) :
print("주민등록번호 앞자리에 숫자가 아닌 문자가 존재합니다.")
sys.exit()
if ( ssn2[1].isnumeric == False) :
print("주민등록번호 앞자리에 숫자가 아닌 문자가 존재합니다.")
sys.exit()
birth = ssn[0:2]
gender = ssn[7]
if (gender == "1" or gender == "2"):
birth = 1900 + int(birth)
print( datetime.datetime.now().year - birth +1)
elif (gender == '3' or gender == '4') :
birth = 2000 + int(birth)
print( datetime.datetime.now().year - birth+1)
else :
print("계산할 수 없습니다.")import sys
import datetime
def validSsn(ssn) :
hyphen = ssn.find("-")
if (hyphen == -1) :
print("하이픈이 누락되었습니다. 다시 확인해주세요.")
sys.exit()
ssn2 = ssn.split("-")
if ( len(ssn2[0]) != 6 ) :
print("주민등록번호 앞자리 숫자가 6자리가 아닙니다.")
sys.exit()
if ( len(ssn2[1]) != 7) :
print("주민등록번호 뒷자리 숫자가 7자리가 아닙니다.")
sys.exit()
if ( ssn2[0].isnumeric() == False ) :
print("주민등록번호 앞자리에 숫자가 아닌 문자가 존재합니다.")
sys.exit()
if ( ssn2[1].isnumeric == False) :
print("주민등록번호 뒷자리에 숫자가 아닌 문자가 존재합니다.")
sys.exit()
ssn = input("주민등록번호를 입력해주세요. ")
birth = ssn[0:2]
gender = ssn[7]
if (gender == "1" or gender == "2"):
birth = 1900 + int(birth)
print(datetime.datetime.now().year - birth +1)
elif (gender == '3' or gender == '4') :
birth = 2000 + int(birth)
print(datetime.datetime.now().year - birth+1)
else :
print("계산할 수 없습니다.")
'파이썬(PYTHON) > 프로젝트' 카테고리의 다른 글
[파이썬(Python)] 전화번호부 관리2 (데이터베이스 이용) (0) | 2022.07.28 |
---|---|
[파이썬(Python)] 전화번호부 관리 (0) | 2022.07.23 |
[파이썬(Python)] 소소한 프로그래밍 연습 - 여러 가지 모음 (0) | 2022.07.17 |
[파이썬(Python)] 확장자별 폴더 정리 (0) | 2022.07.17 |
[파이썬(Python)] 계산기 (0) | 2022.07.10 |