Computer Programming/AI

TIL_Assignment 3(class를 이용한 회원/게시글 관리)

JYCoder 2023. 8. 23. 00:01

세 번째 과제인 회원/게시글 관리 프로그램을 만들었다.

 

Member과 Post 두 개의 class를 만들었고, terminal에서 직접 회원 생성을 할 수 있다.

회원을 다 생성하면 각각의 회원은 comment를 남길 수 있다.

 

class를 만드는 것은 수월하게 작성했다.

constructor을 만들고 그 안에 attributes를 넣었다.

'def display()'처럼 method를 작성하고 원하는 작업을 작성했다.

 

hashlib module을 import하여 member의 password을 암호화 시켰다.

이 부분은 제대로 했는지 잘 모르겠다.

 

특히, 생성된 Member instance가 세 개의 Post instance를 갖게 하는 부분에서 좀 헤맸다.

그래도 어찌저찌 코드를 작성하고 테스트를 마친 후, 무사히 시간 안에 링크 제출을 했다.

 

이따 7시에 과제 풀이 미팅에 참여해서 내가 작성한 코드들이 잘 작성된 것인지 확인해 볼 것이다.

또 궁금한 것도 여쭤봐야지.

import hashlib


class Member():
    def __init__(self, name, username, password):
        self.name = name
        self.username = username

        m = hashlib.sha256()
        self.password = m.update(password.encode('utf-8'))

    def display(self):
        return f"Name:{self.name}, Username:{self.username}"


class Post():
    def __init__(self, username, title, content):
        self.author = username
        self.title = title
        self.content = content


members = []
posts = []
while True:
    name = input('Name: ')
    username = input('Username: ')
    password = input('Password: ')

    person = Member(name, username, password)

    members.append(person)

    member_answer = input('Continue(Y/N)?')
    if member_answer == 'N':
        for m in members:
            while True:
                print(m.display())
                title = input('Title: ')
                content = input('content: ')
                post = Post(m.username, title, content)
                posts.append(post)
                comment_answer = input(
                    'Do you want to leave more comment(Y/N)?')
                if comment_answer == 'N':
                    break
        break

for p in posts:
    if p.author == 'apple':
        print('certain(apple) user wrote: ', p.title)
    if "great" in p.content:
        print('certain(great) word contained: ', p.title)
LIST

'Computer Programming > AI' 카테고리의 다른 글

TIL_Array와 LinkedList(Algorithm)  (0) 2023.08.25
TIL_Algorithm  (0) 2023.08.24
TIL_두 번째 assignment(가위바위보 Game)  (1) 2023.08.22
TIL_Python Assignment 1(Up-and-Down Game)  (0) 2023.08.21
WIL_두 번째 주  (0) 2023.08.20