

{"id":145757,"date":"2025-07-07T17:27:15","date_gmt":"2025-07-07T11:57:15","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=145757"},"modified":"2025-07-07T17:27:15","modified_gmt":"2025-07-07T11:57:15","slug":"library-book-management-system-using-dsa-python","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/","title":{"rendered":"DSA Python Project &#8211; Library Book Management System"},"content":{"rendered":"<h3>Program 1<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Library Book Management System\r\nclass Book:\r\n    def __init__(self, id, title, author):\r\n        self.id = id\r\n        self.title = title\r\n        self.author = author\r\n        self.prev = None\r\n        self.next = None\r\n\r\nclass Library:\r\n    def __init__(self):\r\n        self.head = None\r\n\r\n    def add_book(self, id, title, author):\r\n        if self.book_exists(id):\r\n            print(f\"Book with ID {id} already exists.\")\r\n            return\r\n\r\n        new_book = Book(id, title, author)\r\n        if self.head is None:\r\n            self.head = new_book\r\n        else:\r\n            temp = self.head\r\n            while temp.next:\r\n                temp = temp.next\r\n            temp.next = new_book\r\n            new_book.prev = temp\r\n        print(\"Book added successfully.\")\r\n\r\n    def book_exists(self, id):\r\n        temp = self.head\r\n        while temp:\r\n            if temp.id == id:\r\n                return True\r\n            temp = temp.next\r\n        return False\r\n\r\n    def display_books(self):\r\n        if not self.head:\r\n            print(\"Library is empty.\")\r\n            return\r\n        print(\"\\nBooks in Library:\")\r\n        temp = self.head\r\n        while temp:\r\n            print(f\"ID: {temp.id}, Title: {temp.title}, Author: {temp.author}\")\r\n            temp = temp.next\r\n\r\n    def search_by_id(self, id):\r\n        temp = self.head\r\n        while temp:\r\n            if temp.id == id:\r\n                print(f\"Book found: ID = {temp.id}, Title = {temp.title}, Author = {temp.author}\")\r\n                return\r\n            temp = temp.next\r\n        print(f\"Book not found with ID {id}\")\r\n\r\n    def search_by_title(self, title):\r\n        temp = self.head\r\n        while temp:\r\n            if temp.title.lower() == title.lower():\r\n                print(f\"Book found: ID = {temp.id}, Author = {temp.author}\")\r\n                return\r\n            temp = temp.next\r\n        print(f\"Book not found with title '{title}'\")\r\n\r\n    def search_by_author(self, author):\r\n        temp = self.head\r\n        found = False\r\n        while temp:\r\n            if temp.author.lower() == author.lower():\r\n                print(f\"Book found: ID = {temp.id}, Title = {temp.title}, Author = {temp.author}\")\r\n                found = True\r\n            temp = temp.next\r\n        if not found:\r\n            print(f\"No books found by author '{author}'\")\r\n\r\n    def delete_book(self, id):\r\n        temp = self.head\r\n        while temp and temp.id != id:\r\n            temp = temp.next\r\n\r\n        if not temp:\r\n            print(\"Book not found.\")\r\n            return\r\n\r\n        print(f\"Book found: ID = {temp.id}, Title = {temp.title}, Author = {temp.author}\")\r\n        choice = input(\"Are you sure you want to delete this book? (yes\/no): \").strip().lower()\r\n        if choice == 'yes':\r\n            if temp.prev:\r\n                temp.prev.next = temp.next\r\n            else:\r\n                self.head = temp.next\r\n\r\n            if temp.next:\r\n                temp.next.prev = temp.prev\r\n\r\n            print(\"Book deleted successfully.\")\r\n\r\n    def update_book(self, id):\r\n        temp = self.head\r\n        while temp:\r\n            if temp.id == id:\r\n                temp.title = input(\"Enter new title: \").strip()\r\n                temp.author = input(\"Enter new author: \").strip()\r\n                print(\"Book updated successfully.\")\r\n                return\r\n            temp = temp.next\r\n        print(\"Book not found.\")\r\n\r\n\r\ndef main():\r\n    library = Library()\r\n\r\n    while True:\r\n        print(\"\\n------------- Library Menu -----------\")\r\n        print(\"1. Add Book\")\r\n        print(\"2. Display Books\")\r\n        print(\"3. Search Book by Title\")\r\n        print(\"4. Delete Book by ID\")\r\n        print(\"5. Update Book by ID\")\r\n        print(\"6. Search Book by ID\")\r\n        print(\"7. Search Book by Author\")\r\n        print(\"8. Exit\")\r\n        print(\"--------------------------------------\")\r\n\r\n        try:\r\n            choice = int(input(\"Enter your choice: \"))\r\n        except ValueError:\r\n            print(\"Invalid input. Please enter a number.\")\r\n            continue\r\n\r\n        if choice == 1:\r\n            try:\r\n                id = int(input(\"Enter Book ID: \"))\r\n                title = input(\"Enter Title: \").strip()\r\n                author = input(\"Enter Author: \").strip()\r\n                library.add_book(id, title, author)\r\n            except ValueError:\r\n                print(\"Invalid ID. Must be a number.\")\r\n        elif choice == 2:\r\n            library.display_books()\r\n        elif choice == 3:\r\n            title = input(\"Enter title to search: \").strip()\r\n            library.search_by_title(title)\r\n        elif choice == 4:\r\n            try:\r\n                id = int(input(\"Enter Book ID to delete: \"))\r\n                library.delete_book(id)\r\n            except ValueError:\r\n                print(\"Invalid ID.\")\r\n        elif choice == 5:\r\n            try:\r\n                id = int(input(\"Enter Book ID to update: \"))\r\n                library.update_book(id)\r\n            except ValueError:\r\n                print(\"Invalid ID.\")\r\n        elif choice == 6:\r\n            try:\r\n                id = int(input(\"Enter Book ID to search: \"))\r\n                library.search_by_id(id)\r\n            except ValueError:\r\n                print(\"Invalid ID.\")\r\n        elif choice == 7:\r\n            author = input(\"Enter author name to search: \").strip()\r\n            library.search_by_author(author)\r\n        elif choice == 8:\r\n            print(\"Exiting program.\")\r\n            break\r\n        else:\r\n            print(\"Invalid choice! Please choose a valid option.\")\r\n\r\nif __name__ == \"__main__\":\r\n    main()<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Program 1 # Library Book Management System class Book: def __init__(self, id, title, author): self.id = id self.title = title self.author = author self.prev = None self.next = None class Library: def __init__(self): self.head&#46;&#46;&#46;<\/p>\n","protected":false},"author":581,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32847],"tags":[32853,32922,32923,34827,32848,34792,34826,34794,34828,34825],"class_list":["post-145757","post","type-post","status-publish","format-standard","hentry","category-dsa-python-tutorials","tag-dsa-python","tag-dsa-python-practical","tag-dsa-python-program","tag-dsa-python-project-library-book-management-system","tag-dsa-using-python","tag-library-book-management-system","tag-library-book-management-system-in-dsa-python","tag-library-book-management-system-project","tag-library-book-management-system-project-in-dsa-python","tag-library-book-management-system-using-dsa-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>DSA Python Project - Library Book Management System - DataFlair<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DSA Python Project - Library Book Management System - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Program 1 # Library Book Management System class Book: def __init__(self, id, title, author): self.id = id self.title = title self.author = author self.prev = None self.next = None class Library: def __init__(self): self.head&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-07T11:57:15+00:00\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DSA Python Project - Library Book Management System - DataFlair","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/","og_locale":"en_US","og_type":"article","og_title":"DSA Python Project - Library Book Management System - DataFlair","og_description":"Program 1 # Library Book Management System class Book: def __init__(self, id, title, author): self.id = id self.title = title self.author = author self.prev = None self.next = None class Library: def __init__(self): self.head&#46;&#46;&#46;","og_url":"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2025-07-07T11:57:15+00:00","author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445"},"headline":"DSA Python Project &#8211; Library Book Management System","datePublished":"2025-07-07T11:57:15+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/"},"wordCount":10,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"keywords":["dsa python","dsa python practical","dsa python program","dsa python project library book management system","dsa using python","library book management system","library book management system in dsa python","library book management system project","library book management system project in dsa python","library book management system using dsa python"],"articleSection":["DSA using Python Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/","url":"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/","name":"DSA Python Project - Library Book Management System - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"datePublished":"2025-07-07T11:57:15+00:00","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/library-book-management-system-using-dsa-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"DSA using Python Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/dsa-python-tutorials\/"},{"@type":"ListItem","position":3,"name":"DSA Python Project &#8211; Library Book Management System"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam6\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/581"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=145757"}],"version-history":[{"count":2,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145757\/revisions"}],"predecessor-version":[{"id":145767,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/145757\/revisions\/145767"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=145757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=145757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=145757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}