![No description has been provided for this image](notebooks-img/udc.png)
Funciones I
Contenidos
Estructura de una función en Python
![No description has been provided for this image](notebooks-img/funcion_detalle.png)
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?
Función 1
Función que no recibe argumentos y devuelve dos valoresIn [ ]:
#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 valorIn [ ]:
#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}")