coding/Project

[Python] 활용편 - 06 - Class 함수(3)(프로필 관리 기능 만들기)

양한마리 2022. 9. 13. 23:51
728x90


:: 파이썬 과제 - class 활용하기 (3) ::

3. 프로필 관리 기능 만들기

이름, 성별, 생일, 나이, 핸드폰 번호, 이메일 주소

 


3. 프로필 관리 기능 만들어보기

요구조건

  • 사용자들의 프로필을 관리할 수 있는 클래스를 선언해주세요
  • 메소드를 호출해서 사용자의 프로필을 설정할 수 있도록 해주세요
  • 사용자의 정보를 각각 출력할 수 있는 메소드를 만들어주세요

풀이)

# 클래스 함수 선언
class Profile:

    def __init__(self): # __init__ 함수로 인스턴스 실행시 초기 자료 세팅
        self.profile = {
            "name": "-",
            "gender": "-",
            "birthday": "-",
            "age": "-",
            "phone": "-",
            "email": "-",
        }

    def set_profile(self, profile): # 0.전체 값을 입력하는 메소드
        self.profile = profile

    def set_name(self, set_name): # 1.이름 값을 입력하는 메소드
        self.profile['name'] = set_name

    def set_gender(self, set_gender): # 2.성별 값을 입력하는 메소드
        self.profile['gender'] = set_gender

    def set_birthday(self, set_birthday): # 3.생일 값을 입력하는 메소드
        self.profile['birthday'] = set_birthday

    def set_age(self, set_age): # 4.나이 값을 입력하는 메소드
        self.profile['age'] = set_age

    def set_phone(self, set_phone): # 5.핸드폰 번호 값을 입력하는 메소드
        self.profile['phone'] = set_phone

    def set_email(self, set_email): # 6.이메일 주소 값을 입력하는 메소드
        self.profile['email'] = set_email


    def get_name(self): # 1.이름 name을 출력해주는 메소드
        return self.profile.get('name')

    def get_gender(self): # 2.성별 gender를 출력해주는 메소드
        return self.profile.get('gender')

    def get_birthday(self): # 3.생일 birthday를 출력해주는 메소드
        return self.profile.get('birthday')

    def get_age(self): # 4.나이 age를 출력해주는 메소드
        return self.profile.get('age')

    def get_phone(self): # 5.핸드폰 번호 phone을 출력해주는 메소드
        return self.profile.get('phone')

    def get_email(self): # 6.이메일 주소 email를 출력해주는 메소드
        return self.profile.get('email')

    def main(self) : # 0.전체 출력 후 행동을 위한 메소드
        result = int(input(":: 목록 ::\n"
                           "===========================\n"
                           "1.종료\n"
                           "2.재시작\n"
                           "3.수정\n"
                           "===========================\n"
                           "\n번호를 입력하세요 : "))
        if result == 1:
            print("종료합니다.")
            quit()
        elif result == 2:
            pass
        elif result == 3: # 값을 수정하기 위한 메소드
            self.profile['name'] = input("수정할 이름을 입력하세요 : ")
            self.profile['gender'] = input("수정할 성별을 입력하세요 : ")
            self.profile['birthday'] = input("수정할 생일을 입력하세요 : ")
            try:
                self.profile['age'] = int(input("수정할 나이를 입력하세요 : "))
            except:
                print("숫자만 입력하세요.(한 번 더 틀릴 경우 강제 종료)")
                self.profile['age'] = int(input("수정할 나이를 입력하세요 : "))
            self.profile['phone'] = input("수정할 핸드폰 번호를 입력하세요 : ")
            self.profile['email'] = input("수정할 이메일 주소를 입력하세요 : ")


    def name(self): # 1.이름 출력 후 행동을 위한 메소드
        result = int(input(":: 목록 ::\n"
                           "===========================\n"
                           "1.종료\n"
                           "2.재시작\n"
                           "3.수정\n"
                           "===========================\n"
                           "\n번호를 입력하세요 : "))
        if result == 1:
            print("종료합니다.")
            quit()
        elif result == 2:
            pass
        elif result == 3: # 값을 수정하기 위한 메소드
            self.profile['name'] = input("수정할 이름을 입력하세요 : ")

    def gender(self): # 2.성별 출력 후 행동을 위한 메소드
        result = int(input(":: 목록 ::\n"
                           "===========================\n"
                           "1.종료\n"
                           "2.재시작\n"
                           "3.수정\n"
                           "===========================\n"
                           "\n번호를 입력하세요 : "))
        if result == 1:
            print("종료합니다.")
            quit()
        elif result == 2:
            pass
        elif result == 3: # 값을 수정하기 위한 메소드
            self.profile['gender'] = input("수정할 성별을 입력하세요 : ")

    def birthday(self): # 3.생일 출력 후 행동을 위한 메소드
        result = int(input(":: 목록 ::\n"
                           "===========================\n"
                           "1.종료\n"
                           "2.재시작\n"
                           "3.수정\n"
                           "===========================\n"
                           "\n번호를 입력하세요 : "))
        if result == 1:
            print("종료합니다.")
            quit()
        elif result == 2:
            pass
        elif result == 3: # 값을 수정하기 위한 메소드
            self.profile['birthday'] = input("수정할 생일을 입력하세요 : ")

    def age(self): # 4.나이 출력 후 행동을 위한 메소드
        result = int(input(":: 목록 ::\n"
                           "===========================\n"
                           "1.종료\n"
                           "2.재시작\n"
                           "3.수정\n"
                           "===========================\n"
                           "\n번호를 입력하세요 : "))
        if result == 1:
            print("종료합니다.")
            quit()
        elif result == 2:
            pass
        elif result == 3: # 값을 수정하기 위한 메소드
            try :
                self.profile['age'] = int(input("수정할 나이를 입력하세요 : "))
            except :
                print("숫자만 입력하세요.(한 번 더 틀릴 경우 강제 종료)")
                self.profile['age'] = int(input("수정할 나이를 입력하세요 : "))

    def phone(self): # 5.핸드폰 번호 출력 후 행동을 위한 메소드
        result = int(input(":: 목록 ::\n"
                           "===========================\n"
                           "1.종료\n"
                           "2.재시작\n"
                           "3.수정\n"
                           "===========================\n"
                           "\n번호를 입력하세요 : "))
        if result == 1:
            print("종료합니다.")
            quit()
        elif result == 2:
            pass
        elif result == 3: # 값을 수정하기 위한 메소드
            self.profile['phone'] = input("수정할 핸드폰 번호를 입력하세요 : ")

    def email(self): # 6.이메일 주소 출력 후 행동을 위한 메소드
        result = int(input(":: 목록 ::\n"
                           "===========================\n"
                           "1.종료\n"
                           "2.재시작\n"
                           "3.수정\n"
                           "===========================\n"
                           "\n번호를 입력하세요 : "))
        if result == 1:
            print("종료합니다.")
            quit()
        elif result == 2:
            pass
        elif result == 3: # 값을 수정하기 위한 메소드
            self.profile['email'] = input("수정할 이메일 주소를 입력하세요 : ")

