Python TypeError: ‘int’ object is not callable

publicado por: user71043

Ayuda por qué me sale ese error

# -*- coding: cp1252 -*-
    import math
    a = input("Ingrese a ")
    b = input("Ingrese a ")
    c = input("Ingrese a ")
    s = (a+b+c)/2
    if a+b >= c:
        raiz = math.sqrt(s(s-a)*(s-b)*(s-c))
        print raiz
    else:
        print "El triángulo no es posible"

solución

Para empezar la entrada debe ser un entero (int) no una cadena (str), python por defecto maneja solo el ‘input’ como ‘str’ o cadena.
Ahora bien teniendo a la ecuación s=(a+b+c)/2 (debes tener en cuenta que esto es un float)

math.sqrt(s(s-a)*(s-b)*(s-c))

Aqui debes recordar que todas las variables deben ser un numero ya sea float o int.

s(s-a)

Aqui es el error, porque como lo mencione todo es un entero, y aqui es como si lo manejaras como una función o clase, te marca que no es ‘suscriptable’ puesto que los enteros no se manejan de es forma, si lo que querias era que se multiplicara debias escribirlo asi.

s*(s-a)

Aquí te mando el código modificado.

# -*- coding: cp1252 -*-
import math
a = int(input("Ingrese a "))
b = int(input("Ingrese a "))
c = int(input("Ingrese a "))
s = (a+b+c)/2
print(s)
if a+b >= c:
    raiz = math.sqrt(s*(s-a)*(s-b)*(s-c))
    print (raiz)
else:
    print ("El triángulo no es posible")
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *