
Jhon Sebastian Zuluaga Castañeda
Preguntacomo hago para que la función suma solo reciba a, b que sean numero?

Sebastián Andrade
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
Java * no llava xdd

Sebastián Andrade
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
sum(2,4) cuando ejecutas la funcion entre los parentesis le pasas los argumentos para que la corra