[파이썬]노트, 노트북 만들기


파이썬 강좌_CS50_K-MOOC(가천대)유튜브 의 과제 중 노트와 노트북을 만들어 보겠습니다.

class라는 것을 처음 배워서 약간 어렵긴했지만 강의를 반복해서 듣고 나서 이해를 함. 아래 코드처럼 클래스를 이용해서 def들을 정의 해주면 됨.

class Note(object):
    def __init__(self, content=None):
        self.content = content
# 컨텐츠의 기본값을 넣어서 굳이 안넣어줘도 되는 편안함이 있다.
    def write_content(self, content):
        self.content = content

    def remove_all(self):
        self.content = ""

    def __str__(self):
        return self.content
#출력

class NoteBook(object):
    def __init__(self, title):
        self.title = title
        self.page_number = 1
        self.notes = {}
# 노트라는 오브젝트를 넣어라
    def add_note(self, note, page=0):
        if self.page_number < 300:
            if page == 0:
                self.notes[self.page_number] = note
                # 딕트 타입이니깐 {1 : a } 이렇게 나온다
                self.page_number += 1
            else:
                self.notes = {page : note}
                self.page_number += 1
        else:
            print("Page가 모두 채워졌습니다.")

    def remove_note(self, page_number):
        if page_number in self.notes.keys():
            # key에 있다면
            return self.notes.pop(page_number)
            # 찢는다.
        else:
            print("해당 페이지는 존재하지 않습니다.")

    def get_number_of_pages(self):
        return len(self.notes.keys())
    #전체 페이지의 수

이렇게 클래스를 정해준다음 실제로 돌아가는지 테스트를 해보자.

from note_module import NoteBook
from note_module import Note

quote_book = NoteBook("The Quote Book")

new_note = Note()
new_note.write_content("Don't cry because it's over smile because it happened. -Dr. Seuss")

quote_book.add_note(new_note)

print(quote_book.get_number_of_pages())

quote_book.add_note(Note("Hello, World"))
quote_book.add_note(Note("Hello, World"))
quote_book.add_note(Note("Hello, World"))
quote_book.add_note(Note("Hello, World"))
quote_book.add_note(Note("Hello, World"))

print(quote_book.get_number_of_pages())

my_note = quote_book.remove_note(1)
print(my_note)

print(quote_book.get_number_of_pages())

이렇게 해보면 노트북과 노트를 이용해 추가도 해보고 삭제도 해보고 노트의 갯수도 찍어볼 수 있다.




© 2018. by statssy

Powered by statssy