用Python做一个简单的图书管理系统

 更新时间:2023年04月23日 08:45:53   作者:疯狂创作者  
这篇文章主要介绍了用Python做一个简单的图书管理系统,有“还书““借阅”“添加书籍”等功能,文中提供了部分实现代码和解决思路,有一定的参考价值,需要的朋友快来一起看看吧

制定步骤

1、进入提示语:

为了制作一个友好的“图书管理系统”,先列出所有功能的菜单。如下:

print("""
***************************
* 欢迎进入图书管理系统    *
* 0 .退出                 *
* 1 .列出所有书籍         *
* 2 .添加书籍             *
* 3 .修改书籍             *
* 4 .删除书籍             *
* 5 .借书                 *
* 6 .还书                 *
***************************
""")

2、获取用户输入:

第二步,用户会输入 0~6 的整数,以对应相对的功能。如果用户输入错误,输出“输入错误,请重新输入”。

while True:
    n=input("输入序号(0-6):")
    if n=="0":
        pass
    elif n=="1":
        pass
    elif n=="2":
        pass
    elif n=="3":
        pass
    elif n=="4":
        pass
    elif n=="5":
        pass
    elif n=="6":
        pass
    else:
        print("输入错误,请重新输入")
        print("")   #表示换一行

扩展:

很多语言都提供了“空语句”支持。Python 也不例外,Python 的 pass 语句就是空语句。

有时候程序需要占一个位、放一条语句,但又不希望这条语句做任何事情,此时就可通过 pass 语句来实现。通过使用 pass 语句,可以让程序更完整。

如下程序示范了 pass 作为空语句的用法:

s=int(input("请输入一个整数: "))
if s>5:
    print("大于5")
elif s<5:
    pass   # 相当于占位符
else:
    print("等于5")

正如从上面程序所看到的,对于 s 小于 5 的情形,程序暂时不处理(或不知道如何处理),此时程序就需要通过空语句来占一个位,这样即可使用 pass 语句了。

3、完善各指令程序

如:用户输入“0”,即不但需要告诉用户“已退出程序”,还要完成“退出”功能,代码如下:

if n=="0":
    print("退出成功")
    break

再比如:用户输入“5”( 借书 ),如果库存仍有,提示“借书成功”,并减少此书库存。否则提示“库存不足”。如下程序:

elif n=="5":
    xh=intinput()
    book=books[xh-1]
    if book["num"]>0:
        book["num"]-=1
        print("借书成功")
    else:
        print("库存不足")

请参照以上代码,完善其他功能。

4、优化程序,使代码更简洁

可以定义函数,并循环使用函数,有助于代码的简洁性。如代码:

def intinput(n="请输入序号:"):
    while True:
        s=input(n)
        if s.isnumeric():
            return int(s)
        else:
            print("请输入整数")

扩展:

str.isnumeric() 方法:

检测字符串是否只由数字组成。这种方法是只针对 unicode 对象。

函数参数含义与注意事项:

各部分参数的含义如下:

  • 函数名:其实就是一个符合 Python 语法的标识符,但不建议读者使用 a、b、c 这类简单的标识符作为函数名,函数名最好能够体现出该函数的功能(如上面的 my_len,即表示我们自定义的 len() 函数)。
  • 形参列表:设置该函数可以接收多少个参数,多个参数之间用逗号( , )分隔。
  • [return [返回值] ]:整体作为函数的可选参参数,用于设置该函数的返回值。也就是说,一个函数,可以用返回值,也可以没有返回值,是否需要根据实际情况而定。

注:在创建函数时,即使函数不需要参数,也必须保留一对空的“()”,否则 Python 解释器将提示“invaild syntax”错误。另外,如果想定义一个没有任何功能的空函数,可以使用 pass 语句作为占位符。

函数的优点:

  • 在python之中使用函数最大和最直观的优点就是可以将一段代码封装起来以便随时调用,这样能够极大的提高了程序的简洁性和可读性,还可以让代码的逻辑性更加清晰。
  • 一般来说使用函数去封装的代码块都是去实现某一种功能的,而被封装成函数的代码就能够不断地去重复的调用。这样既可以提高python程序的开发效率,还可以减少一些不必要代码的编写。
  • 函数还有优点就是它其实是一个独立于其他外部代码的模块,在一个python程序去执行时如果不手动的去调用函数的话那么这个函数是不会去执行的。而当函数之中出现了错误的时候也很容易的就能够去进行修改而不会对程序的运行造成太大的影响,很好的实现了模块化。
  • python函数还可以直接保存在一个py文件之中然后以模块的方式去导入,这样一个通用的编写好的python函数就能够运用在很多不同的程序之中,经常使用的内置模块和python第三方库内其实存储的就是一个个函数。

