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()
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有时间指导毕业设计

觉得写的好的话可以给我打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值