pta - 图书价格汇总 - python

192 阅读2分钟

1.图书价格汇总

图书价格汇总

输入格式:

假设某图书馆中图书记录的格式为“Java程序设计: 34;Web程序设计: 56;JSP程序设计:20”(每本书的价格是整数,每本书的价格与下一本书的名字之间有一个中文;)。

输出格式:

编写一个类的方法,能够接受键盘录入的符合上述格式的图书内容字符串,输出图书记录中所有书目的总价格。

输入样例:

Java程序设计:34 ;Web程序设计: 56;JSP程序设计:20

输出样例:

Java程序设计:34 
Web程序设计: 56
JSP程序设计:20
总价格为110

思路:

  1. 可以创建一个类,类里又两个成员遍历一个是book_name另一个是book_price并且因为有要求总价格的需求,可以设置一个私有变量进行处理

  2. 创建一个字典,用字典的存储数据,最后遍历字典(TODO)

解题:

因为题目要求是用类的方法去做,那么就2的方式暂时不写,后期补充

  1. 先创建一个类 仔细看题目给的输入样例和输出样例,可以发现,其实在类中存的所有值都因该是字符串的形式除了用来计算总价格的all_price

    # 定义一个book的类
    class Book:
        # 用于计算总价格
        all_price = 0
    
        # 初始化类 构造函数
        def __init__(self, book_name, book_price):
            self.book_name = book_name
            self.book_price = book_price
            Book.all_price += int(book_price)
    
        # 展示总价格
        def display_price(self):
            print("总价格为{}".format(Book.all_price))
    
    1. 读取输入的内容
    books = input().strip().split(";")
    
    1. 处理读取到的数据
    book_list = []
    for book in books:
        book_name, book_price = book.split(":")
        # 这里创建对象的时候传入的是都是字符串
        book_list.append(Book(book_name, book_price))
    
    1. 输出
    for book in book_list:
        book.to_string()
    print("总价格为{}".format(Book.all_price))
    

    完整代码以及提交结果:

    代码

    class Book:
        # 用于计算总价格
        all_price = 0
    
        # 初始化类 构造函数
        def __init__(self, book_name, book_price):
            self.book_name = book_name
            self.book_price = book_price
            Book.all_price += int(book_price)
    
        # 展示内容 类似于(toString)
        def to_string(self):
            print("{}:{}".format(self.book_name, self.book_price))
    
    
    books = input().strip().split(";")
    book_list = []
    for book in books:
        book_name, book_price = book.split(":")
        book_list.append(Book(book_name, book_price))
    
    for book in book_list:
        book.to_string()
    print("总价格为{}".format(Book.all_price))
    

    提交结果

    image-20221208162701032