Algoritmos de Programación con Python

1.6. Construir programas y módulos

El interprete es muy útil para probar cosas, acceder a la ayuda, inspeccionar el lenguaje, etc, pero si escribimos nuestras funciones frente al cursor de Python como hasta ahora, perdemos todas las definiciones cuando salimos de Python. Para conservar los programas que vamos escribiendo, debemos usar algún editor de texto, y guardar el archivo con la extensión .py.

Por convención, la primera línea del archivo deberá contener:

#!/usr/bin/env python

Estas dos convenciones indican que se trata de un módulo o programa Python, es decir un archivo separado que deberá ser ejecutado por Python.

Nota Python es un lenguaje multiplataforma, esto quiere decir, que está pensado para que pueda utilizarse en una gran variedad de sistemas operativos (Windows, Mac, Linux, etc).

Las dos convenciones mencionadas le permiten a distintos sistemas darse cuenta que este archivo en particular lo tiene que procesar con Python. En particular, Windows, tradicionalmente, sólo se fija en la extensión del archivo para saber cómo procesarlo (por eso el .py), mientras que todos los sistemas derivados de Unix (OS X, Linux, Solaris, etc) analizan los permisos del archivo (en particular, el permiso de ejecución) y los primeros caracteres, para saber como procesarlos (por ello es necesario incluir esa primera línea mágica).

Problema 1.6.1. Escribir en Python un programa que haga lo siguiente:

  • Muestra un mensaje de bienvenida por pantalla.
  • Le pide al usuario que introduzca dos números enteros n1 y n2.
  • Imprime el cuadrado de todos los números enteros del intervalo [n1, n2)
  • Muestra un mensaje de despedida por pantalla.

Solución. Para la resolución del problema escribiremos nuestro primer módulo de Python, que guardaremos en el archivo cuad.py. El código de este programa es el siguiente:

#!/usr/bin/env python
""" Un programa sencillo, para calcular cuadrados
de números """

def main():
    print "Se calcularán cuadrados de números"

    n1 = input("Ingrese un número entero: ")
    n2 = input("Ingrese otro número entero: ")

    for x in range(n1, n2):
        print x*x

    print "Es todo por ahora" 15

main()

Para ejecutar este módulo, podemos iniciar Python y luego importarlo. Lo ejecutaremos con valores 5 y 8 de la siguiente manera:

>>> import cuad
Se calcularán cuadrados de números
Ingrese un número entero: 5
Ingrese otro número entero: 8
25
36
49
Es todo por ahora
>>>

La orden import cuad le indica a Python que debe traer a la memoria el módulo cuad.py, tal como lo habíamos guardado, y ejecutar su contenido. Al hacer esto, suceden las siguientes operaciones:

  • Se carga en memoria la función main del módulo cuad (a la que se le asigna el nombre cuad.main), según la definición que está en el archivo, y
  • se inicia su ejecución inmediatamente, dado que luego de la definición se encuentra la invocación main().

Una vez importado el módulo, cuad.main queda en memoria, y se puede volver a invocar sin necesidad de importar nuevamente:

>>> cuad.main()
Se calcularán cuadrados de números
Ingrese un número entero: 3
Ingrese otro número entero: 5
9
16
Es todo por ahora
>>>

Por otro lado, habiendo cumplido con las convenciones nombradas anteriormente, es posible ejecutar el archivo como un programa normal, y el sistema se encargará de llamar a Python y darle nuestro archivo para que lo procese y ejecute.


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.