美文网首页
案例13:想看ta的书

案例13:想看ta的书

作者: Iphone60Plus | 来源:发表于2020-04-06 13:22 被阅读0次

    练习目标
    在原有代码的基础上做一些优化,让用户输入作者名,就能打印出系统里该作者所有书籍的相关信息。
    练习要求
    新建一个类的方法,让程序能够根据作者名来展示相关书籍的信息。

    class Book:
         
        def __init__(self, name, author, comment, state = 0):
            self.name = name
            self.author = author
            self.comment = comment
            self.state = state
     
        def __str__(self):
            status = '未借出'
            if self.state == 1:
                status = '已借出'
            return '名称:《%s》 作者:%s 推荐语:%s\n状态:%s ' % (self.name, self.author, self.comment, status)
     
    class BookManager:
    
        authors = []
        # 创建一个存放作者名的列表
        def __init__(self):
            book1 = Book('撒哈拉的故事','三毛','我每想你一次,天上便落下一粒沙,从此便有了撒哈拉。')
            book2 = Book('梦里花落知多少','三毛','人人都曾拥有荷西,虽然他终会离去。')
            book3 = Book('月亮与六便士','毛姆','满地都是六便士,他却抬头看见了月亮。')
            self.books = [book1,book2,book3]
            # 将三个实例放在列表books里
            self.authors.append(book1.author)
            self.authors.append(book2.author)
            self.authors.append(book3.author)
            # 将三个实例的作者名添加到列表author里
     
        def menu(self):
            while True:
                print('1.查询书籍')
                choice = int(input('请输入数字选择对应的功能:'))
                if choice == 1:
                    self.show_author_book()
                    # 调用方法
                else:
                    print('感谢使用!')
                    break
     
        def show_author_book(self):
            author = input('你想找谁的书呢?')
            # 请在此处补充该方法的代码
            if author in self.authors:
                for book in self.books:
                    if book.author == author:
                        print(book.name)
                    else:
                        continue
            else:
                print('未收录此作者')
                    
    manager = BookManager()
    manager.menu()
    
    '''
    一个思路:
    1. 先用条件判断语句判断该作者在不在列表authors里,如果不在就打印'很可惜,我们暂时没有收录这位作者的作品'
    2. 如果在,就遍历列表books的每个实例,当实例属性author与输入的作者名相等,就打印该实例      
    '''
    

    相关文章

      网友评论

          本文标题:案例13:想看ta的书

          本文链接:https://www.haomeiwen.com/subject/nvzvphtx.html