美文网首页Python全栈工程师
28.2-习题温度转换和购物车实现

28.2-习题温度转换和购物车实现

作者: BeautifulSoulpy | 来源:发表于2019-12-12 16:51 被阅读0次

社会上要想分出层次,只有一个办法,那就是竞争,你必须努力,否则结局就是被压在社会的底层!

总结:

  1. 面向对象复杂问题非常难分解,所以我们必须从小的问题一步一步来;
  2. 每一道练习题出的都是有目的的,慎重对待;
  3. 解决问题: 重在设计(解决问题的思路),然后实现解决方案;

4、实现温度的处理 (设计思路理解问题)

实现华氏温度和摄氏温度的转换;
℃ = 5 × (℉ - 32) / 9
℉ = 9 × ℃ / 5 + 32
完成以上转换后,增加与开氏温度的转换,K = ℃ + 273.15

# 思路设计: 1 .类和实例兼顾 访问
class Temperature:
    def __init__(self,t,unit='c'):
        self._c = None
        self._f = None
        self._k = None
        
        if unit.lower() == 'k':
            self._k = t
            self._c = self.k2c(t)
        elif unit.lower() == 'f':
            self._f = t
            self._c = self.f2c(t)
        else:
            self._c = t
    @property
    def c(self):   # 摄氏温度
        return self._c
    
    @property
    def f(self):  # 华氏温度
        if self._f is None:
            self._f = self.c2f(self._c)
        return self._f
    
    @property
    def k(self):  # 开式温度
        if self._k is None:
            self._k = self.c2k(self._c)
        return self._k
            
    # 温度转换
    @classmethod
    def c2f(self,c):    # 设计模式 1 ; 工具函数: 既可以 实例 又可以 工具;
        return 9 * c / 5 +32
    @classmethod
    def f2c(self,f):
        return (f - 32) * 5 / 9
    @classmethod
    def c2k(self,c):
        return c + 273.15
    @classmethod
    def k2c(self,k):
        return k - 273.15
    @classmethod
    def f2k(self,f):
        return self.c2k(self.f2c(f))
    @classmethod
    def k2f(self,k):
        return self.c2f(self.k2c(k))
    
t = Temperature(30)
print(t.c,t.k,t.f)
print('-'*60)
t1 = Temperature(0,'f')
print(t1.c,t1.k,t1.f)
#-------------------------------------------------------------------------------
30 303.15 86.0
---------------------------------------------------------
-17.77777777777778 255.3722222222222 0
    

思路设计: 2


5. 模拟购物车购物 (类该怎么设计;数据库设计——CMDB设计问题)

思路:商品类:往容器中加 东西;

# 思路:商品类:往容器中加 东西;

class Color:  # 颜色的描述绝对不是一件简单的事情;
    RED = 0
    GREEN = 1
    BLACK = 2
    OTHER = 1000
    

class Item:
    def __init__(self,price,type,mark,**kwargs):  # 确定的参数;不确定的参数用可变参数收集;
        #self.id = id   # 商品的ID非常重要;
        self.price = price
        self.type = type
        self.mark = mark
        self.__spec = kwargs
        # self.__spec.update(price=price,type=type,mark=mark)   使用小技巧;
        self.__dict__.update(kwargs)  # 小技巧:把不确定的参数更新到类属性中去;
    def __repr__(self):   # 显示出来给人看的;
        return '<Item {} {}>'.format(self.mark,self.color)  # 要求必须是字符串 出来;
        
class Cart:
    def __init__(self):
        self._items = []
        
    def add_item(self,item:Item):
        self._items.append(item)
        
    def getallitems(self):
        return self._items
    
item = Item(20,'001','Audi',color=Color.BLACK,weight=2)
print(item)  # repr前后可以显示
print(item.__dict__)  # 查看属性 ;
print(item.color)  # 更新的属性可以用;

cart = Cart()
cart.add_item(item)
item = Item(2,'p002','Hero',color = Color.RED)
print(item.__dict__)

cart.add_item(item)
print(cart.getallitems())
# ------------------------------------------------------------------------------
<Item Audi 2>
{'price': 20, 'type': '001', 'mark': 'Audi', '_Item__spec': {'color': 2, 'weight': 2}, 'color': 2, 'weight': 2}
2
{'price': 2, 'type': 'p002', 'mark': 'Hero', '_Item__spec': {'color': 0}, 'color': 0}
[<Item Audi 2>, <Item Hero 0>]

相关文章

  • 28.2-习题温度转换和购物车实现

    社会上要想分出层次,只有一个办法,那就是竞争,你必须努力,否则结局就是被压在社会的底层! 总结:面向对象复杂问题非...

  • 购物车页面和商品列表页面

    商品列表页面的布局和添加购物车到cookie中的保存实现 购物车页面的布局以及CSs样式 JS实现:购物车的实现上...

  • 第三章条件的习题

    习题3.1 编写一个程序,首先给用户以下两种选择:(1)将温度从摄氏度转换为华氏度。(2)将温度从华氏度转化为摄氏...

  • Day02

    因为自己是本专业的,所以就直接上手做练习题了,所以就记录下碰到的问题和解决方案吧! 练习1:华氏温度转换为摄氏温度...

  • Java基础题目(温度转换、时间换算、信号报告)

    Java基础题目 题目主要来自浙江大学翁凯教授的零基础学习Java课程的配套习题。 1. 温度转换 题目内容:写一...

  • 温度转换

    摄氏度(Celsius)和华氏度(Fabrenheit)相互转换。 转换算法如下:(C表示摄氏度、F表示华氏度) ...

  • 温度转换

    #tempconvert.py tempstr = input("请输入带有符号的温度值:") if tempst...

  • 温度转换

    fahrenheit = 0while fahrenheit <= 250:celsius = (fahrenhe...

  • 温度转换

  • 温度转换

    tempstr=input("请输入您要转换的温度:") if tempstr[-1] in ['F','f']:...

网友评论

    本文标题:28.2-习题温度转换和购物车实现

    本文链接:https://www.haomeiwen.com/subject/cxyzgctx.html