python---(面对过程)图书管理系统

上述图片是图书馆的部分功能:

 功能一:add_book():添加图书

def add_book():                                                                                    
    books_dict = {}  # 初始化一个空字典来存储书籍信息                                                             
    while True:                                                                                    
        book_id = input("输入要添加图书的id")                                                              
        if book_id in books_dict:  # 如果ID已经存在于字典中                                                  
            print("ID已存在,请重新输入")                                                                   
            continue  # 跳到下一轮循环重新输入id                                                              
        if not book_id:  # 如果id为空                                                                  
            print("ID不能为空,请重新输入")                                                                  
            continue  # 跳到下一轮循环重新输入id                                                              
        if len(book_id) !=4:                                                                       
            print("ID格式错误,重新输入")                                                                   
            continue                                                                               
        book_name = input('输入要添加图书的名字')                                                            
        if not book_name:                                                                          
            print("name不能为空,请重新输入")                                                                
            continue                                                                               
        if book_name=="w":                                                                         
            continue                                                                               
        while True:                                                                                
                book_position = input("请输入图书馆位置")                                                  
                if book_position == "w":                                                           
                   book_name = input('输入要添加图书的名字')                                                 
                   continue  # 重新开始循环,再次提示用户输入                                                     
                break                                                                              
        try:                                                                                       
            book_price = int(input("输入图书的价格"))                                                     
                                                                                                   
            if not isinstance(book_price, int):                                                    
                print("输入的类型错误")                                                                   
                                                                                                   
            if book_price=="w":                                                                    
                pass                                                                               
        except ValueError:                                                                         
            print("重新输入")                                                                          
            book_position = input('输入图书位置')                                                        
            book_price = int(input("输入图书的价格"))                                                     
                                                                                                   
        while True:                                                                                
            book_number =input("输入的数量")                                                            
            try:                                                                                   
                book_number = int(book_number)                                                     
                break                                                                              
            except ValueError:                                                                     
                 book_price = int(input("输入图书的价格"))                                                
                 book_number = int(input("输入的数量"))                                                 
            break                                                                                  
                                                                                                   
        books_dict[book_id] = {"book_id": book_id, "book_name": book_name,                         
                               'book_position': book_position, "book_price": book_price,           
                               'book_number': book_number}                                         
        for info in books_dict.items():                                                            
            print(info)                                                                            
        print("是否要继续添加书籍,yes/no")                                                                  
        select = input('请输入你的选择')                                                                  
        if select != 'yes':                                                                        
            break                                                                                  
  while True:                                                                                    
        book_id = input("输入要添加图书的id")                                                              
        if book_id in books_dict:  # 如果ID已经存在于字典中                                                  
            print("ID已存在,请重新输入")                                                                   
            continue  # 跳到下一轮循环重新输入id  

在上述代码中使用了一个while循环:

当我们输入id的时候。if判读语句会判读ID是否在系统中存在。如果存在话,就结束当前循环,跳到下一轮循环重新输入ID,(如果时使用break的话会结束当前所有的循环,不会进入下一次循环)

  1. continue:

    • 当执行到continue时,当前的循环迭代会被跳过,并直接开始下一次的循环迭代。
    • 在您的代码中,如果用户输入的book_id已经存在于books_dict中,程序会打印一个消息并使用continue跳过当前循环迭代,然后提示用户重新输入。
    • 这意味着,如果用户输入的ID已经存在,程序会忽略后续的代码(直到下一次循环迭代),并要求用户重新输入。
  2.    break:

    • 当执行到break时,循环会被立即终止,后续的代码(如果有的话)会继续执行。
    • 如果在您的代码中使用break,当检测到book_id已经存在于books_dict中时,程序会打印一个消息,然后退出整个循环。后续的代码(如果有的话)将立即执行。

总结:使用continue时,循环会继续执行,但当前迭代会被跳过;而使用break时,循环会完全终止。在上述情境中,使用continue更适合,希望在ID已存在时跳过当前输入并要求用户重新输入,而不是完全终止循环。

上述图片可以看到当我们使用break和continue可以看出continue。当前的循环迭代会被跳过,并直接开始下一次的循环迭代。break循环会被立即终止,后续的代码(如果有的话)会继续执行。

  try:
            book_price = int(input("输入图书的价格"))

            if not isinstance(book_price, int):
                print("输入的类型错误")

        except ValueError:
            print("重新输入")
            book_position = input('输入图书位置')
            book_price = int(input("输入图书的价格"))

