第15课 python 项目实操3
admin
2023-07-05 22:24:32
0

到了今日,你已经基本懂得 python 是什么了,装逼要专业的,就class ,def 定义类,定义函数去封装 一下要做的内容;,然后需要调用的时候,进行调用,这时候 代码又条例,看起来方便易懂,也是在日后编码的时候需要注意的,要习惯用类,函数。这样你才更加又逻辑。

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

 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()

相关内容

热门资讯

我国科学家为细胞信号“导航”开... 新华社济南5月31日电(记者张力元)人体细胞犹如一座精密的通信城市,每天都有大量“指令”穿梭传递,调...
极端大风突袭哈尔滨!过山车停摆... 极目新闻记者 詹钘5月31日,受强对流天气影响,哈尔滨国际会展中心体育场相关设施受到损坏,原计划当晚...
三原电缆取得电缆接头连接用防护... 国家知识产权局信息显示,上海三原电缆附件有限公司取得一项名为“一种电缆接头连接用防护结构”的专利,授...
原创 识... 还是那句话,机圈苦大屏久已…… 虽然大屏有大屏的美,但是小屏也有小屏的俏。在大屏旗舰占据主流的手机市...
玄戒技术取得分频电路专利,实现... 国家知识产权局信息显示,北京玄戒技术有限公司取得一项名为“分频电路、分频器、射频芯片和电子设备”的专...
为什么今年香会基调明显变了 5月29日—31日在新加坡举行的第23届香格里拉对话会(简称“香会”),见证着元首引领下大国关系继续...
成本几毛钱、假驱蚊液香精兑水,... 入夏升温,蚊虫进入活跃期,驱蚊防护成为民生刚需,《财经调查》持续接到消费者投诉,他们买到的多款网红驱...
越来越多80后90后,正在丧失... 六一儿童节到来之际,朋友圈里开始出现一种熟悉的热闹。有人晒出零食礼包,有人半开玩笑地向伴侣讨礼物,还...
洋保电子取得用于低温环境的电气... 国家知识产权局信息显示,洋保电子(太仓)有限公司取得一项名为“一种用于低温环境的电气柜”的专利,授权...
中日韩飞手争霸宁波!2026无... 潮新闻客户端 记者 陈冲 通讯员 朱凝 5月31日,2026小遛·无人机竞速世界杯(中国·宁波鄞州站...