Reputation: 2541
I'm suppose to find the perimeter of a triangle using a class
and a main()
function. I just need to somehow make the inputs equal the parameters in the class. I'm not sure how to do this.
Here is the code so far:
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()
So basically how do I make the perimeter equal the inputs.
self.__side1 = side1
self.__side2 = side2
self.__side3 = side3
For example lets say I input
side1 = 4
side2 = 5
side3 = 2
Then the perimeter should be 11
Upvotes: 1
Views: 155
Reputation: 62928
Like this:
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()
Note that you have to convert the inputs to integers, or you'll get '4' + '5' + '2' = '452'
:
t1 = Triangle(int(side1), int(side2), int(side3))
PS: The __str__
method can be simplified by using string formatting:
return "side1: {} side2: {} side3: {}".format(self.__side1, self.__side2, self.__side3)
And further if you didn't use name-mangled quasi-private attributes:
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)
Upvotes: 2
Reputation: 44634
def __init__(self, side1, side2, side3):
self.side1 = side1
self.side2 = side2
self.side3 = side3
Then it's called like this:
t = Triangle(3, 4, 5) # send in the side lengths
Upvotes: 0