这段代码是获取用户输入的图书价格,并检查输入是否为整数。如果输入的既不是整数,也不是有效的价格(例如,如果用户输入了一个小数或非数字字符),则会引发异常。

代码详解如下:

  1. try: - 开始一个异常处理块。如果try块中的代码引发异常,则不会执行try块之后的代码,而是跳到相应的except块。
  2. book_price = int(input("输入图书的价格")) - 提示用户输入图书的价格,并将输入的字符串转换为整数。
  3. if not isinstance(book_price, int): - 检查book_price是否为整数。如果不是,进入条件块。
  4. print("输入的类型错误") - 如果book_price不是整数,打印错误消息。
  5. except ValueError: - 如果在尝试将输入转换为整数时引发ValueError异常,则执行此块。
  6. print("重新输入") - 打印消息提示用户重新输入。
  7. book_position = input('输入图书位置') - 提示用户输入图书的位置。
  8. book_price = int(input("输入图书的价格")) - 再次提示用户输入图书的价格,并再次尝试将其转换为整数。

需要注意的是,如果用户在第一次尝试时输入了非整数的有效价格(例如,5.99),则不会触发ValueError异常,而是会进入第一个if块并打印“输入的类型错误”。然而,由于异常处理结构,代码仍然会提示用户重新输入位置和价格。

但是注意在上述代码中输入的一定要是int类型,

  +

功能二:del_book:删除书籍:

def del_book():
    while True:
        book_id=input("请输入你要删除书本的id")
        if book_id in books_dict:
            book_info=books_dict[book_id]
            del books_dict[book_id]
            print(f"{book_info}成功删除")#为什么不直接使用books_doct呢,
        else:
            print("你输入的id不存在,请重新输入")

        print("你是否要继续删除书籍",'yes/on')
        select=input("请输入你的选择")
        if select !='yes':
            break

这段代码定义了一个名为 del_book 的函数,其目的是从 books_dict 中删除指定的书籍。以下是这段代码的逐行解释:

  1. def del_book(): - 定义一个名为 del_book 的函数。
  2. while True: - 开始一个无限循环。这意味着以下的代码块会一直运行,直到遇到一个 break 语句。
  3. book_id=input("请输入你要删除书本的id") - 提示用户输入要删除的书的ID,并将输入的值存储在变量 book_id 中。
  4. if book_id in books_dict: - 检查用户输入的 book_id 是否存在于 books_dict 字典中。
  5. book_info=books_dict[book_id] - 如果 book_id 在 books_dict 中,则获取该ID对应的值。并将其存储在变量 book_info 中。
  6. del books_dict[book_id] - 从 books_dict 字典中删除与给定 book_id 对应的项。
  7. print(f"{book_info}成功删除") - 打印书籍的位置和“成功删除”的消息。
  8. 为什么直接用{books_dict}呢。因为books_dict是一个空的,没有任何内容。会显示{}。并且如果你使用的是{books_dict[book_id]}还会出现报错。因为字典是空的没有任何键值对
  9. else: - 如果 book_id 不在 books_dict 中。
  10. print("你输入的id不存在,请重新输入") - 打印一个错误消息,提示用户输入的ID不存在。
  11. print("你是否要继续删除书籍",'yes/on') - 询问用户是否要继续删除书籍。
  12. select=input("请输入你的选择") - 提示用户输入他们的选择(是或否)。
  13. if select !='yes': - 如果用户输入的不是 'yes'。
  14. break - 跳出无限循环,结束函数。

这段代码的目的是允许用户连续删除书籍,直到他们选择不再继续。每次删除后,它会询问用户是否要继续删除。

功能三:lend_book:借书功能:

def del_book():
    while True:
        book_id=input("请输入你要删除书本的id")
        if book_id in books_dict:
            book_position=books_dict[book_id]
            del books_dict[book_id]
            print(f"{book_position}成功删除")#为什么不直接使用books_doct呢,
        else:
            print("你输入的id不存在,请重新输入")

        print("你是否要继续删除书籍",'yes/on')
        select=input("请输入你的选择")
        if select !='yes':
            break

