📅  最后修改于: 2023-12-03 14:53:41.019000             🧑  作者: Mango
这是一份可以寻找正方形和长方形的周长的程序。程序接受用户输入边长信息,根据用户选择的形状(正方形或长方形)计算并返回周长。
该程序采用了Python编程语言,主要用到了条件语句和控制语句。
为了让程序更加优雅且易于复用,我们定义了Square
和Rectangle
两个类来分别处理正方形和长方形,避免代码重复。
在程序中,我们对用户输入进行了校验,确保输入的边长信息合法性,例如不能为负数,不能为字符串等等,保证了程序的稳定性和鲁棒性。
另外,该程序还利用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两个类来实现代码的复用性和易读性。此外,为了提高程序的稳定性和鲁棒性,我们还对用户输入进行了校验,并编写了相应的测试用例来确保代码的正确性和可靠性。