如何使用Python类和print函数实现多边形内角计算与分类打印
问题原因
你的完整版代码无法正常运行主要是3处语法和属性访问逻辑错误导致:
- 构造方法赋值错误:
__init__中写的self.x = self是把类实例本身赋值给了x属性,而非把传入的边数参数赋值给实例属性 - 局部变量无法跨方法访问:
FindInteriorAngle中计算得到的interior是方法内的局部变量,Print方法无法直接读取 - 实例属性未正确引用:两个方法中用到的边数x、内角值interior都没有加
self.前缀,无法访问到实例存储的属性值
修正后完整代码
# 注:原类名HexagonInteriorAngle意为六边形内角,这里调整为更通用的类名,保留原类名也不影响运行 class PolygonInteriorAngle(object): def __init__(self, x): # 修正1:将传入的边数赋值给实例属性x self.x = x def FindInteriorAngle(self): # 修正2:用self.x读取实例边数,内角值存为实例属性self.interior degrees = int((self.x - 2) * 180) self.interior = int(degrees / self.x) def Print(self): # 修正3:所有属性访问加self.前缀 if self.x == 3: print(f"三角形的单个内角度数为 {self.interior}") elif self.x == 4: print(f"正方形的单个内角度数为 {self.interior}") elif self.x == 5: print(f"五边形的单个内角度数为 {self.interior}") elif self.x == 6: print(f"六边形的单个内角度数为 {self.interior}") elif self.x == 7: print(f"七边形的单个内角度数为 {self.interior}") elif self.x == 8: print(f"八边形的单个内角度数为 {self.interior}") elif self.x == 9: print(f"九边形的单个内角度数为 {self.interior}") elif self.x == 10: print(f"十边形的单个内角度数为 {self.interior}") else: print(f"{self.x}边形的单个内角度数为 {self.interior}") if __name__ == "__main__": x = int(input("请输入多边形边数:")) polyObj = PolygonInteriorAngle(x) polyObj.FindInteriorAngle() polyObj.Print()
测试效果
输入6时输出为:六边形的单个内角度数为 120,和你给出的计算示例完全一致。
内容的提问来源于stack exchange,提问作者hithit
相关产品推荐
相关产品推荐

