Saltar la navegación

Funciones parametrizadas

Hagamos funciones que reciban valores

Las funciones son capaces de aceptar datos provenientes de la invocación. Dichos datos pueden modificar el comportamiento de la función, haciéndola más flexible y adaptable a condiciones cambiantes.

Ejemplo:

def hola(nombre): # definiendo una función
  print("Hola,", nombre) # cuerpo de la función

nombre = input("Ingresa tu nombre: ")
hola(nombre) # invocación de la función

Un parámetro es una variable, pero existen dos factores que hacen a un parámetro diferente:

Los parámetros sólo existen dentro de las funciones en donde han sido definidos, y el único lugar donde un parámetro puede ser definido es entre los paréntesis después del nombre de la función, donde se encuentra la palabra reservada def. La asignación de un valor a un parámetro de una función se hace en el momento en que la función se manda llamar o se invoca, especificando el argumento correspondiente.

Es posible tener una variable con el mismo nombre del parámetro de la función:

def mes(num):
  print("Ingresa un número:", num)

num=1234
mes(1)
print(num)

El parámetro llamado num es una entidad completamente diferente de la variable llamada num.

Una función puede tener tantos parámetros como se desee, pero entre más parámetros, es más difícil memorizar su rol y propósito. Ejemplo:

def mensj(que, num):
  print("Ingresa", que, "número", num)

mensj("teléfono", 11)
mensj("precio", 5)
mensj("casa", "doce")


Ejemplo, de una lista de números, presentar los que sean primos usando funciones. 

def es_primo(num):
  if num==1 or num==2:
    return False
  for j in range(num-2):
    x=num%(j+2)
    if x==0:
      return False
  return True

for i in range(1, 20):
  if es_primo(i + 1):
    print(f"{i + 1} es primo ")

Ejemplo de función que calcule el factorial de un número recibido por la misma. La función devuelve el resultado del factorial. 

def fact(n):
  if n<0:
    return "ERROR"
  if n==0 or n==1:
    return 1
  for i in range(1,n):
    n=n*i
  return n

n=int(input("Dame le dato para calcular su factorial "))
print(n,"factorial es:",fact(n))


Una función puede invocar otras funciones o incluso a sí misma. Cuando una función se invoca a sí misma, se le conoce como recursividad, y la función que se invoca a sí misma y contiene una condición de terminación (la cual le dice a la función que ya no siga invocándose a sí misma) es llamada una función recursiva.

# Implementación recursiva de la función factorial.
def factorial(n):
  if n == 1: # El caso base (condición de terminación).
    return 1
  else:
    return n * factorial(n - 1)
print(factorial(4)) # 4 * 3 * 2 * 1 = 24

Se recomienda ver el siguiente material para fortalecer el aprendizaje:

 

Creado con eXeLearning (Ventana nueva)