No description has been provided for this image

Funciones I

Contenidos

  • Funciones
  • Ejemplo de programa con funciones

Funciones


Ventajas del uso de funciones

  • Permiten estructurar el programa en bloques funcionalmente independientes
  • Beneficios del uso de funciones:
    • Aislar mejor los problemas
    • Desarrollar programas mucho más fáciles de mantener
    • Reutilizar código entre distintos programas

Estructura de una función en Python

No description has been provided for this image

Ejemplo de uso de funciones

Cálculo de una potencia SIN funciones

In [1]:
base = int(input("Introduce la base: "))
exp = int(input("Introduce el exponente (>0): "))

while exp<=0:
    exp = int(input("Error en el rango. Introduce el número (>0): "))
pot = 1
n=1

while n<=exp:
    pot = pot * base
    n=n+1

print(f"{base} elevado a {exp} vale {pot}")
5 elevado a 3 vale 125

Cálculo de una potencia CON funciones

In [2]:
#Función que calcula la potencia
def calcula_potencia (base,exponente):
    potencia=1 
    n=1
    while n<=exponente:
        potencia=potencia*base
        n=n+1
    return potencia

#Programa principal (cálculo de una potencia)
base = int(input("Introduce la base: "))
exp = int(input("Introduce el exponente (>0): "))
while exp<=0:
    exp = int(input("Error en el rango. Introduce el número (>0): "))

pot = calcula_potencia(base, exp)
print(f"{base} elevado a {exp} vale {pot}")
5 elevado a 3 vale 125

Ejercicio de comprensión:

Qué ocurre si en el ejemplo anterior cambiamos el último print
   print(f"{base} elevado a {exp} vale {pot}")
por
   print(f"{base} elevado a {exp} vale {potencia}")

Si no tienes clara la respuesta, ejecuta las siguientes celdas de código y analiza el resultado:

In [3]:
print(f"{base} elevado a {exp} vale {pot}")
5 elevado a 3 vale 125
In [4]:
print(f"{base} elevado a {exp} vale {potencia}")
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[4], line 1
----> 1 print(f"{base} elevado a {exp} vale {potencia}")

NameError: name 'potencia' is not defined

¿Porqué no muestran lo mismo? ¿Qué ocurre en el segundo print?

Ejemplo de programa con funciones


Función 1

Función que no recibe argumentos y devuelve dos valores
In [ ]:
#función que pide por teclado base y exponente
def entrada_datos():
    base = int(input("Introduce la base: "))
    exponente = int(input("Introduce el exponente (>0): "))
    while exponente<=0:
        exponente= int(input("Error en el rango. Introduce el número (>0): "))
    return base, exponente

Función 2

Función que recibe 2 argumentos y devuelve un valor
In [ ]:
#función que calcula la potencia 
def calcula_potencia (base,exp):
    potencia=1 
    n=1
    while n<=exp:
         potencia=potencia*base
         n=n+1
    return potencia

Bloque principal del programa

Programa principal desde el que llamamos a las funciones.
In [ ]:
base, exp = entrada_datos()
pot = calcula_potencia (base, exp)
print(f"{base} elevado a {exp} vale {pot}")

Programa completo

In [ ]:
#función que pide por teclado base y exponente
def entrada_datos():
    base = int(input("Introduce la base: "))
    exponente = int(input("Introduce el exponente (>0): "))
    while exponente<=0:
        exponente= int(input("Error en el rango. Introduce el número (>0): "))
    return base, exponente

#función que calcula la potencia 
def calcula_potencia (base,exp):
    potencia=1 
    n=1
    while n<=exp:
         potencia=potencia*base
         n=n+1
    return potencia
    
base, exp = entrada_datos()
pot = calcula_potencia (base, exp)
print(f"{base} elevado a {exp} vale {pot}")