대학생 코딩 과제 대행 java, python, oracle 여섯 번째

https://open.kakao.com/o/s3aMpbA

이번에는 다섯 번째 과제를 의뢰했던 사람이 연이어 아래와 같은 내용의
과제를 의뢰했다.

# 7 주차 강의자료: 함수

"""
제출 시에 파일 형식을 꼭 지켜주세요.
이름_week07_HW.py (예. 이재호_week07_HW.py)
"""

## 주민등록번호를 만들어주는 함수 CN_maker() 를 만들어 봅시다.
# CN_maker() 함수의 매개변수는 사용자 정보가 포함된 딕셔너리이며
# 이 딕셔너리의 Key는 다음과 같습니다.

# 'Year': 출생년도. 1900년 ~ 2099 년으로 범위를 제한합니다. (예) 1986
# 'Month': 출생한 달. 1 ~ 12 월로 범위를 제한합니다. (예) 12
# 'Day': 출생한 일. 각 달에 맞게 범위를 제한합니다. 2 월은 무조건 28 일로 가정합니다. (예) 22
# 'Sex': 성별. 남자, 남성, 남 모두 가능하도록 합시다. (예) 남

# Key 정보들은 사용자로부터 입력을 받습니다.
# 입력을 받는 방법은
# CN_maker() 함수 안에 있어도 되고,
# 함수 밖에 있어도 되고,
# 다른 함수로 선언해서 사용해도 되고,
# 다른 함수로 선언해서 CN_maker() 함수 안에 사용해도 됩니다.
#함수 리턴값으로 출력해도 무관함!!!조건에 맞춰서 만들면 됨!
#조건이 충족안되면 '다시 입력해주세요' 하기!

# 결과적으로

## 마지막 여섯 자리는 ******로 고정합니다.

"""
(실행 예시)

++++++++++++++++++++++
++++주민등록번호 생성기++++
++++++++++++++++++++++

개인 정보를 입력해 주세요.
년도: 1986
달: 12
일: 22
성별: 남자

당신의 주민등록번호는 861222 - 1****** 입니다.
"""

def make_input():
    print("+++++++++++++++++++++++++")
    print("++++주민등록번호 생성기++++")
    print("+++++++++++++++++++++++++")
    print()
    print("개인 정보를 입력해 주세요.")
    list_month = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] # index 0,2,4,6,7,9,11 31일까지
    day31_month = [1, 3, 5, 7, 8, 10, 12]
    day30_month = [4, 6, 9, 11]
    day28_month = [2]
    year = input("년도 : ")
    if (int(year) < 1900 or int(year) > 2099):
        print()
        print("**************** 1900~2099년생만 취급합니다. ****************")
        print("**************** 년도를 위에 맞게 입력해주세요 ****************")
        print()
        return make_input()
    month = input("달 : ")
    if (int(month) not in list_month):
        print()
        print("************ 외계에서 오셨나요? 01~12만 취급합니다. *************")
        print("**************** 월을 위에 맞게 입력해주세요 ****************")
        print(" ************** 처음부터 다시 입력합니다. ****************")
        print()
        return make_input()
    day = input("일 : ")
    if (int(month) in day31_month):
        if (int(day) < 1 or int(day) > 31):
            print()
            print("******** 1,3,5,7,8,10,12월은 1~31일 까지 입니다. *****")
            print("******** 처음부터 다시 입력합니다. *****")
            print()
            return make_input()
    elif (int(month) in day28_month):
        if (int(day) < 1 or int(day) > 28):
            print()
            print("******** 2월은 1~28일 까지 입니다. *****")
            print("******** 처음부터 다시 입력합니다. *****")
            print()
            return make_input()
    elif (int(month) in day30_month):
        if (int(day) < 1 or int(day) > 30):
            print()
            print("******** 4,6,9,11월은 1~30일 까지 입니다. *****")
            print("******** 처음부터 다시 입력합니다. *****")
            print()
            return make_input()
    sex = input("성별 : ")
    if(sex != "남자" and sex != "여자"):
        print()
        print("************ 주민등록번호는 성소수자들을 배려하지 않습니다. ************")
        print("****************** 남자 또는 여자를 입력해주세요. ********************")
        print("******************** 처음부터 다시 입력합니다. **********************")
        print()
        return make_input()
    cn_dictionary = {"Year": year, "Month": month, "Day": day, "Sex": sex}
    return cn_dictionary


information = make_input()


def CN_maker(dictionary):
    year = dictionary["Year"]
    month = dictionary["Month"]
    day = dictionary["Day"]
    number = 0
    if (int(day) < 10):
        day = "0" + day
    sex = dictionary["Sex"]
    if (year[0] == "1"):
        if (sex == "남자"):
            number = 1
        elif (sex == "여자"):
            number = 2
    elif (year[0] == "2"):
        if (sex == "남자"):
            number = 3
        elif (sex == "여자"):
            number = 4

    year = year[2:]
    first = year + month + day
    second = str(number) + "******"
    return print("당신의 주민등록번호는\t" + first + '-' + second + "\t입니다.")


CN_maker(information)

댓글

이 블로그의 인기 게시물

About JVM Warm up

About idempotent

About Kafka Basic

About ZGC

sneak peek jitpack

Spring Boot Actuator readiness, liveness probes on k8s

About Websocket minimize data size and data transfer cost on cloud

About G1 GC

대학생 코딩 과제 대행 java, python, oracle 네 번째