设计一个矩形类(Rectangle),封装矩形的长宽属性,并提供计算面积和周长的方法。使用if条件句判断保证矩形的长和宽都是正数。如果不是正数,则报出ValueError错误

在python中,封装属性时如何使用if条件句,如果不符合if又该如何报出ValueError错误,我们来看代码。

class Rectangle:
    def __init__(self,_length,_width):
        self._length=_length
        self._width=_width
    def area(self):
        if self._length>0 and self._width>0:
            self.area=self._length*self._width
            return self.area
            # print(f'矩形面积为{self.area}')
        else:
            raise ValueError('长或宽不得小于等于0')
    def perimeter(self):
        if self._length>0 and self._width>0:
            self.perimeter=self._length*2+self._width*2
            return self.perimeter
            # print(f'矩形周长为{self.perimeter}')
        else:
            raise ValueError('长或宽不得小于等于0')
    def show(self):
        print(f'当矩形的长为{self._length}宽为{self._width}时,则矩形面积为{self.area()}周长为{self.perimeter()}')
a1=Rectangle(10,20)
a1.show()
a2=Rectangle(-9,8)
a2.show()
a3=Rectangle(8,-4)
a3.show()

首先定义了一个矩形类Rectangle,然后编写构造器封装属性长和宽都不用过多介绍了。然后就到了计算面积和周长的时候了。这里把面积和周长封装为函数,使用if条件句判断,如果矩形的长和宽全部大于0时,才可以开始计算,计算过后使用return将计算过后面积和周长的值分别返回到各自的函数中。那么如果长和宽有其一或者全部小于等于0,将无法计算面积与周长。既然if是长和宽全部大于0,那么剩下的就应该是else。

如果想让程序报出ValueError错误,就要在else:后输入raise ValueError(‘此处为自己输入’)。

在计算过周长和面积之后就要将其输出,这里定义了一个函数show用来将矩形的信息全部输出。然后就要对定义的矩形类传参,这里传了三次参,分别是长宽全部大于0、长小于0宽大于0和长大于0宽小于0,下面来看输出的结果

很显然,第一次传入的参数长和宽全部大于零,所及程序计算并输出了该矩形的所有信息,而第二次和第三次分别是长和宽不符合标准,所及程序报出了ValueError错误。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值