Haciendo cosas grandes con poco: Funciones

En el artículo Software libre: no es un concepto, es una actitud se comentaba que cuándo fuéramos a abordar un problema, pensáramos primero si ya estaba resuelto este problema antes en Internet. En este artículo vamos a hacer algo práctico y útil, vamos a abordar un problema real y vamos a ver que juntando las piezas de funciones que han desarrollado terceras personas, podremos hacer algo interesante que nos valga para la vida real. Pero primero es lo primero. ¿Qué son las funciones?

Una función es un trozo de código que vamos a englobar para poder llamarlo cuando queramos. Es decir, que si vemos que estamos repitiendo el mismo código es de buen programador evitarlo. Veamos un ejemplo:

Supongamos que el algoritmo que nos piden es pedir un número al usuario y decirle si es par o impar. Y vemos que en otra ocasión volvemos a necesitar esa misma funcionalidad de ver si el número es par o impar y otra vez. Vemos que al final ese código de comprobar si un número es par tendría que estar repitiéndose varias veces, así que vamos a hacer una función que dado un número nos diga si es par o no:

def es_par(num):
    if num % 2 == 0:
        return True
    else: 
        return False
Se define una función poniendo "def" seguido del nombre de la función, y entre paréntesis los parámetros que va a recibir la función, es decir, los datos que recibe. Hay que hacer return para decir qué va a devolver la función. Si lo pensáis fríamente, un algoritmo al final va a estar compuesto de varias funciones que hacen cosas, y es que el código de la vida real suele estar hecho así. No es normal ver un montón de código apelotonado, si no el uso de muchas funciones, porque eso permite leer mejor el código. Veámoslo como quedaría:

n = input("Dime un numero:")
if (es_par(int(n))):
    print("Es par!!")
else:
    print("no es par :(")

Esto es muy fácil de leer, casi se lee solo: si es_par entonces mostrar por pantalla "es par", sino mostrar "no es par". Sin pararnos a detener lo que hace la función, el uso de ella es trivial, solo tengo que poner el nombre con el que le ha definido(es_par), y entre paréntesis pasarle el parámetro que recibe. Un parámetro, son datos que recibe una función. En el fondo es parecido a la definición de un algoritmo, y es que en el fondo no se hacen algoritmos sin más, sino que suelen englobarse en funciones para que otros usuarios las puedan usar, y esto va muy ligado a lo que decíamos antes. En este caso si fuera una función que pudiera interesar a otros, podríamos publicar la función para que otros puedan utilizarla. Y ahora como sé que os habéis quedado con la intriga de qué hace la función, os lo cuento porque no tiene mucha complicación. El "%" es un operador, igual que tenemos "+" o "-", y nos devuelve el resto de la operación división. Por tanto, si el resto de una división por 2, nos da 0, significa que es 0, es una manera de saberlo. Teniendo una visión global de todo esto, vemos como al final nosotros estamos usando funciones, porque input es una función que nos da Python para leer lo que dice el usuario, print es una función que dada una cadena que le pasamos por parámetro nos muestra por pantalla. Al final la programación es usando otras funciones que otros han hecho, construyo yo las funciones que necesito, y a su vez podrían servir para otras personas, y esta cadena maravilla es la programación.

No hay comentarios:

Publicar un comentario

Semana 10 · Del 10/04/19 al 10/04/19

Hoy ha sido mi último día en el centro y en la primera hora he estado terminando el practicum en la sala de profesores, y después hemos teni...