Python书籍实例

Posted SmallCuteMonkey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python书籍实例相关的知识,希望对你有一定的参考价值。

# 假设每本书只有一本
# 定义一个书的类
class Book(object):
    # 设置书对象需要的属性
    def __init__(self, name, author, state, bookIndex):
        # 构造函数一般就是用于对象的初始化
        self.name = name
        self.author = author
        # 0:'已借出' 1:'未借出'
        self.state = state
        self.bookIndex = bookIndex

    # __str__是魔术方法,用于在直接输出对象时更改它的描述
    def __str__(self):
        return 'Book(%s, %d)' % (self.name, self.state)


# book1 = Book('三国演义', '罗贯中', 1, 10010)
# print(book1)

# 定义借书信息类
class BookManage(object):
    # 存放所有书籍信息, 列表里面存放的是Book对象
    books = []

    # 设置一个方法用于开始把书的数据放入本类的数据中
    def start(self):
        """图书管理系统初始化数据"""
        # 使用Book类创建对象放入本类中的书列表中
        self.books.append(Book('python', 'Guido', 1, 'IN23445'))
        self.books.append(Book('java', 'Guido1', 1, 'IN23445'))
        self.books.append(Book('C++', 'Guido2', 1, 'IN23445'))

        print("初始化数据成功!")

    # 设置菜单方法
    def Menu(self):
        """图书管理菜单栏"""
        while True:
            # python输出文本的方式
            print("""
                        图书管理操作

            1). 添加书籍
            2). 删除数据
            3). 查询书籍
            4). 退出
            """)
            choice = input("请输入你的选择:")
            # 通过用户输入的信息,从而调用不的方法
            if choice == '1':
                self.addBook()
            elif choice == '2':
                self.delBook()
            elif choice == '3':
                self.borrowBook()
            elif choice == '4':
                exit()
            else:
                print("请输入正确的选择!")

    # 定义一个添加书的方法
    def addBook(self):
        print("添加书籍".center(0, '*'))
        name = input("书籍名称:")

        # 调用检查输入的书是否已经存在
        bObj = self.isBookExist(name)

        if bObj:
            print("书籍%s已经存在" % (bObj.name))
        else:
            self.books.append(Book(name, input("作者:"), 1, input("存放位置:")))
            print("书籍%s添加成功" % (name))

    def delBook(self):
        print("删除书籍".center(50, '*'))
        for i in self.books:
            print(i)
        name = input("删除书籍名称:")
        a = self.isBookExist(name)
        if a:
            self.books.remove(a)
            print("删除%s成功" % (a))
        else:
            print("书籍不存在")

    def borrowBook(self):
        print("查询书籍".center(50, '*'))
        for i in self.books:
            print(i)
        name = input("查询书籍名称:")
        b = self.isBookExist(name)
        print(b)
        for book in self.books:
            if b:
                print(book)
                break
            else:
                print("%s不存在" % (b))
                break

    def isBookExist(self, name):
        """检测书籍是否存在"""
        # 1. 依次遍历列表books里面的每个元素
        # 2. 如果有一个对象的书名和name相等, 那么存在;
        # 3. 如果遍历所有内容, 都没有发现书名与name相同, 书籍不存在;
        for book in self.books:
            if book.name == name:
                # 因为后面需要
                return book
        else:
            return False


print(__name__)
if __name__ == "__main__":
    bManger = BookManage()
    bManger.start()
    bManger.Menu()

以上是关于Python书籍实例的主要内容,如果未能解决你的问题,请参考以下文章

Python书籍实例

python 实例化形式片段

学习Python有啥好的书籍推荐

为啥 Python 不使用对象 .save() 将我的模型保存到数据库?

Python 自动化 - 浏览器chrome打开F12开发者工具自动Paused in debugger调试导致无法查看网站资源问题原因及解决方法,javascript反调试问题处理实例演示(代码片段

我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?