como hago para que la función suma solo reciba a, b que sean numero?

Jhon Sebastian Zuluaga Castañeda

Jhon Sebastian Zuluaga Castañeda

Pregunta
studenthace 3 años

como hago para que la función suma solo reciba a, b que sean numero?

4 respuestas
para escribir tu comentario
    Sebastián Andrade

    Sebastián Andrade

    studenthace 3 años

    La funcion que puse en el comentario tiene un error del que no me percaté :( aquí esta corregida

    def suma(a, b): if not (type(a) in {int, float} and type(b) in {int, float}): # Si a y b NO son ni enteros ni flotantes print('Solo acepto numeros') return a+b # Si el condiconal de arriba NO se cumplió (osea ambos parametros son numeros) entonces retorna la suma de los dos

    era un problemita con los parentesis del condicional

    Sebastián Andrade

    Sebastián Andrade

    studenthace 3 años

    Java * no llava xdd

    Sebastián Andrade

    Sebastián Andrade

    studenthace 3 años

    Hola, python no cuenta por defecto con tipado estatico (como java o c), por lo tanto con Python puro no puedes hacer que una funcion reciba solo numeros. Puedes hacer lo siguiente:

    def suma(a: int, b: int) -> int: return a + b

    sin embargo, esto solo es util cuando estas usando algunos frameworks (FastAPI por ejemplo). En pyton normal puedes escribir tu funcion asi como te lo comenté, pasarle 2 strings como parametros y Python no va a hacer absolutamente nada al respecto (solo las va a concatenar por el '+'). Si a fuerza quieres que sean numeros puedes hacer lo siguietne:

    def suma(a, b): if not (type(a) in {int, float}) and (type(b) in {int, float}): # Si a y b NO son ni enteros ni flotantes print('Solo acepto numeros') return a+b # Si el condiconal de arriba NO se cumplió (osea ambos parametros son numeros) entonces retorna la suma de los dos

    Pero por defecto no podrás encontrar lo que encuentras en otros lenguajes por ej llava, donde si que puedes definir tipos que el lenguaje mismo hará respetar:

    public class A{ public float suma(float a, float b){ return a + b; } }
    Rodrigo Andrés Moreno Pertúz

    Rodrigo Andrés Moreno Pertúz

    studenthace 3 años

    sum(2,4) cuando ejecutas la funcion entre los parentesis le pasas los argumentos para que la corra

Curso Básico de Python [Empieza Gratis]

Curso Básico de Python [Empieza Gratis]

Aprende a programar desde cero con el lenguaje de mayor crecimiento en el planeta: Python. Descubre qué es un algoritmo y cómo se construye uno. Domina las variables, funciones, estructuras de datos, los condicionales y ciclos.

Curso Básico de Python [Empieza Gratis]
Curso Básico de Python [Empieza Gratis]

Curso Básico de Python [Empieza Gratis]

Aprende a programar desde cero con el lenguaje de mayor crecimiento en el planeta: Python. Descubre qué es un algoritmo y cómo se construye uno. Domina las variables, funciones, estructuras de datos, los condicionales y ciclos.