Razón Artificial

La ciencia y el arte de crear videojuegos

Curso Python V – Funciones del usuario

Escrito por adrigm el 25 de agosto de 2010 en Noticias, Programación | 1 Comentario.

Añadir funciones

Hasta ahora las funciones que hemos visto son funciones que ya están definidas, es decir, que alguien programó y nosotros usamos, pero es posible crear funciones propias que hagan lo que nosotros queramos, la definición de una función en la siguiente.

def NOMBRE (LISTA PARÁMETROS):
    SENTENCIAS

Donde def es la palabra reservada para declarar funciones, NOMBRE es el identificador de nuestra función y cumple las mismas reglas que las nombres de variables. LISTA PARÁMETROS son los datos que necesita nuestra función que puede ser ninguno, uno o varios. Por último SENTENCIAS es el código de nuestra función.

Veamos un ejemplo, supongamos que queremos una función que imprima una nueva linea, es decir, que haga un salto de línea. Podríamos hacer lo siguiente.

def nueva_linea():
    print

La sentencia print si no se le pasa ningún parámetro simplemente deja una línea en blanco. Vamos a verlo.

def nueva_linea():
	print
	
print "Hola"
nueva_linea()
print "Mundo"

Obtenemos lo siguiente.

Hola

Mundo

El programa anterior es equivalente a escribir

print "Hola"
print
print "Mundo"

Ya que lo que hace es sustituir el nombre de nuestra función por su contenido, pero supongamos que queremos dejar 3 líneas en blanco. Podríamos hacerlo así

print "Hola"
print
print
print
print "Mundo"

Pero si lo vas a usar muchas veces un salto de tres líneas, mejor definir una función que lo haga en una sola.

def tres_lineas():
    print
    print
    print

print "Hola"
tres_lineas()
print "Mundo"

O incluso podríamos usar nuestra función nueva línea para hacerlo.

def nueva_linea():
	print
	
def tres_lineas():
	nueva_linea()
	nueva_linea()
	nueva_linea()
	
print "Hola"
tres_lineas()
print "Mundo"

Vamos a hacer un recorrido de este programa, la primera sentencia imprime la palabra Hola. La segunda sentencia llama a la función tres_lineas() así que ahora se va a ejecutar su contenido, la primera línea de esta función es nueva_linea() así que se va a esta y ejecuta lo que hay dentro en este caso la sentencia print, cuando termina de ejecutar lo que hay dentro vuelve a donde lo dejó, es decir, sigue con la siguiente sentencia de tres_lineas() que vuelve a llamar a nueva_linea() y así hasta que termina, cuando no quedan mas sentencias en tres_lineas() vuelve a donde fue llamada, es decir, que sigue con la sentencia print “Mundo”.

Como ejercicio prueba a escribir una función que deje nueve líneas en blanco haciendo uso de tres_lineas().

Las funciones deben declararse antes de usarse, es decir, antes de poder usar tres_lineas() debe haber sido declarada en el programa, si se declara después dará error.

Parámetros

Como vimos al principio a las funciones se les puede pasar parámetros, de hecho las funciones que hemos visto en anteriores entregas recibían parámetros como id(). Los parámetros son datos que recibe nuestra función con los que puede trabajar. Veamos un ejemplo.

def saludar(nombre):
 print "Hola " + nombre

saludar("Adrian")
saludar("Pedro")

nos dará como salida:

Hola Adrian
Hola Pedro

Nuestra función recibe un parámetro llamado nombre que podemos usar dentro de nuestra función, en nuestro caso la unimos a la cadena “Hola ” y la imprimimos en pantalla.

Podemos hacer que nuestras funciones tengan más de un parámetro, puede tener tantos como queremos solo debemos separarlos por comas.

def imprime_suma(num1, num2):
    print num1 + num2

imprime_suma(5, 4)
imptime_suma(4.2, 7)

Como vemos nuestra función recibe dos parámetros e imprime el resultado de la suma.

Retorno de valores

Hasta ahora hemos visto funciones que hacen algo concreto como imprimir un mensaje en pantalla o la suma de dos números, pero ¿Y si queremos almacenar el resultado de la suma en una variable?

Para ello usaremos una nueva palabra reservada return. Se encarga de retornar un valor, veamos un ejemplo.

def suma(num1, num2):
    suma = num1 + num2
    return suma

Esto hace que la función devuelva el resultado de la suma, se podría poner en una sola sentencia, ahorrándonos la variable suma.

def suma(num1, num2):
    return num1 + num2

Ahora podríamos usarla de la siguiente manera.

mi_suma = suma(num1, num2)
print mi_suma

La función devolvería el valor de la sentencia return y con el podemos hacer lo que queramos, en nuestro caso almacenarlo en la variable mi_suma.

Una función puede tener más de una sentencia return, pero debes saber que cuando se alcanza una sentencia return la función termina de ejecutarse y devuelve el control al programa. Lo veremos mejor cuando estudiemos los condicionales.

Un Comentario en "Curso Python V – Funciones del usuario"

  1. Tuxo dice:

    Hola, excelente curso, felicidades.

    Una manera de escribir la función que deja líneas en blanco, sería esta:

    def n_lineas(n):
    a=(n+1)*”\n”
    return a

    print “1”, n_lineas(1), “2”

    que me vino a la mente al leer la parte de operaciones.

Deja un comentario