这段代码定义了一个名为 lend_book 的函数,其目的是将书籍从库存中借出。

  1. def lend_book(): - 定义一个名为 lend_book 的函数。
  2. while True: - 开始一个无限循环。这意味着以下的代码块会一直运行,直到遇到一个 break 语句。
  3. book_id=input("请输入要借书的id") - 提示用户输入要借出的书的ID,并将输入的值存储在变量 book_id 中。
  4. if book_id in books_dict: - 检查用户输入的 book_id 是否存在于 books_dict 字典中。
  5. books_dict[book_id]="借出" - 如果 book_id 在 books_dict 中,则将其值设置为“借出”。
  6. print(books_dict[book_id]) - 打印该书籍的当前状态(借出)。
  7. else: - 如果 book_id 不在 books_dict 中。
  8. print("你输入的id不存在") - 打印一个错误消息,提示用户输入的ID不存在。
  9. print('是否还需要继续借书','yes/on') - 询问用户是否要继续借书。
  10. select=input("请输入你的选择") - 提示用户输入他们的选择(是或否)。
  11. if select !="yes": - 如果用户输入的不是 'yes'。
  12. break - 跳出无限循环,结束函数。

这段代码的目的是允许用户连续借出书籍,直到他们选择不再继续。每次借出后,它会询问用户是否要继续借书。

功能四:give_book:归还书:


def give_book():
    while True:
        book_id=input("请输入你要归还的书籍")
        if book_id  in  books_dict:
            books_dict[book_id]="归还"
            print(books_dict[book_id])

        else:
            print("归还失败")
        print("是否继续归还,yes/on")

        select=input("请选择")
        if select!="yes":
            break

这段代码定义了一个名为 give_book 的函数,用于将书籍归还到库存中。

  1. def give_book(): - 定义一个名为 give_book 的函数。
  2. while True: - 开始一个无限循环。这意味着以下的代码块会一直运行,直到遇到一个 break 语句。
  3. book_id=input("请输入你要归还的书籍") - 提示用户输入要归还的书的ID,并将输入的值存储在变量 book_id 中。
  4. if book_id in books_dict: - 检查用户输入的 book_id 是否存在于 books_dict 字典中。
  5. books_dict[book_id]="归还" - 如果 book_id 在 books_dict 中,则将其值设置为“归还”。
  6. print(books_dict[book_id]) - 打印该书籍的当前状态(已归还)。
  7. else: - 如果 book_id 不在 books_dict 中。
  8. print("归还失败") - 打印一个错误消息,提示归还失败。
  9. print("是否继续归还,yes/on") - 询问用户是否要继续归还书籍。
  10. select=input("请选择") - 提示用户输入他们的选择(是或否)。
  11. if select!="yes": - 如果用户输入的不是 'yes'。
  12. break - 跳出无限循环,结束函数。

这段代码的目的是允许用户连续归还书籍,直到他们选择不再继续。每次归还后,它会询问用户是否要继续归还。如果用户选择不再继续,则结束函数。

功能五:select_book:选择功能

def select_book():
    print("1:查找详细的图书 2:查找已经借出的图书 3:查看所有的图书信息")
    select=input("请选择功能")
    if select== "1":
        book_id=input("请输入要查找书本的id")
        if book_id in books_dict:
            print(f'你要查找的书籍信息是{books_dict[book_id]}')
        else:
            print('你输入的id不存在')
    elif select =="2":
        for book in books_dict.items():
            print(book)
    elif select =='3':
        for info in books_dict.items():
            print(f"书本的信息\n{info}")

这段代码定义了一个名为 select_book 的函数,用于根据用户的选择提供不同的图书查询功能。以下是这段代码的逐行解释:

  1. def select_book(): - 定义一个名为 select_book 的函数。
  2. print("1:查找详细的图书 2:查找已经借出的图书 3:查看所有的图书信息") - 打印一个菜单,列出三个选项供用户选择。
  3. select=input("请选择功能") - 提示用户输入他们的选择,并将输入的值存储在变量 select 中。
  4. if select== "1": - 如果用户选择“1”,即查找详细的图书。
  5. book_id=input("请输入要查找书本的id") - 提示用户输入要查找的书的ID,并将输入的值存储在变量 book_id 中。
  6. if book_id in books_dict: - 检查用户输入的 book_id 是否存在于 books_dict 字典中。
  7. print(f'你要查找的书籍信息是{books_dict[book_id]}') - 如果 book_id 在 books_dict 中,则打印该书的详细信息。
  8. else: - 如果 book_id 不在 books_dict 中。
  9. print('你输入的id不存在') - 打印一个错误消息,提示用户输入的ID不存在。
  10. elif select =="2": - 如果用户选择“2”,即查找已经借出的图书。
  11. for book in books_dict.items(): - 遍历 books_dict 字典中的每一项。
  12. print(book) - 打印每一项(书名和状态)。
  13. elif select =='3': - 如果用户选择“3”,即查看所有的图书信息。
  14. for info in books_dict.items(): - 遍历 books_dict 字典中的每一项。
  15. print(f"书本的信息\n{info}") - 打印每一项(书名和状态)并标记为“书本的信息”。

