대학생 코딩 과제 대행 java, python , oracle 다섯 번째
https://open.kakao.com/o/s3aMpbA
이번에는 아래와 같은 과제를 파이썬3로 의뢰 받았다.
## 주민등록번호 유효성 검사기
# 주민등록번호는 일정한 규칙으로 이루어진 숫자의 연속입니다.
# 이 규칙을 이용하면, 어떤 숫자열이 입력으로 들어왔을 때,
# 이 숫자열이 적합한 주민등록번호인가를 판별할 수 있습니다.
# 주민등록번호에 반영된 규칙은 매우 많지만,
# 두 가지로 제한합니다.
# 1. 첫 6 자리는 생년월일입니다. 년도는 00 ~ 99 까지 가능하고, 월은 01 ~ 12 까지 가능합니다. 일은 01 ~ 31 까지 가능합니다.
# (각 월에 따라서 일의 제약이 달라집니다. 2월은 28일까지 인 것으로 해주세요.)
# 2. 7 번째 숫자는 1 ~ 4 만 허용합니다.
# 1 : 1900 년대에 태어난 남자
# 2 : 1900 년대에 태어난 여자
# 3 : 2000 년대에 태어난 남자
# 4 : 2000 년대에 태어난 여자
# 입력은 ****** - ******* 형식으로 입력을 받는다고 가정합니다.
# 출력은 유효한 경우에는 생년월일과 성별을 출력하고,
# 유효하지 않은 경우에는 유효하지 않다는 메세지를 출력하도록 합시다.
# 입력값으로 특정 값을 받으면 프로그램이 종료되도록 만듭시다.
"""
(실행 예시)
확인하고 싶은 주민번호를 입력해주세요: 940822 - 1434652
1994 년 8 월 22 일 생 남자입니다.
확인하고 싶은 주민번호를 입력해주세요: 990231 - 2098367
유효하지 않은 주민등록번호입니다.
확인하고 싶은 주민번호를 입력해주세요: 종료
프로그램을 종료합니다.
"""
# -*- coding:utf-8 -*-
while (True):
print('"""')
print()
day31_month = [1, 3, 5, 7, 8, 10, 12]
day30_month = [4, 6, 9, 11]
day28_month = [2]
number = input("확인하고 싶은 주민번호를 입력해주세요:")
if (number == "종료"):
print()
print("프로그램을 종료합니다.")
print('"""')
break
else:# input 값이 종료 이외일 경우 밑에 코드들 실행
number_list = number.split('-')#'-' 기준으로 나누어서 리스트로 만듬
number1 = int(number_list[0])#생년월일 부분 정수형
p_number1 = number_list[0]#생년월일 부분 문자형
year = int(number_list[0][0:2])#생년 정수형
p_y = number_list[0][0:2]#생년 문자형
month = int(number_list[0][2:4])#월 정수형
day = int(number_list[0][4:])#일 정수형
number2 = int(number_list[1])#뒤에 7자리 정수형
p_number2 = number_list[1]#뒤에 7자리 문자형
sex = int(number_list[1][0])#뒤에 7자리 중 첫숫자 정수형
if (len(p_number1) != 6):#생년월일이 6자리가 아니면 실행
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
elif (len(p_number2) != 7):#뒤에 7자리가 7자리가 아니면 실행
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
if (not(0 < month < 13)):#월이 1~12 사이 숫자 아니면 실행
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
if (month in day31_month):
if (not (0 < day < 32)):#일이 1~31사이가 아닐경우
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
if (month in day28_month):#월이 2월일 경우
if (not(0 < day < 29)):#일이 1~28일이 아닐경우 실행
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
if (month in day30_month):
if (not (0 < day < 31)): # 일이 1~30사이가 아닐경우
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
if (sex == 1 or sex == 2):#뒷7자리중 첫자리가 1 또는 2인 경우
p_y = "19" + p_y
if (sex == 1):#1일경우
print()
print(p_y + " 년 " + str(month) + " 월 " + str(day) + " 일 생 남자 입니다.")
print()
elif (sex == 2):#2일 경우
print()
print(p_y + " 년 " + str(month) + " 월 " + str(day) + " 일 생 여자 입니다.")
print()
if (sex == 3 or sex == 4):##뒷7자리중 첫자리가 3 또는 4인 경우
if (year > 17): # 현재 년도 보다 더 미래일수가 없다.
print("유효하지 않은 주민등록번호입니다.")
continue
else:
p_y = "20" + p_y
if (sex == 3):#3인경우
print()
print(p_y + " 년 " + str(month) + " 월 " + str(day) + " 일 생 남자 입니다.")
print()
elif (sex == 4):#4일경우
print()
print(p_y + " 년" + str(month) + " 월" + str(day) + " 일 생 여자 입니다.")
print()
이번에는 아래와 같은 과제를 파이썬3로 의뢰 받았다.
## 주민등록번호 유효성 검사기
# 주민등록번호는 일정한 규칙으로 이루어진 숫자의 연속입니다.
# 이 규칙을 이용하면, 어떤 숫자열이 입력으로 들어왔을 때,
# 이 숫자열이 적합한 주민등록번호인가를 판별할 수 있습니다.
# 주민등록번호에 반영된 규칙은 매우 많지만,
# 두 가지로 제한합니다.
# 1. 첫 6 자리는 생년월일입니다. 년도는 00 ~ 99 까지 가능하고, 월은 01 ~ 12 까지 가능합니다. 일은 01 ~ 31 까지 가능합니다.
# (각 월에 따라서 일의 제약이 달라집니다. 2월은 28일까지 인 것으로 해주세요.)
# 2. 7 번째 숫자는 1 ~ 4 만 허용합니다.
# 1 : 1900 년대에 태어난 남자
# 2 : 1900 년대에 태어난 여자
# 3 : 2000 년대에 태어난 남자
# 4 : 2000 년대에 태어난 여자
# 입력은 ****** - ******* 형식으로 입력을 받는다고 가정합니다.
# 출력은 유효한 경우에는 생년월일과 성별을 출력하고,
# 유효하지 않은 경우에는 유효하지 않다는 메세지를 출력하도록 합시다.
# 입력값으로 특정 값을 받으면 프로그램이 종료되도록 만듭시다.
"""
(실행 예시)
확인하고 싶은 주민번호를 입력해주세요: 940822 - 1434652
1994 년 8 월 22 일 생 남자입니다.
확인하고 싶은 주민번호를 입력해주세요: 990231 - 2098367
유효하지 않은 주민등록번호입니다.
확인하고 싶은 주민번호를 입력해주세요: 종료
프로그램을 종료합니다.
"""
# -*- coding:utf-8 -*-
while (True):
print('"""')
print()
day31_month = [1, 3, 5, 7, 8, 10, 12]
day30_month = [4, 6, 9, 11]
day28_month = [2]
number = input("확인하고 싶은 주민번호를 입력해주세요:")
if (number == "종료"):
print()
print("프로그램을 종료합니다.")
print('"""')
break
else:# input 값이 종료 이외일 경우 밑에 코드들 실행
number_list = number.split('-')#'-' 기준으로 나누어서 리스트로 만듬
number1 = int(number_list[0])#생년월일 부분 정수형
p_number1 = number_list[0]#생년월일 부분 문자형
year = int(number_list[0][0:2])#생년 정수형
p_y = number_list[0][0:2]#생년 문자형
month = int(number_list[0][2:4])#월 정수형
day = int(number_list[0][4:])#일 정수형
number2 = int(number_list[1])#뒤에 7자리 정수형
p_number2 = number_list[1]#뒤에 7자리 문자형
sex = int(number_list[1][0])#뒤에 7자리 중 첫숫자 정수형
if (len(p_number1) != 6):#생년월일이 6자리가 아니면 실행
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
elif (len(p_number2) != 7):#뒤에 7자리가 7자리가 아니면 실행
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
if (not(0 < month < 13)):#월이 1~12 사이 숫자 아니면 실행
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
if (month in day31_month):
if (not (0 < day < 32)):#일이 1~31사이가 아닐경우
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
if (month in day28_month):#월이 2월일 경우
if (not(0 < day < 29)):#일이 1~28일이 아닐경우 실행
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
if (month in day30_month):
if (not (0 < day < 31)): # 일이 1~30사이가 아닐경우
print()
print("유효하지 않은 주민등록번호입니다.")
print()
continue
if (sex == 1 or sex == 2):#뒷7자리중 첫자리가 1 또는 2인 경우
p_y = "19" + p_y
if (sex == 1):#1일경우
print()
print(p_y + " 년 " + str(month) + " 월 " + str(day) + " 일 생 남자 입니다.")
print()
elif (sex == 2):#2일 경우
print()
print(p_y + " 년 " + str(month) + " 월 " + str(day) + " 일 생 여자 입니다.")
print()
if (sex == 3 or sex == 4):##뒷7자리중 첫자리가 3 또는 4인 경우
if (year > 17): # 현재 년도 보다 더 미래일수가 없다.
print("유효하지 않은 주민등록번호입니다.")
continue
else:
p_y = "20" + p_y
if (sex == 3):#3인경우
print()
print(p_y + " 년 " + str(month) + " 월 " + str(day) + " 일 생 남자 입니다.")
print()
elif (sex == 4):#4일경우
print()
print(p_y + " 년" + str(month) + " 월" + str(day) + " 일 생 여자 입니다.")
print()
댓글
댓글 쓰기