Ver índice de contenidos del libro

3.2. Imprimir versus Devolver

A continuación se define una función print_asegundos (horas, minutos, segundos) con tres parámetros (horas, minutos y segundos) que imprime por pantalla la transformación a segundos de una medida de tiempo expresada en horas, minutos y segundos:

def print_asegundos (horas, minutos, segundos):
    """ Transforma en segundos una medida de tiempo expresada en
        horas, minutos y segundos """
    segsal = 3600 * horas + 60 * minutos + segundos # regla de transformación 
    print "Son", segsal, "segundos"

Para ver si realmente funciona, podemos ejecutar la función de la siguiente forma:

>>> print_asegundos (1, 10, 10)
Son 4210 segundos

Contar con funciones es de gran utilidad, ya que nos permite ir armando una biblioteca de instrucciones con problemas que vamos resolviendo, y que se pueden reutilizar en la resolución de nuevos problemas (como partes de un problema más grande, por ejemplo) tal como lo sugiere Thompson en "How to program it".

Sin embargo, más útil que tener una biblioteca donde los resultados se imprimen por pantalla, es contar con una biblioteca donde los resultados se devuelven, para que la gente que usa esas funciones manipule esos resultados a voluntad: los imprima, los use para realizar cálculos más complejos, etc.

def calc_asegundos (horas, minutos, segundos):
    """ Transforma en segundos una medida de tiempo expresada en
        horas, minutos y segundos """
    segsal = 3600 * horas + 60 * minutos + segundos # regla de transformacion 
    return segsal

De esta forma, es posible realizar distintas operaciones con el valor obtenido luego de hacer la cuenta:

>>> print calc_asegundos (1, 10, 10)
4210
>>> print "Son", calc_asegundos (1, 10, 10), "segundos" Son 4210 segundos
>>> y = calc_asegundos(1, 10, 10)
>>> z = calc_asegundos(2, 20, 20)
>>> y+z
12630

Ejercicio 3.1. Escribir una función repite_hola que reciba como parámetro un número entero n y escriba por pantalla el mensaje "Hola" n veces. Invocarla con distintos valores de n.

Ejercicio 3.2. Escribir otra función repite_hola que reciba como parámetro un número entero n y retorne la cadena formada por n concatenaciones de "Hola". Invocarla con distintos valores de n.

Ejercicio 3.3. Escribir una función repite_saludo que reciba como parámetro un número entero n y una cadena saludo y escriba por pantalla el valor de saludo n veces. Invocarla con distintos valores de n y de saludo.

Ejercicio 3.4. Escribir otra función repite_saludo que reciba como parámetro un número entero n y una cadena saludo retorne el valor de n concatenaciones de saludo. Invocarla con distintos valores de n y de saludo.

Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano, Nicolás Paez. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.