上述图片是图书馆的部分功能:
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的话会结束当前所有的循环,不会进入下一次循环)
continue:
continue
时,当前的循环迭代会被跳过,并直接开始下一次的循环迭代。book_id
已经存在于books_dict
中,程序会打印一个消息并使用continue
跳过当前循环迭代,然后提示用户重新输入。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("输入图书的价格"))
这段代码是获取用户输入的图书价格,并检查输入是否为整数。如果输入的既不是整数,也不是有效的价格(例如,如果用户输入了一个小数或非数字字符),则会引发异常。
代码详解如下:
try:
- 开始一个异常处理块。如果try
块中的代码引发异常,则不会执行try
块之后的代码,而是跳到相应的except
块。book_price = int(input("输入图书的价格"))
- 提示用户输入图书的价格,并将输入的字符串转换为整数。if not isinstance(book_price, int):
- 检查book_price
是否为整数。如果不是,进入条件块。print("输入的类型错误")
- 如果book_price
不是整数,打印错误消息。except ValueError:
- 如果在尝试将输入转换为整数时引发ValueError
异常,则执行此块。print("重新输入")
- 打印消息提示用户重新输入。book_position = input('输入图书位置')
- 提示用户输入图书的位置。book_price = int(input("输入图书的价格"))
- 再次提示用户输入图书的价格,并再次尝试将其转换为整数。需要注意的是,如果用户在第一次尝试时输入了非整数的有效价格(例如,5.99),则不会触发ValueError
异常,而是会进入第一个if
块并打印“输入的类型错误”。然而,由于异常处理结构,代码仍然会提示用户重新输入位置和价格。
但是注意在上述代码中输入的一定要是int类型,
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
中删除指定的书籍。以下是这段代码的逐行解释:
def del_book():
- 定义一个名为 del_book
的函数。while True:
- 开始一个无限循环。这意味着以下的代码块会一直运行,直到遇到一个 break
语句。book_id=input("请输入你要删除书本的id")
- 提示用户输入要删除的书的ID,并将输入的值存储在变量 book_id
中。if book_id in books_dict:
- 检查用户输入的 book_id
是否存在于 books_dict
字典中。book_info=books_dict[book_id]
- 如果 book_id
在 books_dict
中,则获取该ID对应的值。并将其存储在变量 book_info
中。del books_dict[book_id]
- 从 books_dict
字典中删除与给定 book_id
对应的项。print(f"{book_info}成功删除")
- 打印书籍的位置和“成功删除”的消息。else:
- 如果 book_id
不在 books_dict
中。print("你输入的id不存在,请重新输入")
- 打印一个错误消息,提示用户输入的ID不存在。print("你是否要继续删除书籍",'yes/on')
- 询问用户是否要继续删除书籍。select=input("请输入你的选择")
- 提示用户输入他们的选择(是或否)。if select !='yes':
- 如果用户输入的不是 'yes'。break
- 跳出无限循环,结束函数。这段代码的目的是允许用户连续删除书籍,直到他们选择不再继续。每次删除后,它会询问用户是否要继续删除。
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
的函数,其目的是将书籍从库存中借出。
def lend_book():
- 定义一个名为 lend_book
的函数。while True:
- 开始一个无限循环。这意味着以下的代码块会一直运行,直到遇到一个 break
语句。book_id=input("请输入要借书的id")
- 提示用户输入要借出的书的ID,并将输入的值存储在变量 book_id
中。if book_id in books_dict:
- 检查用户输入的 book_id
是否存在于 books_dict
字典中。books_dict[book_id]="借出"
- 如果 book_id
在 books_dict
中,则将其值设置为“借出”。print(books_dict[book_id])
- 打印该书籍的当前状态(借出)。else:
- 如果 book_id
不在 books_dict
中。print("你输入的id不存在")
- 打印一个错误消息,提示用户输入的ID不存在。print('是否还需要继续借书','yes/on')
- 询问用户是否要继续借书。select=input("请输入你的选择")
- 提示用户输入他们的选择(是或否)。if select !="yes":
- 如果用户输入的不是 '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
这段代码定义了一个名为 give_book
的函数,用于将书籍归还到库存中。
def give_book():
- 定义一个名为 give_book
的函数。while True:
- 开始一个无限循环。这意味着以下的代码块会一直运行,直到遇到一个 break
语句。book_id=input("请输入你要归还的书籍")
- 提示用户输入要归还的书的ID,并将输入的值存储在变量 book_id
中。if book_id in books_dict:
- 检查用户输入的 book_id
是否存在于 books_dict
字典中。books_dict[book_id]="归还"
- 如果 book_id
在 books_dict
中,则将其值设置为“归还”。print(books_dict[book_id])
- 打印该书籍的当前状态(已归还)。else:
- 如果 book_id
不在 books_dict
中。print("归还失败")
- 打印一个错误消息,提示归还失败。print("是否继续归还,yes/on")
- 询问用户是否要继续归还书籍。select=input("请选择")
- 提示用户输入他们的选择(是或否)。if select!="yes":
- 如果用户输入的不是 '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}")
这段代码定义了一个名为 select_book
的函数,用于根据用户的选择提供不同的图书查询功能。以下是这段代码的逐行解释:
def select_book():
- 定义一个名为 select_book
的函数。print("1:查找详细的图书 2:查找已经借出的图书 3:查看所有的图书信息")
- 打印一个菜单,列出三个选项供用户选择。select=input("请选择功能")
- 提示用户输入他们的选择,并将输入的值存储在变量 select
中。if select== "1":
- 如果用户选择“1”,即查找详细的图书。book_id=input("请输入要查找书本的id")
- 提示用户输入要查找的书的ID,并将输入的值存储在变量 book_id
中。if book_id in books_dict:
- 检查用户输入的 book_id
是否存在于 books_dict
字典中。print(f'你要查找的书籍信息是{books_dict[book_id]}')
- 如果 book_id
在 books_dict
中,则打印该书的详细信息。else:
- 如果 book_id
不在 books_dict
中。print('你输入的id不存在')
- 打印一个错误消息,提示用户输入的ID不存在。elif select =="2":
- 如果用户选择“2”,即查找已经借出的图书。for book in books_dict.items():
- 遍历 books_dict
字典中的每一项。print(book)
- 打印每一项(书名和状态)。elif select =='3':
- 如果用户选择“3”,即查看所有的图书信息。for info in books_dict.items():
- 遍历 books_dict
字典中的每一项。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
这段代码定义了一个名为 modify_book
的函数,用于修改图书的信息。以下是这段代码的逐行解释:
def modify_book():
- 定义一个名为 modify_book
的函数。while True:
- 开始一个无限循环。这意味着以下的代码块会一直运行,直到遇到一个 break
语句。book_id=input("请输入要修改书的id")
- 提示用户输入要修改的书的ID,并将输入的值存储在变量 book_id
中。book_position=input("请输入要修改图书的位置")
- 提示用户输入要修改的图书的位置,并将输入的值存储在变量 book_position
中。if book_id in books_dict:
- 检查用户输入的 book_id
是否存在于 books_dict
字典中。books_dict[book_id]['book_position']=[book_position]
- 如果 book_id
在 books_dict
中,则更新该书的 book_position
字段为新的位置。print(f"{books_dict}位置修改成功")
- 打印一个消息,指示位置修改成功。else:
- 如果 book_id
不在 books_dict
中。print("图书id不存在")
- 打印一个错误消息,提示图书ID不存在。print("是否及继续修改,yes")
- 询问用户是否要继续修改图书信息。select=input("请选择")
- 提示用户输入他们的选择(是或否)。if select !="yes":
- 如果用户输入的不是 '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("输入功能不存在,请重新输入")
这段代码是一个简单的图书管理系统,提供了以下功能:
1
)2
)3
)4
)5
)6
)7
)8
)当用户输入一个数字并按下回车键时,相应的功能会被执行。以下是代码的逐行解释:
while True:
- 开始一个无限循环,使程序持续运行,直到遇到 break
语句。print("1:图书添加",'\t','2:图书删除','\t','3:图书位置修改','\t','4:图书借出','\n'
- 打印一个菜单,显示可用的功能。使用制表符 (\t
) 来分隔选项。'5:图书归还','\t','6:图书信息','\t','7:退出系统','\t','8:关于系统')
- 继续打印菜单选项。print("欢迎使用小猪图书系统".center(54,"*"))
- 在控制台中居中显示“欢迎使用小猪图书系统”并使用星号 (*
) 进行填充,使其总宽度为54个字符。print('---'*20)
- 打印20个短横线来分隔菜单选项。select=input("请选择你要使用的功能:")
- 提示用户输入要使用的功能并存储在变量 select
中。if
和 elif
语句根据用户的选择执行相应的功能。例如,如果用户选择“1”,则调用 add_book()
函数;如果选择“2”,则调用 del_book()
函数等。elif select=='7':
- 如果用户选择“7”,则跳出无限循环,结束程序。elif select=='8':
- 如果用户选择“8”,则打印“开发者:小猪”并设置为红色。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("输入功能不存在,请重新输入")
上述代码可能会有不足之处,还希望大家多多指教,
------------感谢你的观看----------------