Lesson 3 15 python practical operation of the project

Even today, you have basically know what python is, the loading force to be professional, to class, def definition of class, defined functions to package what content do; and then when you need to call, call, this time codes and regulations , it seems easy to understand, but also in the future when encoding to note, accustomed to class, function. So you will be more and logic.

 下面复制了一下人家的例子,里面没有深奥的代码。。。。只是前面的拼凑
 所以还是要说一下:

 1. 逻辑思路(明确目标,分解需求,一个个代码实现);
 2. 适当使用 class 函数;
 3. 看人家的代码后,一定要下场 敲,哪怕抄袭人家的代码,从中了解,消化。写出自己的风格。

 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:

books = []
def __init__(self):
    book1 = Book('惶然录','费尔南多·佩索阿','一个迷失方向且濒于崩溃的灵魂的自我启示,一首对默默无闻、失败、智慧、困难和沉默的赞美诗。')
    book2 = Book('以箭为翅','简媜','调和空灵文风与禅宗境界,刻画人间之缘起缘灭。像一条柔韧的绳子,情这个字,不知勒痛多少人的心肉。')
    book3 = Book('心是孤独的猎手','卡森·麦卡勒斯','我们渴望倾诉,却从未倾听。女孩、黑人、哑巴、醉鬼、鳏夫的孤独形态各异,却从未退场。',1)
    self.books.append(book1)
    self.books.append(book2)
    self.books.append(book3)

def menu(self):
    print('欢迎使用流浪图书管理系统,每本沉默的好书都是一座流浪的岛屿,希望你有缘发现并着陆,为精神家园找到一片栖息地。\n')
    while True:
        print('1.查询所有书籍\n2.添加书籍\n3.借阅书籍\n4.归还书籍\n5.退出系统\n')
        choice = int(input('请输入数字选择对应的功能:'))
        if choice == 1:
            self.show_all_book()
        elif choice == 2:
            self.add_book()
        elif choice == 3:
            self.lend_book()
        elif choice == 4:
            self.return_book()
        elif choice == 5:
            print('感谢使用!愿你我成为爱书之人,在茫茫书海里相遇。')
            break

def show_all_book(self):
    print('书籍信息如下:')
    for book in self.books:
        print(book)
        print('')

def add_book(self):
    new_name = input('请输入书籍名称:')
    new_author =  input('请输入作者名称:')
    new_comment = input('请输入书籍推荐语:')
    new_book = Book(new_name, new_author, new_comment)
    self.books.append(new_book)
    print('书籍录入成功!\n')

def check_book(self,name):
    for book in self.books:
        if book.name == name:
             return book 
    else:
        return None

def lend_book(self):
    name = input('请输入书籍的名称:')
    res = self.check_book(name)

    if res != None:
        if res.state == 1:
            print('你来晚了一步,这本书已经被借走了噢')
        else:
            print('借阅成功,借了不看会变胖噢~')
            res.state = 1
    else:
        print('这本书暂时没有收录在系统里呢')

def return_book(self):
    name = input('请输入归还书籍的名称:')
    res = self.check_book(name)
    # 调用check_book方法,将返回值赋值给变量res
    if res == None:
    # 如果返回的是空值,即这本书的书名不在系统里
        print('没有这本书噢,你恐怕输错了书名~')
    else:
    # 如果返回的是实例对象
        if res.state == 0:
         # 如果实例属性state等于0,即这本书的借阅状态为'未借出'
            print('这本书没有被借走,在等待有缘人的垂青呢!')
        else:
         # 如果实例属性state等于1,即状态为'已借出'
            print('归还成功!')
            res.state = 0
            # 归还后书籍借阅状态为0,重置为'未借出'

manager = BookManager()
manager.menu()

Guess you like

Origin blog.51cto.com/323248/2429094