这个函数根据用户的选择提供不同的图书查询功能,包括查找详细的图书、查找已经借出的图书和查看所有的图书信息。

功能六:modify_book:修改图书位置

def modify_book():
    while True:
        book_id=input("请输入要修改书的id")
        book_position=input("请输入要修改图书的位置")
        if book_id in books_dict:
            books_dict[book_id]['book_position']=[book_position]
            print(f"{books_dict}位置修改成功")
        else:
            print("图书id不存在")
        print("是否及继续修改,yes")
        select=input("请选择")
        if select !="yes":
            break

这段代码定义了一个名为 modify_book 的函数,用于修改图书的信息。以下是这段代码的逐行解释:

  1. def modify_book(): - 定义一个名为 modify_book 的函数。
  2. while True: - 开始一个无限循环。这意味着以下的代码块会一直运行,直到遇到一个 break 语句。
  3. book_id=input("请输入要修改书的id") - 提示用户输入要修改的书的ID,并将输入的值存储在变量 book_id 中。
  4. book_position=input("请输入要修改图书的位置") - 提示用户输入要修改的图书的位置,并将输入的值存储在变量 book_position 中。
  5. if book_id in books_dict: - 检查用户输入的 book_id 是否存在于 books_dict 字典中。
  6. books_dict[book_id]['book_position']=[book_position] - 如果 book_id 在 books_dict 中,则更新该书的 book_position 字段为新的位置。
  7. print(f"{books_dict}位置修改成功") - 打印一个消息,指示位置修改成功。
  8. else: - 如果 book_id 不在 books_dict 中。
  9. print("图书id不存在") - 打印一个错误消息,提示图书ID不存在。
  10. print("是否及继续修改,yes") - 询问用户是否要继续修改图书信息。
  11. select=input("请选择") - 提示用户输入他们的选择(是或否)。
  12. if select !="yes": - 如果用户输入的不是 'yes'。
  13. break - 跳出无限循环,结束函数。

这段代码的目的是允许用户连续修改图书信息,直到他们选择不再继续。每次修改后,它会询问用户是否要继续修改。如果用户选择不再继续,则结束函数

最后将函数,封装集合起来:

while True:
    print("1:图书添加",'\t','2:图书删除','\t','3:图书位置修改','\t','4:图书借出','\n'
          '5:图书归还','\t','6:图书信息','\t','7:退出系统','\t','8:关于系统')
    print("欢迎使用小猪图书系统".center(54,"*"))
    print('---'*20)
    select=input("请选择你要使用的功能:")

    if select =="1":
        add_book()
    elif select=='2':
        del_book()
    elif select=='3':
        modify_book()
    elif select=='4':
        lend_book()
    elif select=="5":
        give_book()
    elif select=="6":
        select_book()
    elif select=='7':
        break
    elif select=='8':
        print(colored("开发者:小猪", "red"))
    else:
        print("输入功能不存在,请重新输入")

这段代码是一个简单的图书管理系统,提供了以下功能:

  1. 图书添加 (1)
  2. 图书删除 (2)
  3. 图书位置修改 (3)
  4. 图书借出 (4)
  5. 图书归还 (5)
  6. 图书信息 (6)
  7. 退出系统 (7)
  8. 关于系统 (8)