print("프로필을 등록합니다.\n")

def profile_01() : # 프로필 01 함수 생성
    profile1 = Profile() # 인스턴스 생성
    profile1.set_profile({ # 초기 0.전체 값을 넣어주는 메소드
        "name": input("이름을 입력 하세요 : "),
        "gender": input("성별을 입력 하세요 : "),
        "birthday": input("생일을 입력 하세요 : "),
        "age": int(input("나이를 입력 하세요 : ")),
        "phone": input("연락처를 입력 하세요 : "),
        "email": input("이메일을 입력 하세요 : "),
    })

    # profile1.set_profile({
    #     "name": "hanmari yang",
    #     "gender": "man",
    #     "birthday": "00/00",
    #     "age": 00,
    #     "phone": "01012341234",
    #     "email": "hanmari.code@gmail.com",
    # })

    while True :
        print("\n"
              ":: 목록 ::\n"
              "===========================\n"
              "0.전체\n"
              "1.이름\n"
              "2.성별\n"
              "3.생일\n"
              "4.나이\n"
              "5.헨드폰 번호\n"
              "6.이메일 주소\n"
              "9.Quit\n"
              "===========================\n")

        N = int(input("목록에서 출력할 번호를 입력하세요 : "))


        if N == 0 : # 0.전체 값을 출력해주는 메소드
            print("0.전체\n"
                  "===========================\n"
                  f"이름 : {profile1.get_name()}\n"
                  f"성별 : {profile1.get_gender()}\n"
                  f"생일 : {profile1.get_birthday()}\n"
                  f"나이 : {profile1.get_age()}\n"
                  f"핸드폰 번호 : {profile1.get_phone()}\n"
                  f"이메일 주소 : {profile1.get_email()}\n"
                  "===========================\n")

            profile1.main() # 출력 후 행동을 위한 메소드

        elif N == 1 : # 이름 출력
            print("1.이름\n" 
                  "===========================\n"
                  f"이름 : {profile1.get_name()}\n"
                  "===========================\n")


            profile1.name() # 출력 후 행동을 위한 메소드

        elif N == 2 : # 성별 출력
            print("2.성별\n" 
                  "===========================\n"
                  f"성별 : {profile1.get_gender()}\n"
                  "===========================\n")

            profile1.gender() # 출력 후 행동을 위한 메소드

        elif N == 3 : # 생일 출력
            print("3.생일\n" 
                  "===========================\n"
                  f"생일 : {profile1.get_birthday()}\n"
                  "===========================\n")

            profile1.birthday() # 출력 후 행동을 위한 메소드

        elif N == 4 : # 나이 출력
            print("4.나이\n" 
                  "===========================\n"
                  f"나이 : {profile1.get_age()}\n"
                  "===========================\n")

            profile1.age() # 출력 후 행동을 위한 메소드

        elif N == 5 : # 핸드폰번호 출력
            print("5.핸드폰 번호\n" 
                  "===========================\n"
                  f"핸드폰 번호 : {profile1.get_phone()}\n"
                  "===========================\n")

            profile1.phone() # 출력 후 행동을 위한 메소드

        elif N == 6 : # 이메일 출력
            print("6.이메일 주소\n" 
                  "===========================\n"
                  f"이메일 주소 : {profile1.get_email()}\n"
                  "===========================\n")

            profile1.email() # 출력 후 행동을 위한 메소드

        elif N == 9 :
            print("종료합니다.")
            break

