1

classと関数を使用して三角形の周囲を見つけるとしmain()ます。どういうわけか、入力をクラスのパラメーターと等しくする必要があります。これを行う方法がわかりません。

これまでのコードは次のとおりです。

class Triangle:
    def __init__(self):
        self.__side1 = 1.0
        self.__side2 = 1.0
        self.__side3 = 1.0
    def getPerimeter(self):
        return self.__side1+self.__side2+self.__side3
    def __str__(self):
        return "side1 : "+str(self.__side1)+" side2 : "+str(self.__side2)+" side3 : "+str(self.__side3)  

def main():
    side1 = input("Enter first side: ")
    side2 = input("Enter second side: ")
    side3 = input("Enter third side: ")
    t1 = Triangle()
    print("The Perimeter of Triangle : ",t1.getPerimeter())
    print(t1)

main()

基本的に、境界を入力と等しくするにはどうすればよいですか。

self.__side1 = side1
self.__side2 = side2
self.__side3 = side3

たとえば、私が入力したとしましょう

side1 = 4
side2 = 5
side3 = 2

次に、周囲は11

4

2 に答える 2

2

このような:

class Triangle:
    def __init__(self, a, b, c):
        self.__side1 = a
        self.__side2 = b
        self.__side3 = c

    def getPerimeter(self):
        return self.__side1 + self.__side2 + self.__side3

    def __str__(self):
        return "side1 : " + str(self.__side1) + " side2 : " + str(self.__side2) + " side3 : " + str(self.__side3)  

def main():
    side1 = input("Enter first side: ")
    side2 = input("Enter second side: ")
    side3 = input("Enter third side: ")
    t1 = Triangle(int(side1), int(side2), int(side3))
    print("The Perimeter of Triangle : ", t1.getPerimeter())
    print(t1)

main()

入力を整数に変換する必要があることに注意してください。そうしないと、次のようになります'4' + '5' + '2' = '452'

t1 = Triangle(int(side1), int(side2), int(side3))

 

PS:__str__文字列の書式設定を使用すると、メソッドを簡略化できます。

return "side1: {} side2: {} side3: {}".format(self.__side1, self.__side2, self.__side3) 

さらに、name-mangled quasi-private 属性を使用しなかった場合:

class Triangle:
    def __init__(self, a, b, c):
        self.side1 = a
        self.side2 = b
        self.side3 = c

    def getPerimeter(self):
        return self.side1 + self.side2 + self.side3

    def __str__(self):
        return "side1: {0.side1} side2: {0.side2} side3: {0.side3}".format(self) 
于 2013-04-04T12:32:07.977 に答える
0
def __init__(self, side1, side2, side3):
    self.side1 = side1
    self.side2 = side2
    self.side3 = side3

次に、次のように呼び出されます。

t = Triangle(3, 4, 5)  # send in the side lengths
于 2013-04-04T12:33:40.553 に答える