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 图书馆管理系统提供了一种简单易用的方法来管理书籍和作者信息。你可以根据需要添加更多功能,例如会员管理、图书分类等等。

Python 图书馆管理系统:书籍和作者信息管理

原文地址: https://www.cveoy.top/t/topic/ntJv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录