繁体   English   中英

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

[英]How to print in Python using class and print function

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

现在我很确定实际的代码部分是正确的,因为如果你这样做,它打印得很好:

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()

你应该做这个:

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))

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

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM