第15课 python 项目实操3

到了今日,你已经基本懂得 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()

原文地址:https://blog.51cto.com/323248/2429094

时间: 2024-11-06 03:29:16

第15课 python 项目实操3的相关文章

【经验分享】响应式网站项目实操过程中的那些事儿

本次网站改版升级是我来到新公司的第一个项目,需求之初并没有提及要做响应式,在首次评审时领导和研发均认为响应式处理与我们网站相对契合,就这样我开始了我职场生涯中第一个响应式网站设计.下面就跟大家分享响应式网站设计中的那些事儿. 因为本人之前并没有接触过响应式设计,在项目开始前便恶补了一些响应式的基础知识.理论性资料网上众多,为了使各位对响应式有初步印象和认知,我在这里只做简单描述,各位若想要更全面深入的了解可自行百度. 1什么叫响应式设计,为什么要做响应式设计 (1)页面的设计和开发应当根据用户行

VMware 15 搭建win 10 实操步骤+共享文件+激活操作

写于:2018.12.22 一.简介: VMware 15 里搭建win 10是件很坑的事.我尝试了3种方法,最后才搭建成功.为了不让网友们不在走我走过的坑,特写了本文.   坑一:用老毛桃.大白菜搭建win10,我失败了.在VMware tools卡在这里了,无法进行下去.另外,在创建新的虚拟机时要选Windows 10,不是Windows 10 64X,不然会蓝屏显示,还要回到bios界面去处理.我的BIOS都打不开,所以完成失败. 坑二:用第三方iOS光驱搭建,失败.一是因为系统本身的不纯

ajax的项目实操(只用于记录部分文件未引入)

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-s

分享3个JAVA实操项目视频

[JAVA] 实战高可用的JAVA微服务架构-Spring Cloud系列 小马哥JAVA微服务架构实践视频教程 百度网盘: https://pan.baidu.com/s/11dncR9yiOkyFL9avaf21rg 密码b8s5 [JAVA] 全力打造JAVA高性能项目 Netty+SpringBoot+Nginx+FastDFS技术聚合 JAVA高性能后台项目 百度网盘: https://pan.baidu.com/s/1XdC0wjEHRVWe8owYtmlzPg 密码7rqj [JA

城市更新「意愿征集」具体怎么做?——本人以实操多个项目的具体经验给大家做分享

佳兆业集团控股执行董事.总裁麦凡表示:城市更新第一件事是意愿征集:由此可见,意愿征集在计划申报阶段的重要性. 实操案例的分享重在细节,而不是泛泛而谈,城市更新的大政策是人人几乎都看得到,并学的会的,而如何推动项目往前.如何将抽象的文字转化为创新性的具体行动.如何将严谨的工作在面对诸多利益纷争时一气呵成?这就需要实战经验了(本文不对具体政策内容作宣讲,本文末尾处有原文附件下载. (一).政策依据意愿征集政策依据主要为<深圳市拆除重建类城市更新单元计划管理规定>(2019年版).<深圳市城市

Python实操二

实操一: 1.用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sb name=['alex','wupeiqi','yuanhao'] name=['alex','wupeiqi','yuanhao'] m = map(lambda name:name+"_SB",name) print(list(m)) ------------输出结果------------------ ['alex_SB', 'wupeiqi_SB', 'yuanhao_SB'] 2.用map

Docker 学习笔记【3】 Docker 仓库、数据卷、数据卷容器,网络基础实操。高级网络配置学习

Docker 学习笔记[4] 高级网络配置实操,实战案例实验 =========================================================================== Docker 学习笔记[2] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,记录开始 =========================================================================== 被格式化的脚本内容: #开头代表

python项目练习地址

作者:Wayne Shi链接:http://www.zhihu.com/question/29372574/answer/88744491来源:知乎著作权归作者所有,转载请联系作者获得授权. 目前是34个Python项目,会继续保持更新.Learn by doing才是正确的技术学习姿势.20160816更新:Python - 高德API+Python解决租房问题Python - 基于 Flask 及爬虫实现微信娱乐机器人Python - Python3 实现淘女郎照片爬虫Python - Py

实操 Web Cache (第二版)

实操 Web Cache http://netkiller.github.io/journal/cache.html Mr. Neo Chen (陈景峰), netkiller, BG7NYT 中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 +86 755 29812080 <[email protected]> $Id 版权声明 转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明. 文档出处: http://netkiller.githu