TAGS :Viewed: 4 - Published at: a few seconds ago

[ 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:

enter image description here

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