PYTHON

[TIL] 20240226 10일차

creative.darkstar 2024. 2. 26. 23:32

이번주 목(2024-02-29) 까지 진행할 개인 과제 중

3번 문항을 풀이 중인 코드를 리뷰하고자 한다.

회원 가입 및 포스팅(글쓰기) 기능 구현이다.

 

 

class Member():
    def __init__(self, name, username, password):
        self.name = name
        self.username = username
        self.password = password
    
    def display(self):
        print(f"회원명: {self.name}, ID: {self.username}")
        

class Post(Member):
    def __init__(self, title, content, name, username, password):
        self.title = title
        self.content = content
        super().__init__(name, username, password)
        self.author = self.username

 

회원의 이름, ID, PW를 저장하는 Member 클래스와

Member 클래스를 상속시켜 글쓰기 기능과 관련한 정보를 저장하는 Post 클래스를 선언했다.

 

Post 클래스에서 Member 클래스의 username을 author로 저장하기 위해 상속시켰다.

 

 

def main():
    members = list()
    
    try_num = 0
    while (try_num < MAX_INPUT_TIME):
        print("[회원가입]\n회원 정보를 입력합니다...\n")
        add_name = input("이름을 입력하십시오.: ")
        add_username = input("ID를 입력하십시오.: ")
        add_password = input("PW를 입력하십시오.: ")
        if input(f"\n입력하신 정보는 아래와 같습니다.\n이름: {add_name}\nID: {add_username}\nPW: {add_password}\n\n맞다면 'y'를 입력하십시오.: ").lower() == 'y':
            print("\n회원가입을 진행합니다...")
            members.append(Member(add_name, add_username, add_password))
            print("완료\n")
        else:
            print("\n작성하신 정보로 가입 진행을 취소하셨습니다.\n")
        try_num += 1
        
        if input("회원가입을 그만하고 싶으면 'y'를 입력하십시오.: ").lower() == 'y':
            print("회원가입을 종료합니다. 글 작성 단계로 이동합니다.\n")
            break
    
    print("..........[현재 모든 회원 목록]..........")
    for member in members:
        member.display()
    print(".........................................\n")

 

메인 함수이다.

회원 가입을 위한 정보 입력은 while 문을 통해 계속 입력받지만, MAX_INPUT_TIME 만큼만 반복한다.

 

반복문 안의 코드는 회원 가입에 필요한 정보인 이름, ID, PW를 유저의 input 값으로 받고

이를 Member 인스턴스로 만들어 members 리스트에 append(저장)한다.

 

회원 가입을 진행하기 전에 입력한 정보가 맞는지 확인하는 단계와

회원 가입을 반복하는 것을 중단하고 싶은지 확인하는 단계를 if 문을 두어 구현했다.

 

회원 가입 단계를 거치고 나면 글 작성 단계로 넘어가지만

아직 구현하지 않은 상태이다.

 

실행한 결과는 아래와 같다.

[회원가입]
회원 정보를 입력합니다...

이름을 입력하십시오.: 홍길동
ID를 입력하십시오.: hong77
PW를 입력하십시오.: qwe123

입력하신 정보는 아래와 같습니다.
이름: 홍길동
ID: hong77
PW: qwe123

맞다면 'y'를 입력하십시오.: y

회원가입을 진행합니다...
완료

회원가입을 그만하고 싶으면 'y'를 입력하십시오.: w
[회원가입]
회원 정보를 입력합니다...

이름을 입력하십시오.: 아이유
ID를 입력하십시오.: iu4ever
PW를 입력하십시오.: iloveyou@

입력하신 정보는 아래와 같습니다.
이름: 아이유
ID: iu4ever
PW: iloveyou@

맞다면 'y'를 입력하십시오.: y

회원가입을 진행합니다...
완료

회원가입을 그만하고 싶으면 'y'를 입력하십시오.: g
[회원가입]
회원 정보를 입력합니다...

이름을 입력하십시오.: 아무개
ID를 입력하십시오.: molu
PW를 입력하십시오.: molu123

입력하신 정보는 아래와 같습니다.
이름: 아무개
ID: molu
PW: molu123

맞다면 'y'를 입력하십시오.: a

작성하신 정보로 가입 진행을 취소하셨습니다.

회원가입을 그만하고 싶으면 'y'를 입력하십시오.: y
회원가입을 종료합니다. 글 작성 단계로 이동합니다.

..........[현재 모든 회원 목록]..........
회원명: 홍길동, ID: hong77
회원명: 아이유, ID: iu4ever
.........................................