Python 图书馆管理系统:书籍和作者信息管理
Python 图书馆管理系统:书籍和作者信息管理
该系统使用 Python 语言实现,包含以下功能:
- 添加书籍信息
- 添加作者信息
- 查找书籍
- 搜索作者
- 借书
- 还书
类定义
类_作者信息类
表示一个作者的信息,包括姓名、国籍、出生年月、著作等。
class 类_作者信息:
def __init__(self, 姓名, 国籍, 出生日期):
self.姓名 = 姓名
self.国籍 = 国籍
self.出生日期 = 出生日期
self.书集列表 = []
def __str__(self): # 返回该类实例对象的字符串表示形式
return f'{self.姓名}_{self.国籍}' #(作家A 英国)
#return f"({self.姓名} {self.书集列表})"#(作家A [<__main__.类_书属性 object at 0x0000018923A06088>, <__main__.类_书属性 object at 0x00000189239E5E08>])
def 添加书(self, book):
self.书集列表.append(book)
def 展示书集(self):
for book in self.书集列表:
print(f"《{book.书名}》")
类_书属性类
表示一本书的信息,包括书名、类_作者信息、出版日期、ISBN号等。
class 类_书属性:
def __init__(self, 书名, 作家, 出版日期, 国际标准图书编号):
self.书名 = 书名
self.作家 = 作家
self.出版日期 = 出版日期
self.国际标准图书编号 = 国际标准图书编号
self.是否借出 = False
#方便变量栏查看
def __str__(self): # 返回该类实例对象的字符串表示形式
return f'{self.书名} ({self.是否借出})'
def 借书(self):
if not self.是否借出:
self.是否借出 = True
print(f"借来:<<{self.书名}>>")
else:
print(f"<<{self.书名}>> 已经借出.")
def 还书(self):
if self.是否借出:
self.是否借出 = False
print(f"<<{self.书名}>> 还回来了.")
else:
print(f"<<{self.书名}>> 没有借这本书")
类_图书馆管理类
用来管理整个图书馆的信息,包括图书馆开放时间、管理员等。
class 类_图书馆管理:
def __init__(self, 姓名, 地址, 开放时间, 图书馆员):
self.姓名 = 姓名
self.地址 = 地址
self.开放时间 = 开放时间
self.图书馆员 = 图书馆员
self.书集列表 = []
self.作者群 = []
#方便变量栏查看,放简单变量,不放列表
def __str__(self): # 返回该类实例对象的字符串表示形式
return f'{self.姓名} ({self.地址})'
def 添加书(self, book):
self.书集列表.append(book)
def 添加作者(self, 作家):
self.作者群.append(作家)
def 查找书籍(self, 书名):
for book in self.书集列表:#拆出列表单元素
if book.书名 == 书名:#book.书名=书集列表里的单元素,这本书的“书名”属性。 书名=def 查找书籍(self, 书名),属于外部带入参数
print(f"《{book.书名}》 写作者: {book.作家}")
return book#并未见他输出
#在这个Python代码中,第54行是调用了“search_author”方法来查询作者信息。具体而言,代码使用“J.K. Rowling”作为参数调用了“search_author”方法,该方法会遍历图书馆中所有已经添加的作者信息,如果找到了名字为“J.K. Rowling”的作者,就会输出作者的国籍、出生日期,以及其所写的所有书籍信息;否则,就会输出“Sorry, we don't have any information about [name].”的信息。最后,变量“author”会被赋值为返回的作者对象。
#第54行代码是用来搜索图书馆中是否有指定标题的书籍,如果找到了该书籍,则输出该书籍的作者信息,并返回该书籍对象,如果没有找到该书籍,则输出提示信息并返回None。
print(f"对不起,我们没有 《{书名}》.")
return None
def 搜索作者(self, 姓名):
for 作家 in self.作者群:
if 作家.姓名 == 姓名:
print(f"{作家.姓名}, {作家.国籍}, 出生时间: {作家.出生日期}")
print("作品:")
作家.展示书集()
return 作家
print(f"对不起,我们没有任何关于 {姓名}. ")
return None
使用示例
print("初始化图书馆:")
图书馆管理 = 类_图书馆管理("中央图书馆", "纽约", "9am-9pm", "管理员_A")
print("添加类_作者信息信息:")
作者1信息 = 类_作者信息("作家A", "英国", "1965-07-31")#作家A_英国
作者2信息 = 类_作者信息("作家B", "美国", "1890-09-15")
print("书1对象,添加变量值,包括对象:作家。表示这本是作家A写的。:")#书带入作者属性
书1 = 类_书属性("哈利波特与魔法石", 作者1信息, "1997", "国际标准图书编号1")#哈利波特与魔法石 (False)
书2 = 类_书属性("哈利波特与密室", 作者1信息, "1998", "国际标准图书编号2")
书3 = 类_书属性("东方快车谋杀案", 作者2信息, "1934", "国际标准图书编号3")
书4 = 类_书属性("无人生还", 作者2信息, "1939", "国际标准图书编号4")
print("作者1信息对象,用添加书方法添加:类_书属性。表示作者写过这本书。:")#作者带入书属性
作者1信息.添加书(书1)
作者1信息.添加书(书2)
作者2信息.添加书(书3)
作者2信息.添加书(书4)
print("图书馆管理对象,用添加作者方法添加:类_作者1信息属性。表示图书馆有这个作者的书。:")
图书馆管理.添加作者(作者1信息)
图书馆管理.添加作者(作者2信息)
print("添加图书信息:")
图书馆管理.添加书(书1)
图书馆管理.添加书(书2)
图书馆管理.添加书(书3)
图书馆管理.添加书(书4)
print("查询图书和类_作者信息信息:")
书 = 图书馆管理.查找书籍("哈利波特与魔法石")
# 上面python代码中的第66行,并未见“return 作家”输出,请您用通俗易懂的语言讲解一下。谢谢
代码解释
在 查找书籍 方法中,如果找到了指定的书籍,return book 会返回该书籍对象,以便后续操作使用。例如,我们可以使用这个返回的书籍对象调用 借书 或者 还书 方法。如果没有找到书籍,则返回 None,表示没有找到该书籍对象。
示例:
书 = 图书馆管理.查找书籍("哈利波特与魔法石")
# 如果找到了书籍,可以进行借阅操作
# 书.借书()
总结
这个 Python 图书馆管理系统提供了一种简单易用的方法来管理书籍和作者信息。你可以根据需要添加更多功能,例如会员管理、图书分类等等。
原文地址: https://www.cveoy.top/t/topic/ntJv 著作权归作者所有。请勿转载和采集!