题目描述
我们希望借助Python的字典实现简单的图书管理功能。图书的信息包括其ISBN编号、名称、价格和出版社。初步实现三种功能:加入新书的信息、删除某本书的信息、查询某本书的信息。另外,图书的ISBN编号一定是不会重复的一串数字,且假设图书名称、出版社名称中不含空格。
输入
输入共n+3行。第1行输入正整数n的值,表示将插入n本图书的信息。 后面n行的每一行分别为插入的一本图书的ISBN编号(整数类型)、名称(字符串类型)、价格(浮点数类型)、出版社(字符串类型),这四者之间以空格分隔。 倒数第二行为待删除的图书的ISBN编号。最后一行为待查询的一本书的ISBN编号。
输出
输出为一本书的查询结果,其行数不固定。对于每一本待查询的书的输出,如果存储图书信息的字典中有该图书的信息,则分四行输出:第一行为“ISBN:图书的ISBN号”;第二行为“图书的名称”;第三行为“price:图书的价格”,此处图书的价格保留两位小数;第四行为“publisher:图书的出版社”。如果没有该图书的信息,则输出一行“BookNotFound”。
输入样例1
2
9787115454157 流畅的Python 139 人民邮电出版社
9787121332746 Python学习手册 219 机械工业出版社
9787115454157
9787115454157
输出样例1
BookNotFound
输入样例2
2
9787115454157 流畅的Python 139 人民邮电出版社
9787121332746 Python学习手册 219 机械工业出版社
9787115454157
9787121332746
输出样例2
ISBN:9787121332746
name:Python学习手册
price:219.00
publisher:机械工业出版社
因书号唯一,作为键,其他三个为值构成字典,代码这样写:
books={}
n=int(input('添加图书个数:'))
for i in range(n):
isbn,name,price,publisher=input().split()
isbn=int(isbn)
price=float(price)
books[isbn]=[name,price,publisher]
m=int(input('输入要删除的编号'))
books.pop(m)
q = int(input('输入要查询的编号'))
for k in books:
if q == k:
print('ISBN:',k)
print('name:',books[k][0])
print('price:',books[k][1])
print('publisher:',books[k][2])
break
else:
print('BookNotFound')
row = int(input())
books = {}
for i in range(row):
book_info = input().split()
books.update(
{
int(book_info[0]): {
"isbn": int(book_info[0]),
"name": book_info[1],
"price": float(book_info[2]),
"publisher": book_info[3]
}})
delete_isbn = int(input())
books.pop(delete_isbn)
query_isbn = int(input())
query_book = books.get(query_isbn, None)
if query_book:
print("ISBN:",query_book["isbn"])
print("name:",query_book["name"])
print("price: %.2f"% query_book["price"])
print("publisher:",query_book["publisher"])
else:
print("BookNotFound")