You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:45:02