zoukankan      html  css  js  c++  java
  • Python面向对象编程

    给程序加上控制台菜单

    menu.py

    import sys
    from notebook import Notebook, Note
    
    class Menu:
        '''Display a menu and respond to choices when run.'''
        def __init__(self):
            self.notebook = Notebook()
            self.choices = {
                    "1": self.show_all_notes,
                    "2": self.search_notes,
                    "3": self.add_note,
                    "4": self.modify_note,
                    "5": self.quit
            }
    
        def display_menu(self):
            print("""
    Notebook Menu
    
    1. Show all Notes
    2. Search Notes
    3. Add Note
    4. Modify Note
    5. Quit
    """)
    
        def run(self):
            '''Display the menu and respond to choices.'''
            while True:
                self.display_menu()
                choice = input("Enter an option: ")
                action = self.choices.get(choice)
                if action:
                    action()
                else:
                    print("{0} is not a valid choice".format(choice))
    
        def show_all_notes(self, notes=None):
            if not notes:
                notes = self.notebook.notes
            for note in notes:
                print("{0}: {1}  {2}".format(
                    note.id, note.tags, note.memo))
                print("*********************************")
    
        def show_notes(self, notes=None):
            if not notes:
                notes = self.notebook.search_notes
            for note in notes:
                print("{0}: {1}  {2}".format(
                    note.id, note.tags, note.memo))
                print("*********************************")
    
        def search_notes(self):
            filter = input("Search for: ")
            search_notes = self.notebook.search(filter)
            #print(notes)
            self.show_notes(search_notes)
    
        def add_note(self):
            memo = input("Enter a memo: ")
            self.notebook.new_note(memo)
            print("Your note has been added.")
    
        def modify_note(self):
            id = int(input("Enter a note id: "))
            memo = input("Enter a memo: ")
            tags = input("Enter tags: ")
            if memo:
                self.notebook.modify_memo(id, memo)
            if tags:
                self.notebook.modify_tags(id, tags)
    
        def quit(self):
            print("Thank you for using your notebook today.")
            sys.exit(0)
    
    if __name__ == "__main__":
        Menu().run()

    运行结果:

    Notebook Menu

    1. Show all Notes 2. Search Notes 3. Add Note 4. Modify Note 5. Quit

    Enter an option: 3 Enter a memo: test Your note has been added. ... Enter an option: 3 Enter a memo: hello Your note has been added.

    Enter an option: 1 1:   test ********************************* 2:   hello ********************************* ... Enter an option: 2 Search for: hel 2:   hello ********************************* ... Enter an option: 4 Enter a note id: 1 Enter a memo: aa Enter tags: 1 <notebook.Note object at 0x02B80FB0> ... Enter an option: 1 1: 1  aa ********************************* 2:   hello ... Enter an option: 5 Thank you for using your notebook today.

  • 相关阅读:
    团队选题与评审
    消息管家
    团队展示
    功能规格说明书
    测试与优化
    git分支管理
    MVC小结
    .Net基础加强
    结对编程
    个人作业1_软件工程
  • 原文地址:https://www.cnblogs.com/davidgu/p/4855537.html
Copyright © 2011-2022 走看看