Funciones y como depurar (debbugin) en Spyder Anaconda:
- Publicado por: Rafael Fernandez
- Categoría: Blog Principiante Python
Entender el concepto de las funciones y aprender a usarlas
Saber depurar en Python con Spyder Anaconda
Funciones en Python
Una función no es más que un conjunto de líneas de código que realizan una tarea. Las funciones se utilizan para dividir un código en tareas más sencillas y por partes, de esta manera el código es más legible y fácil de entender. Todas las funciones empiezan por def nombre_funcion(parámetros):
Funciones simples en Python:
Esta función simple calcula el iva o impuesto de un producto:
def iva():
total=int( input('cuanto has gastado'))
num=int( input('que tipo de producto has comprado 1)leche 2)pan 3)alcohol 4)otros'))
if num==1:
iv=6
elif num==2:
iv=8
elif num==3:
iv=14
else:
iv=9
iva1=(total*iv/100)
print('el impuesto de ese producto es:')
print(iva1)
return iva1
iva()
print("Programa terminado")
Funciones con argumentos en Python:
Funciones con 2 argumentos:
Esta función de 2 argumentos calcula la media:
def calcula_media(x, y):
resultado = (x + y) / 2
return resultado
a = 3
b = 5
media = calcula_media(a, b)
print("La media es:")
print(media)
print("Programa terminado")
Funciones con argumento múltiples:
Esta función calcula la media de todos los argumentos que quieras:
def calcula_media(*args):
total = 0
for i in args:
total += i
resultado = total / len(args)
return resultado
a, b, c, d, e = 3, 5, 10, 15, 160
media = calcula_media(a, b, c, d, e)
print("La media es:")
print(media)
print("Programa terminado")
Funcion recursiva
Ya conocemos que las funciones pueden llamar a otras funciones, pero ¿que pasa si la función se llama a si misma? Pues lo que tenemos es una función recursiva. Ejemplo de función recursiva en Python:
def fun_fact(x):
if x==1:
return 1
else:
x=(x*fun_fact(x-1))
return x
num=10
print('El factorial de ', num, 'es ',fun_fact(num))
Compresión de listas e Iteradores
Vamos a realizar algunos ejemplos con listas para mejorar su compresión y para que podáis ver la flexibilidad del uso de las mismas. Ejemplo de listas e iteradores en python:
lista=[1,2,3,4,-2,5] lista2=[num for num in lista if num>0] print (lista) print (lista2)
Aquí podemos ver como también podemos hacer for anidados o también if como hicimos en el artículo de Sentencias IF y los bucles WHILE y FOR
Usando ‘iter’ y ‘next’
En el siguiente ejemplo podemos ver el uso de iter y next de manera simple:
# definimos una lista my_list = [4, 3, 8, 9] # añadimos el iterador a la lista my_iter = iter(my_list) # ahora podemos iterar con el commando next print(next(my_iter ))
Decoradores en Python
La función de un decorador en Python es añadir una funcionalidad nueva a una función. Ejemplo de un decorador haciendo una resta:
def decorador(funcion):
def funcionDecorada(*args, **kwargs):
print('Funcion ejecutada')
funcion(*args,**kwargs)
return funcionDecorada
def resta(n,m):
print (n-m)
decorador(resta)(5,2)
➡ Ahora ya puedes utilizar funciones en tus proyectos de Python,
aprende más con nuestro Curso de Python para Principiantes:
[…] Si has llegado hasta aquí enorabuena 🥉 pasa a la siguiente lección ➡ Compresión de listas e Iteradores y como depurar (debbugin) en spider Anaconda. […]
[…] son usados no solo en python sino por cualquier lenguaje de programación. Aprenderemos a depurar nuestros programas y a reconocer los típicos errores al ejecutar nuestros programas. La penúltima parte […]
[…] de la clase de Sentencias IF y los bucles WHILE y FOR en Python y Funciones y como depurar (debbugin) en Spyder Anaconda ahora vamos con 2 ejemplos sobre números primos. Si alguien no sabe lo que es un número primo y […]
Los primeros temas muy sencillos pero llegar a este punto y lo que viene siendo explicación hay poca… o te documentas por otro lado o es imposible comprender las funciones tal y como las explican. Decepcionante.
Gracias Luis por tu comentario. Intentaremos mejorar este post para que todo el mundo pueda entenderlo. Un saludo!
Estimado Luis, a mi parecer las explicaciones y detalle del código están bien, también es responsabilidad de nosotros el analizar, comprender y evaluar la información que nos proporcionan, desde esta perspectiva creo que el valor de tu aportación se traduce en que debemos de leer con mayor calma y en forma reflexiva la información. Saludos.
Totalmente de acuerdo, me he perdido nada más empezar, muy mal explicado
Gracias por comentar Juan estamos trabajando en ello. Creo que en 2 semanas estará listo este post de una forma mas clara.
Gracias por toda la info en este curso. Seria extraordinario, poder contar con ejercicios, para poner en práctica lo que se va aprendiendo y poder internalizarlo.
Concuerdo con Luis, creo que se pudiera explicar mejor el contenido, pero también queda de nuestra parte el análisis profundo del mismo. No pueden dar todo machacado a los aprendices también nos toca profundizar buscando más información en otra bibliografía
Estamos trabajando en ello. Saludos!
El tema de las funciones decoradas deben actualizarlo y ampliarlo mas, porque existe otra forma mucho mas clara y sencilla de trabajar con ese tipo de funciones.
Gracias por el consejo, trabajarmeos en ello. Saludos luismhs!