pta - 图书价格汇总 - python

本文介绍了一个简单的图书价格汇总程序的设计与实现。通过定义一个Book类来存储每本书的名字和价格,并计算所有图书的总价格。文章提供了完整的代码示例及运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值