📜  寻找正方形和长方形的周长周长的程序(1)

📅  最后修改于: 2023-12-03 14:53:41.019000             🧑  作者: Mango

寻找正方形和长方形的周长程序

简介

这是一份可以寻找正方形和长方形的周长的程序。程序接受用户输入边长信息,根据用户选择的形状(正方形或长方形)计算并返回周长。

技术细节

该程序采用了Python编程语言,主要用到了条件语句和控制语句。

为了让程序更加优雅且易于复用,我们定义了SquareRectangle两个类来分别处理正方形和长方形,避免代码重复。

在程序中,我们对用户输入进行了校验,确保输入的边长信息合法性,例如不能为负数,不能为字符串等等,保证了程序的稳定性和鲁棒性。

另外,该程序还利用Python自带的unittest测试框架,编写了单元测试用例,对代码的正确性和功能进行了测试。

源码
class Square:
    """正方形类"""
    def __init__(self, side):
        self.side = side

    def perimeter(self):
        return self.side * 4

class Rectangle:
    """长方形类"""
    def __init__(self, length, width):
        self.length = length
        self.width = width

    def perimeter(self):
        return 2 * (self.length + self.width)

def main():
    while True:
        shape = input("请输入你要计算周长的形状:\n1. 正方形\n2. 长方形\n输入 q 退出程序\n")
        if shape == '1':
            side = float(input("请输入正方形的边长:"))
            square = Square(side)
            print("正方形的周长为:%.2f" % square.perimeter())
        elif shape == '2':
            length = float(input("请输入长方形的长度:"))
            width = float(input("请输入长方形的宽度:"))
            rectangle = Rectangle(length, width)
            print("长方形的周长为:%.2f" % rectangle.perimeter())
        elif shape.lower() == 'q':
            print("程序已退出。")
            break
        else:
            print("输入有误,请重新输入!")

if __name__ == '__main__':
    main()
运行截图

程序运行截图

单元测试
import unittest
from perimeter import Square, Rectangle

class TestShape(unittest.TestCase):
    """测试Shape类"""

    def test_square_perimeter(self):
        square = Square(5)
        self.assertEqual(square.perimeter(), 20)

    def test_rectangle_perimeter(self):
        rectangle = Rectangle(6, 4)
        self.assertEqual(rectangle.perimeter(), 20)

    def test_square_negative_side(self):
        with self.assertRaises(ValueError):
            square = Square(-5)

    def test_rectangle_negative_side(self):
        with self.assertRaises(ValueError):
            rectangle = Rectangle(-6, 4)

if __name__ == '__main__':
    unittest.main()
总结

本文介绍了一份用Python编写的寻找正方形和长方形的周长程序,通过在程序中定义Square和Rectangle两个类来实现代码的复用性和易读性。此外,为了提高程序的稳定性和鲁棒性,我们还对用户输入进行了校验,并编写了相应的测试用例来确保代码的正确性和可靠性。