Python 实战案例:简单的图书管理系统

1  引言

本文使用 Python 编写一个简单的图书管理系统,通过我们学习过的 if 语句、for 循环、while 循环、列表和字典等功能,帮助读者了解如何使用 Python 创建一个实用的管理程序。

在现代生活中,图书管理对于图书馆、书店或个人藏书者来说都是一项重要任务。为了帮助你更有效地管理图书,我们将使用 Python 编写一个简单的图书管理系统。这个程序将允许你添加、查看、删除和搜索图书,让你的图书管理变得更加方便和高效。

2  功能介绍

  1. 添加图书:你可以输入图书的详细信息,并将其添加到系统中。

  2. 查看图书:你可以查看当前的图书列表,了解所有图书的情况。

  3. 删除图书:如果某本图书不再需要,你可以选择将其从系统中删除。

  4. 搜索图书:你可以根据书名或作者搜索图书,方便快速查找。

  5. 退出程序:当你完成所有任务或想退出程序时,你可以选择退出。

3  使用方法

  1. 运行程序后,你将看到一个菜单选项列表。

  2. 输入对应选项的编号来执行相应的操作。

  3. 根据提示,输入图书的详细信息或选择待删除的图书编号,然后按回车键确认。

  4. 根据菜单提示进行下一步操作,直到你完成所有任务或选择退出程序。

现在,让我们一起来编写这个简单的图书管理系统。

首先,我们需要定义一个空的图书列表,我们可以使用 Python 的列表数据结构来实现:

  • books = []

接下来,我们定义一个函数来添加图书。用户可以输入图书的详细信息,并将其添加到列表中:

  • def add_book():
  •        title = input('请输入书名:')
  •        author = input('请输入作者:')
  •        year = input('请输入出版年份:')
  •        book = {'title': title, 'author': author, 'year': year}
  •        books.append(book)
  •        print('图书已添加!')
在这个函数中,我们使用 input() 函数来接收用户输入的书名、作者和出版年份,并将这些信息存储在一个字典中,然后使用 append() 方法将其添加到 books 列表中。然后,我们打印一条确认消息,告诉用户图书已成功添加。

接下来,我们定义一个函数来查看图书列表。这将使用户能够了解当前所有图书的情况:

  • def view_books():
  •        print('图书列表:')
  •        if len(books) == 0:
  •             print('没有图书。')
  •        else:
  •             for i, book in enumerate(books):
  •                   print(f'{i+1}. 书名:{book['title']}, 作者:{book['author']}, 出版年份:{book['year']}')

在这个函数中,我们首先打印图书列表的标题。然后,我们检查 books 列表的长度是否为 0,如果为 0,则打印一条提示消息说明没有图书。否则,我们使用 enumerate() 函数遍历 books 列表,并打印每本图书的编号和详细信息。

我们还需要定义一个函数来删除图书。当某本图书不再需要时,用户可以选择将其从列表中删除:

  • def delete_book():
  •        view_books()
  •        if len(books) == 0:
  •             return
  •  
  •        choice = int(input('请输入要删除的图书的编号:'))
  •        if choice < 1 or choice > len(books):
  •             print('无效的选择!')
  •        else:
  •              deleted_book = books.pop(choice - 1)
  •              print(f'已删除图书:{deleted_book['title']}')

在这个函数中,我们首先调用 view_books() 函数来显示当前的图书列表。然后,我们要求用户输入要删除的图书的编号。如果用户输入了无效的编号,我们打印一条错误消息。否则,我们使用 pop() 方法从 books 列表中删除相应的图书,并打印一条确认消息。

最后,我们定义一个函数来搜索图书。用户可以根据书名或作者搜索图书:

  • def search_books():
  •        search_term = input('请输入书名或作者进行搜索:')
  •        found_books = [book for book in books if search_term.lower() in(book['title'].lower() or book['author'].lower())]
  •        if not found_books:
  •              print('未找到匹配的图书。')
  •        else:
  •              print('搜索结果:')
  •              for i, book in enumerate(found_books):
  •                   print(f'{i+1}. 书名:{book['title']}, 作者:{book['author']}, 出版年份:{book['year']}')

在这个函数中,我们首先要求用户输入搜索词。然后,我们使用列表推导式来过滤 books 列表,找出书名或作者中包含搜索词的图书。搜索时,我们将书名和作者转换为小写,以便进行不区分大小写的比较。如果没有找到匹配的图书,我们打印一条提示消息。否则,我们打印搜索结果。

现在,我们需要一个主函数来显示菜单,并根据用户的选择调用相应的函数:

  • def main():
  •        while True:
  •               print('\n图书管理系统')
  •               print('1. 添加图书')
  •               print('2. 查看图书')
  •               print('3. 删除图书')
  •               print('4. 搜索图书')
  •               print('5. 退出程序')
  •               choice = input('请选择操作(1-5):')
  •  
  •               if choice == '1':
  •                     add_book()
  •               elif choice == '2':
  •                     view_books()
  •               elif choice == '3':
  •                      delete_book()
  •               elif choice == '4':
  •                      search_books()
  •               elif choice == '5':
  •                      print('退出程序。再见!')
  •                      break
  •               else:
  •                     print('无效的选择!请重新输入。')

在这个主函数中,我们使用 while True 循环来不断显示菜单,并要求用户选择操作。根据用户的选择,我们调用相应的函数。如果用户选择退出程序,我们打印一条告别消息,并使用 break 语句退出循环。

最后,我们调用 main() 函数来启动程序:

  • if __name__ == '__main__':
  •      main()

4  总结

通过这个简单的图书管理系统,我们学习了如何使用 Python 进行基本的输入输出操作,如何使用列表和字典存储和管理数据,以及如何编写一个循环和条件判断来实现菜单驱动的用户界面。这些技能是编写更复杂的程序的基础,希望你能通过这个案例掌握这些基本的编程技巧。

你可以根据需要扩展这个程序,例如添加图书的分类、导入导出图书数据等功能,使其更加实用和强大。祝你编程愉快!

往期回顾

Python 小白的晋级之路 - 第一部分:Python 的重要性和简洁的语法

Python 小白的晋级之路 - 第二部分:探索 Python 变量

Python实战之冒泡排序

Python 小白的晋级之路 - 第三部分:玩转 Python 字符串

Python 小白的晋级之路 - 第四部分:掌握 Python 列表

Python 小白的晋级之路 - 第五部分:驾驭 Python 元组

Python 小白的晋级之路 - 第六部分:Python 的 if 语句

Python 实战:猜数字与智能计算

Python 小白的晋级之路 - 第七部分:掌握字典的魔法

Python 小白的晋级之路 - 第八部分:探秘 while 循环的精髓

Python 小白的晋级之路 - 第九部分:征服 for 循环的领域

Python 实战:年会抽奖程序,别作弊哈

Python 小白的晋级之路 - 第十部分:探索常用函数的奇妙世界

Python 实战案例:没人能活着离开的游戏

Python 小白的晋级之路 - 第十一部分:探索正则表达式的魔力

Python 实战:天气查询

Python 小白的晋级之路 - 第十二部分:了解常用第三方函数

Python爬取西门子论坛标题,看看大家最近都在讨论什么问题

Python 小白的晋级之路 - 第十三部分:创建函数

Python 实战:字符统计程序

Python 小白的晋级之路 - 第十四部分:输入、输出和格式

Python 实战案例:待办事项列表管理程序

Python 小白的晋级之路 - 第十五部分:读写文件

Python 实战:图片处理

Python 实战:自动生成密码并保存

Python 小白的晋级之路 - 第十六部分:异常处理

图片

2024年06月

Tags: