Python 实战案例:简单的图书管理系统
1 引言
本文使用 Python 编写一个简单的图书管理系统,通过我们学习过的 if 语句、for 循环、while 循环、列表和字典等功能,帮助读者了解如何使用 Python 创建一个实用的管理程序。
在现代生活中,图书管理对于图书馆、书店或个人藏书者来说都是一项重要任务。为了帮助你更有效地管理图书,我们将使用 Python 编写一个简单的图书管理系统。这个程序将允许你添加、查看、删除和搜索图书,让你的图书管理变得更加方便和高效。
2 功能介绍
添加图书:你可以输入图书的详细信息,并将其添加到系统中。
查看图书:你可以查看当前的图书列表,了解所有图书的情况。
删除图书:如果某本图书不再需要,你可以选择将其从系统中删除。
搜索图书:你可以根据书名或作者搜索图书,方便快速查找。
退出程序:当你完成所有任务或想退出程序时,你可以选择退出。
3 使用方法
运行程序后,你将看到一个菜单选项列表。
输入对应选项的编号来执行相应的操作。
根据提示,输入图书的详细信息或选择待删除的图书编号,然后按回车键确认。
根据菜单提示进行下一步操作,直到你完成所有任务或选择退出程序。
现在,让我们一起来编写这个简单的图书管理系统。
首先,我们需要定义一个空的图书列表,我们可以使用 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 的 if 语句
Python 小白的晋级之路 - 第八部分:探秘 while 循环的精髓
Python 小白的晋级之路 - 第九部分:征服 for 循环的领域
Python 小白的晋级之路 - 第十部分:探索常用函数的奇妙世界
Python 小白的晋级之路 - 第十一部分:探索正则表达式的魔力
Python 小白的晋级之路 - 第十二部分:了解常用第三方函数
Python爬取西门子论坛标题,看看大家最近都在讨论什么问题
Python 小白的晋级之路 - 第十四部分:输入、输出和格式
2024年06月