首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中使用类和打印函数进行打印

如何在Python中使用类和打印函数进行打印
EN

Stack Overflow用户
提问于 2021-10-29 01:33:20
回答 2查看 72关注 0票数 0
代码语言:javascript
复制
class HexagonInteriorAngle(object):
    def __init__(self, x):
        self.x = self
    
    def FindInteriorAngle(self):
        degrees = int((x - 2) * 180)
        interior = int(degrees / x)
    
    def Print(self):
        if x == 3:
            print(str("an interior angle of a triangle equals " + str(interior)))
        elif x == 4:
            print("an interior angle of an equilateral equals " + str(interior))
        elif x == 5:
            print("an interior angle of a pentagon equals " + str(interior))
        elif x == 6:
            print("an interior angle of a hexagon equals " + str(interior))
        elif x == 7:
            print("an interior angle of a heptagon equals " + str(interior))
        elif x == 8:
            print("an interior angle of an octagon equals " + str(interior))
        elif x == 9:
            print("an interior angle of a nonagon equals " + str(interior))
        elif x == 10:
            print("an interior angle of a decagon equals " + str(interior))
        else:
            print(str(interior))

if __name__ == "__main__":
    x = int(input("enter: "))
    hexaObj = HexagonInteriorAngle(x)
    hexaObj.FindInteriorAngle()
    hexaObj.Print()

我希望程序所做的是根据边的数量来确定它是什么类型的多边形(例如,6边=六边形,5边=五边形,等等),然后打印该多边形的一个内角(计算内角的公式:(边数- 2) x 180,然后取该答案,然后除以边数)。示例:六边形。(6-2)x 180 = 720 720 /6= 120

现在,我非常确定实际的代码部分是正确的,因为如果这样做,它可以很好地打印出来:

代码语言:javascript
复制
class HexagonInteriorAngle(object):
    def __init__(self, x):
        self.x = self
    
    def FindInteriorAngle(self):
        degrees = int((x - 2) * 180)
        interior = int(degrees / x)
        print("interior angle " + str(interior))

if __name__ == "__main__":
    x = int(input("enter: "))
    hexaObj = HexagonInteriorAngle(x)
    hexaObj.FindInteriorAngle()
EN

回答 2

Stack Overflow用户

发布于 2021-10-29 01:38:22

您应该这样做:

代码语言:javascript
复制
def FindInteriorAngle(self):
   degrees = int((x - 2) * 180)
   interior = int(degrees / x)
   return interior
   
# ...
if __name__ == "__main__":
    x = int(input("enter: "))
    hexaObj = HexagonInteriorAngle(x)
    interior = hexaObj.FindInteriorAngle()
    print("interior angle " + str(interior))
票数 0
EN

Stack Overflow用户

发布于 2021-10-29 01:44:26

几乎与你的答案无关,我们可以使用一些property字段来清理你的代码。使用__str__而不是Print方法也更加惯用。

代码语言:javascript
复制
class Polygon:
    shapes = [
        None,    # index 0
        None,    # index 1
        "line",  # index 2, etc...
        "triangle",
        "rectangle",
        "pentagon",
        "hexagon",
        "heptagon",
        "octogon",
        "nonagon",
        "decagon",
    ]
    def __init__(self, sides):
        if not 2 <= sides <= 10:
            raise ValueError("Polygon only supports shapes with sides 2-10")
        self.sides = sides

    @property
    def shape(self):
        return self.shapes[self.sides]

    @property
    def interior_angle(self):
        return (self.sides - 2) * 180 / self.sides

    def __str__(self):
        return f"The interior angle of a {self.shape} is {self.interior_angle}"

if __name__ == "__main__":
    poly = Polygon(3)
    print(poly)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69762652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档