当用户输入一个数字并按下回车键时,相应的功能会被执行。以下是代码的逐行解释:

  1. while True: - 开始一个无限循环,使程序持续运行,直到遇到 break 语句。
  2. print("1:图书添加",'\t','2:图书删除','\t','3:图书位置修改','\t','4:图书借出','\n' - 打印一个菜单,显示可用的功能。使用制表符 (\t) 来分隔选项。
  3. '5:图书归还','\t','6:图书信息','\t','7:退出系统','\t','8:关于系统') - 继续打印菜单选项。
  4. print("欢迎使用小猪图书系统".center(54,"*")) - 在控制台中居中显示“欢迎使用小猪图书系统”并使用星号 (*) 进行填充,使其总宽度为54个字符。
  5. print('---'*20) - 打印20个短横线来分隔菜单选项。
  6. select=input("请选择你要使用的功能:") - 提示用户输入要使用的功能并存储在变量 select 中。
  7. 接下来的 if 和 elif 语句根据用户的选择执行相应的功能。例如,如果用户选择“1”,则调用 add_book() 函数;如果选择“2”,则调用 del_book() 函数等。
  8. elif select=='7': - 如果用户选择“7”,则跳出无限循环,结束程序。
  9. elif select=='8': - 如果用户选择“8”,则打印“开发者:小猪”并设置为红色。
  10. else: - 如果用户输入的功能不存在于菜单中,打印“输入功能不存在,请重新输入”。
from termcolor import colored
books_dict={}
def add_book():
    while True:
        book_id = input("请输入要添加的书本的id")

        book_name = input("请输入书本的名称")
        book_position = input("请输入书本的位置")
        book_price = input("请输入书本的价格")
        book_numbers = input("请输入书本的数量")
        is_lend = False
        books_dict[book_id] = {"book_name": book_name,
                               "book_position": book_position,
                               "book_price": book_price, "book_numbers": book_numbers,
                               "is_lend": is_lend}
        for info in books_dict.items():
            print(f"书的信息添加成功\n{info}")
        print("你是否还需要继续添加图书", "yes/on")
        select = input("请输入你的选择")
        if select != "yes":
            print(f'{books_dict}')
            break
        for book in books_dict.items():
            print(f"你添加的书的信息",'\n'
                  f"{book[1]}")
def del_book():
    while True:
        book_id=input("请输入你要删除书本的id")
        if book_id in books_dict:
            book_position=books_dict[book_id]
            del books_dict[book_id]
            print(f"{book_position}成功删除")#为什么不直接使用books_doct呢,
        else:
            print("你输入的id不存在,请重新输入")

        print("你是否要继续删除书籍",'yes/on')
        select=input("请输入你的选择")
        if select !='yes':
            break


def lend_book():
    while True:
        book_id=input("请输入要借书的id")
        if book_id in books_dict:
            books_dict[book_id]="借出"
            print(books_dict[book_id])

        else:
            print("你输入的id不存在")

        print('是否还需要继续借书','yes/on')
        select=input("请输入你的选择")
        if select !="yes":
            break

def give_book():
    while True:
        book_id=input("请输入你要归还的书籍")
        if book_id  in  books_dict:
            books_dict[book_id]="归还"
            print(books_dict[book_id])

        else:
            print("归还失败")
        print("是否继续归还,yes/on")

        select=input("请选择")
        if select!="yes":
            break

def select_book():
    print("1:查找详细的图书 2:查找已经借出的图书 3:查看所有的图书信息")
    select=input("请选择功能")
    if select== "1":
        book_id=input("请输入要查找书本的id")
        if book_id in books_dict:
            print(f'你要查找的书籍信息是{books_dict[book_id]}')
        else:
            print('你输入的id不存在')
    elif select =="2":
        for book in books_dict.items():
            print(book)
    elif select =='3':
        for info in books_dict.items():
            print(f"书本的信息\n{info}")
def modify_book():
    while True:
        book_id=input("请输入要修改书的id")
        book_position=input("请输入要修改图书的位置")
        if book_id in books_dict:
            books_dict[book_id]['book_position']=[book_position]
            print(f"{books_dict}位置修改成功")
        else:
            print("图书id不存在")
        print("是否及继续修改,yes")
        select=input("请选择")
        if select !="yes":
            break

while True:
    print("1:图书添加",'\t','2:图书删除','\t','3:图书位置修改','\t','4:图书借出','\n'
          '5:图书归还','\t','6:图书信息','\t','7:退出系统','\t','8:关于系统')
    print("欢迎使用小猪图书系统".center(54,"*"))
    print('---'*20)
    select=input("请选择你要使用的功能:")

    if select =="1":
        add_book()
    elif select=='2':
        del_book()
    elif select=='3':
        modify_book()
    elif select=='4':
        lend_book()
    elif select=="5":
        give_book()
    elif select=="6":
        select_book()
    elif select=='7':
        break
    elif select=='8':
        print(colored("开发者:小猪", "red"))
    else:
        print("输入功能不存在,请重新输入")

上述代码可能会有不足之处,还希望大家多多指教,

------------感谢你的观看----------------

  • 18
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值