图书管理系统所有代码:

def intinput(n="请输入序号:"):
    while True:
        s=input(n)
        if s.isnumeric():
            return int(s)
        else:
            print("请输入整数")
 
books=[{"name":"Scratch","isbn":"12345","num":2},
       {"name":"Python","isbn":"12346","num":5}]
print("""
***************************
* 欢迎进入图书管理系统    *
* 0 .退出                 *
* 1 .列出所有书籍         *
* 2 .添加书籍             *
* 3 .修改书籍             *
* 4 .删除书籍             *
* 5 .借书                 *
* 6 .还书                 *
***************************
""")
 
while True:
    n=input("输入序号(0-6):")
    if n=="0":
        print("退出成功")
        break
    elif n=="1":
        print("序号\t书名\t书号\t数量")
        index=1
        for book in books:
            print("%d\t%s\t%s\t%d"%(index,book["name"],book["isbn"],book["num"]))
            index+=1
    elif n=="2":
        book=dict()
        book["name"]=input("请输入书名:")
        book["isbn"]=input("请输入书号:")
        book["num"]=intinput("请输入数量:")      
        books.append(book)
        print("添加成功")
    elif n=="3":
        try:
            xh=intinput()
            book=books[xh-1]
            book["name"]=input("请输入书名:")
            book["isbn"]=input("请输入书号:")
            book["num"]=intinput("请输入数量:")
            print("修改成功")
        except:
            print("出错了")
    elif n=="4":
        s=intinput()
        if 1<=s<=len(books):
            del books[xh-1]
            print("删除成功")
        else:
            print("超出范围")
    elif n=="5":
        xh=intinput()
        book=books[xh-1]
        if book["num"]>0:
            book["num"]-=1
            print("借书成功")
        else:
            print("库存不足")
    elif n=="6":
        xh=intinput()
        try:
            book=books[xh-1]
            book["num"]-=1
            print("还书成功")
        except:
            print("未查询到书本")
    else:
        print("输入错误,请重新输入")
        print("")

到此这篇关于用Python做一个简单的图书管理系统的文章就介绍到这了,更多相关Python图书管理系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python读取npy文件数据实例

    python读取npy文件数据实例

    npy文件用于存储重建ndarray所需的数据、图形、dtype 和其他信息,下面这篇文章主要给大家介绍了关于python读取npy文件数据的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • python手机号前7位归属地爬虫代码实例

    python手机号前7位归属地爬虫代码实例

    这篇文章主要介绍了python手机号前7位归属地爬虫代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • python+playwright 元素操作示例代码

    python+playwright 元素操作示例代码

    Playwright 可以与 HTML 输入元素交互,例如文本输入、复选框、单选按钮、选择选项、鼠标单击、键入字符、键和快捷方式以及上传文件和焦点元素,这篇文章主要介绍了python+playwright 元素操作,需要的朋友可以参考下
    2023-10-10
  • 超级详细实用的pycharm常用快捷键

    超级详细实用的pycharm常用快捷键

    本文详细总结了Pycharm的常用快捷键,下文介绍使用方法和场景, 并不需要记忆这些快捷键, 你只需要知道有这些快捷键, 再需要用的时候查看一下, 用的多了自然也就记住了,需要的朋友可以参考下
    2021-05-05
  • Python提取PDF中的图片的实现示例

    Python提取PDF中的图片的实现示例

    本文主要介绍了Python提取PDF中的图片的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • python可视化text()函数使用详解

    python可视化text()函数使用详解

    这篇文章主要介绍了python可视化text()函数使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 使用python-docx在word文档中查找书签,并在书签处写入数据方式

    使用python-docx在word文档中查找书签,并在书签处写入数据方式

    使用python-docx库,可在Word文档中查找书签并写入数据。首先打开文档,通过bookmarks属性获取书签对象,然后使用书签名定位书签位置,最后将数据写入书签处。这种方法适合自动化填充Word模板等场景
    2024-09-09
  • 使用keras和tensorflow保存为可部署的pb格式

    使用keras和tensorflow保存为可部署的pb格式

    这篇文章主要介绍了使用keras和tensorflow保存为可部署的pb格式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • pygame实现雷电游戏雏形开发

    pygame实现雷电游戏雏形开发

    这篇文章主要为大家详细介绍了pygame实现雷电游戏开发代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • PyTorch中torch.manual_seed()的用法实例详解

    PyTorch中torch.manual_seed()的用法实例详解

    在Pytorch中可以通过相关随机数来生成张量,并且可以指定生成随机数的分布函数等,下面这篇文章主要给大家介绍了关于PyTorch中torch.manual_seed()用法的相关资料,需要的朋友可以参考下
    2022-06-06

最新评论