Funciones y módulos en Python
Anuncio:
Seguimos con el lenguaje de programación Python en este ‘curso’ por posts. Hoy vamos a ver funciones y módulos, para ver alguna de las entradas anteriores, os dejamos los links:
Empecemos…
Qué es una función
Vendría a ser una sección de código reutilizable, con una tarea específica en un programa, deberíamos separar el código en funciones porque nos permite depurar errores más facilmente y podemos reutilizar el código.
Cuando veamos los objetos, veamos la importancia que tienen las funciones o ‘metodos’.
Bien, seguro que os resulta algo familiar ya que en entradas anteriores vimos la aplicación de algunas funciones para cadenas, como ‘lower()’, ‘upper()’, ‘str()’…
Vayamos al grano
Definiendo funciones
Recuerda, para ejecutar un archivo ‘script .py’ debemos ejecutar en consola
python3 script.py
def funcion():
print("Esta es mi primera funcion")
funcion()
Fácil, ¿Verdad?, primero declaramos nuestra función y después la llamamos en otra parte de nuestro script.
Pero una función sin argumentos es como un jardín sin flores, ¿no?:
def funcion(cadena):
print(cadena)
funcion("Imprimiendo una cadena")
También podemos llamar a unas funciones dentro de otras, por ejemplo, una función que comprueba si un número es divisible por 2, y en ese caso, muestra su cuadrado:
def divisiblePor2(n):
if(n % 2 == 0):
print ("El cuadrado del número es ", cuadrado(n))
return True
else:
print ("No es divisible por 2");
return False
def cuadrado(n):
return n**2
porTres(9)
Argumentos múltiples
Una apunte importante es que a veces no sabemos cuantos parámetros debemos pasar a una función, para solucionar este problema tenemos los argumentos múltiples:
def muchosArgumentos(*args):
print ("Me han pasado los argumentos: " , args)
muchosArgumentos(1, 2 ,3)
Módulos
Un módulo es un archivo con funciones o código, el cual podemos utilizar para nuestros programas, ¿para qué reinventar la rueda, si ya la tenemos?
El ejemplo clásico de importación de modulos es ‘math’, si en nuestro código ejecutamos algo así:
print ("El seno de 360 es ", math.sin(360))
Nos aparecerá un error de que no se conoce la función ‘sin’, para solucionarlo, importaremos el módulo necesario:
import math
print ("El seno de 360 es ", math.sin(360))
Si no queremos importar el módulo completo, siempre podemos elegir una función específica, por ejemplo:
from math import sin
print ("El seno de 360 es ", sin(360))
Bien, la primera forma es algo tediosa ya que para llamar a las funciones hay que utilizar el nombre del módulo ‘math.sin()’, y la segunda, puede que se nos quede corta si tenemos que usar varias funciones del mismo módulo, así, podemos usar el siguiente método para importar las funciones sin tener que llamarlas anteponiendo el nombre del módulo:
from math import *
print ("El seno de 360 es ", sin(360))
Como comentario, hay que tener en cuenta que este método puede ser problemático a la hora de tener funciones con el mismo nombre, o hacer varias importaciones de módulos los cuales tienen funciones con igual nombre, podríamos tener una función duplicada, así que debemos tener cuidado con eso.
Si queremos saber qué funciones tenemos disponibles dentro de un módulo, podemos usar el siguiente código:
import math
print (dir(math))
Algunas funciones interesantes
Tenemos a nuestra disposición varias funciones interesantes, sin necesidad de importar módulos, estas son:
max()
Devuelve el máximo de una serie de parámetros:
def maximo(*args):
return max(args)
print (maximo(3,2,1))
min()
Similar a la anterior pero con el mínimo:
def minimo(*args):
return min(args)
print (minimo(3,2,1))
abs()
Devuelve el valor absoluto de un número:
print (abs(-43))
type()
Devuelve el tipo de un argumento:
print (type("Esto es un string"))
Hasta aquí el apartado de funciones y módulos de este curso, espero que os sea de ayuda
HackSaludos!