mariajessica 2021-11-11 19:40 采纳率: 50%
浏览 137
已结题

借助Python的字典实现简单的图书管理功能

题目描述

我们希望借助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:机械工业出版社

  • 写回答

2条回答 默认 最新

  • CSDN专家-HGJ 2021-11-11 22:20
    关注

    因书号唯一,作为键,其他三个为值构成字典,代码这样写:

    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')
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 已采纳回答 11月11日
  • 创建了问题 11月11日