[ Module code not running correctly ]
I am trying to write some code to display the area of three sides, which the user selects. If the input is incorrect, I need to display "Input is invalid". My code will not compute the area correctly or display "Input is invalid", when the input is incorrect. I could really use the help. Here is a picture of what I need done:
This is the code I have:
side1, side2, side3 = eval(input("Enter three sides in a double: "))
def isValid(side1, side2, side3):
if side1 + side2 > side3 and side1 + side3 > side2 and side2 + side3 > side1:
return True
else:
return None
def area(side1, side2, side3):
s = (side1 + side2 + side3) / 2;
totalArea = (s * (s - side1) * (s - side2) * (s - side3)) ** 0.5
return totalArea
def main():
condition = isValid(side1, side2, side3)
totalArea = area(side1, side2, side3)
if True:
print("The area of the triangle is " + str(totalArea))
else:
print("input is invalid")
main()
Answer 1
Don't say if True
because then it will always happen. Instead, say if condition
. Also, in isValid()
, you can just return the results of your check:
return side1 + side2 > side3 and side1 + side3 > side2 and side2 + side3 > side1
Your full code should look like this:
side1, side2, side3 = eval(input("Enter three sides in a double: "))
def isValid(side1, side2, side3):
return side1 + side2 > side3 and side1 + side3 > side2 and side2 + side3 > side1
def area(side1, side2, side3):
s = (side1 + side2 + side3) / 2;
totalArea = (s * (s - side1) * (s - side2) * (s - side3)) ** 0.5
return totalArea
def main():
condition = isValid(side1, side2, side3)
totalArea = area(side1, side2, side3)
if condition:
print("The area of the triangle is " + str(totalArea))
else:
print("input is invalid")
main()