博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python面向对象编程 - 一个记事本程序范例(二)
阅读量:5926 次
发布时间:2019-06-19

本文共 2840 字,大约阅读时间需要 9 分钟。

给程序加上控制台菜单

menu.py

import sysfrom notebook import Notebook, Noteclass 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 Menu1. Show all Notes2. Search Notes3. Add Note4. Modify Note5. 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.

 

转载于:https://www.cnblogs.com/davidgu/p/4855537.html

你可能感兴趣的文章
C++ 数字转换为string类型
查看>>
程序员全国不同地区,微信(面试 招聘)群。
查看>>
【干货】界面控件DevExtreme视频教程大汇总!
查看>>
闭包 !if(){}.call()
查看>>
python MySQLdb安装和使用
查看>>
Java小细节
查看>>
poj - 1860 Currency Exchange
查看>>
chgrp命令
查看>>
Java集合框架GS Collections具体解释
查看>>
洛谷 P2486 BZOJ 2243 [SDOI2011]染色
查看>>
linux 笔记本的温度提示
查看>>
(转)DOTA新版地图6.78发布:大幅改动 增两位新英雄
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
快速排序——Java
查看>>