profile_01() # 함수 실행

실행 예시)

프로필을 등록합니다.

이름을 입력 하세요 : hanmari yang # <-- 입력 --
성별을 입력 하세요 : man # <-- 입력 --
생일을 입력 하세요 : 10/19 # <-- 입력 --
나이를 입력 하세요 : 99 # <-- 입력 --
연락처를 입력 하세요 : 01012341234 # <-- 입력 --
이메일을 입력 하세요 : hanmari.code@gmail.com # <-- 입력 --

:: 목록 ::
===========================
0.전체
1.이름
2.성별
3.생일
4.나이
5.헨드폰 번호
6.이메일 주소
9.Quit
===========================

목록에서 출력할 번호를 입력하세요 : 0 # <-- 입력 --
0.전체
===========================
이름 : hanmari yang
성별 : man
생일 : 10/19
나이 : 99
핸드폰 번호 : 01012341234
이메일 주소 : hanmari.code@gmail.com
===========================

:: 목록 ::
===========================
1.종료
2.재시작
3.수정
===========================

번호를 입력하세요 : 3 # <-- 입력 --
수정할 이름을 입력하세요 : Hanmari Yang # <-- 입력 --
수정할 성별을 입력하세요 : Man # <-- 입력 --
수정할 생일을 입력하세요 : 1993/10/19 # <-- 입력 --
수정할 나이를 입력하세요 : 30 # <-- 입력 --
수정할 핸드폰 번호를 입력하세요 : 01012341234 # <-- 입력 --
수정할 이메일 주소를 입력하세요 : hanmari.code@gmail.com # <-- 입력 --
 
:: 목록 ::
===========================
0.전체
1.이름
2.성별
3.생일
4.나이
5.헨드폰 번호
6.이메일 주소
9.Quit
===========================

목록에서 출력할 번호를 입력하세요 : 0 # <-- 입력 --
0.전체
===========================
이름 : Hanmari Yang
성별 : Man
생일 : 1993/10/19
나이 : 30
핸드폰 번호 : 01012341234
이메일 주소 : hanmari.code@gmail.com
===========================

:: 목록 ::
===========================
1.종료
2.재시작
3.수정
===========================

번호를 입력하세요 : 2 # <-- 입력 --

:: 목록 ::
===========================
0.전체
1.이름
2.성별
3.생일
4.나이
5.헨드폰 번호
6.이메일 주소
9.Quit
===========================

목록에서 출력할 번호를 입력하세요 : 5
5.핸드폰 번호
===========================
핸드폰 번호 : 01012341234
===========================

:: 목록 ::
===========================
1.종료
2.재시작
3.수정
===========================

번호를 입력하세요 : 3 # <-- 입력 --
수정할 핸드폰 번호를 입력하세요 : 010-1234-1234 # <-- 입력 --

:: 목록 ::
===========================
0.전체
1.이름
2.성별
3.생일
4.나이
5.헨드폰 번호
6.이메일 주소
9.Quit
===========================

목록에서 출력할 번호를 입력하세요 : 9 # <-- 입력 --
종료합니다.

종료 코드 0(으)로 완료된 프로세스

 

728x90
반응형