Podemos codificar empleando programación lineal, estructurada y orientada a objetos (tengamos en cuenta que esta última es la que se ha impuesto en la actualidad).
Se cuenta con intérpretes de Python en múltiples plataformas: Windows, Linux, Mac etc. Se pueden desarrollar aplicaciones de escritorio como aplicaciones web. Empresas como Google, Yahoo, Nasa etc. utilizan este lenguaje para sus desarrollos (actualmente el creador de Python Guido van Rossum trabaja para Google.)
Se puede ejecutar instrucciones de Python desde la línea de comando o creando archivos con extensión *.py. Cuando uno comienza a aprender este lenguaje la línea de comandos nos provee una retroalimentación del resultado en forma inmediata.
El objetivo de este tutorial es presentar en forma progresiva los conceptos fundamentales de este lenguaje y poder analizar los problemas resueltos y codificar los problemas propuestos en este mismo sitio, sin tener que instalar en un principio el Python en su equipo (o luego de instalado poder avanzar con el tutorial en cualquier máquina conectada a internet).
Cuando nuestra aplicación genera un error que Python no puede resolver podemos disponer un código que se ejecute para dichas situaciones.
Errores como tratar de abrir un archivo que no existe, acceder a un elemento de una lista que no existe, dividir por cero etc. genera un error que hace que nuestro programa se detenga y no continúe su ejecución. Pero con Python podemos preveer estas situaciones y definir un algoritmo que se ejecutará exepcionalmente cuando ocurra dicho error.
Si ejecutamos el siguiente código el programa se detendrá informándonos que se produjo un error y no puede continuar:
x=10/y
print 'esta linea nunca se ejecuta'
try:
x=10/y
except ZeroDivisionError:
print 'No existe la division por cero'
print 'Esta linea si se ejecuta'
Si se produce la excepción se ejecutan las instrucciones que dispongamos en las líneas siguientes al except.
Cuando se captura una excepción el programa no se detiene y continua con las intrucciones siguientes al bloque try/except.
Veamos otro ejemplo de intentar acceder a un elemento que no existe en una lista:
try:
print lista1[5]
except IndexError:
print 'Intenta acceder a un elemento no existente a la lista'
Un tema de aplicación muy común donde se utilizan las excepciones es con el tratamiento de archivos, hay muchas situaciones que pueden generar excepciones en estos casos como puede ser que no se pueda abrir un archivo porque no existe, no lo pueda crear porque la unidad de amacenamiento está llena, el archivo se encuentra bloqueado por otro programa etc.
El código para crear, grabar y leer un archivo capturando las excepciones queda de la siguiente manera:
try:
archi=open('datos.txt','w')
archi.close()
except IOError:
print 'No se pudo crear el archivo'
def grabartxt():
try:
archi=open('datos.txt','a')
archi.write('Linea 1\n')
archi.write('Linea 2\n')
archi.write('Linea 3\n')
archi.close()
except IOError:
print 'No se pudo abrir el archivo'
def leertxt():
try:
archi=open('noexiste.txt','r')
linea=archi.readline()
while linea!="":
print linea
linea=archi.readline()
archi.close()
except IOError:
print 'El archivo no existe'
creartxt()
grabartxt()
leertxt()
Podemos disponer varios capturas de excepciones para un bloque try:
try:
print lista1[0]
z=10/0
except IndexError:
print 'Intenta acceder a un elemento no existente a la lista'
except ZeroDivisionError:
print 'Division por cero no permitida'
Si no queremos tratar los errores en forma independiente podemos agrupar excepciones:
try:
print lista1[0]
z=10/0
except (IndexError,ZeroDivisionError):
print 'Se produjo un error'
Otra parte opcional de un bloque try es la del else. Este bloque se ejecuta si no se produce la excepción:
try:
print lista1[0]
z=10/5
except (IndexError,ZeroDivisionError):
print 'Se produjo un error'
else:
print z
Podemos tratar de imprimir una componente que no exista de la lista y veremos que no se ejecuta el bloque del else.
Hemos visto que podemos capturar distintas excepciones en forma independiente:
print 'Intenta acceder a un elemento no existente a la lista'
except ZeroDivisionError:
print 'Division por cero no permitida'
print 'Se produjo un error'
try:
print lista1[0]
z=10/0
except:
print 'Se produjo un error'
finally permite disponer un bloque de código que se ejecutará siempre, indistintamente se produzca o no la excepción. El objetivo de esta sección es generalmente utilizado para liberar recursos como puede ser cerrar la conexión con una base de datos o cerrar un archivo.
z=10/0
print 'Esto no se ejecuta'
except:
print 'Se produjo un error'
finally:
print 'Siempre se ejecuta'
Actualmente nos suministra 500 MB para el almacenamiento de nuestras páginas y base de datos, todo esto en forma gratuita.
- El primer paso es registrarnos en Google para obtener una cuenta y esto lo podemos hacer desde aquí
- Si tarda un poco la asignación de la cuenta no es tan importante ya que todo el desarrollo lo hacemos en forma local en nuestro equipo. Finalizado el proyecto lo debemos cargar en los servidores de Google.
Para trabajar en forma local debemos tener instalado el lenguaje Python en su versión 2.5 o superior.
También tenemos que tener instalado el kid de desarrollo que nos provee Google y ejecuta nuestra aplicación en forma local, podemos descargar la última actualización del mismo desde aquí.
Ya tenemos todo para comenzar a experimentar con Python y el framework que nos provee Google para el desarrollo de aplicaciones web.
Si ya dispone la cuenta suministrada por Google desde el panel de administración podemos crear una aplicación presionando el botón "Create an Application".
Debemos seleccionar un nombre para nuestra aplicación que correrá como un subdominio de appspot.com, como podrán comprobar muchos de los nombres más comunes ya han sido tomados por otros usuarios.
Seleccionado un nombre disponible (podemos comprobar disponibilidad presionando el botón "Check Availability") asignamos un título y aceptamos los términos del servicio. Ya estamos en condiciones de subir nuestra aplicación (tengamos en cuenta que todavía no hemos desarrollado ni el 'Hola Mundo').
Hola mundo con Google App Engine.
Primero debemos crear un directorio donde se instaló el Google App Engine, normalmente en: c:\Archivo de programa\Google\google_appengine\
Este nombre debe coincidir con el que obtuvimos desde el panel de control de nuestra cuenta de Google App Engine (yo tomaré como nombre tutorialya)
Para utilizar los servidores de Google deberemos crear un archivo de configuración llamado app.yaml y que deberemos localizar en el directorio que acabamos de crear.
El archivo app.yaml tiene una estructura similar a:
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: tutorialya.py
Ahora que tenemos nuestro directorio donde se alojará nuestro sitio en forma local y el archivo de configuración app.yaml debemos crear el archivo Python principal y lo llamaremos igual que el nombre de la carpeta y con extensión *.py y debe coincidir con la propiedad script del archivo app.yaml (en mi caso yo lo llamé tutorialya.py).
Para codificar nuestra aplicación Google creó un framework propio llamado webapp y que se instala automáticamente con nuestra aplicación.
Luego nuestra aplicación mínima utilizando dicho framework es:
from google.appengine.ext import webapp
class HolaMundo(webapp.RequestHandler):
def get(self):
self.response.out.write('<html><head></head>')
self.response.out.write('<body>')
self.response.out.write('<h1>Hola Mundo</h1>')
self.response.out.write('</body>')
def main():
application = webapp.WSGIApplication([('/', HolaMundo)],
debug=True)
wsgiref.handlers.CGIHandler().run(application)
if __name__ == '__main__':
main()
Ya tenemos codificado el archivo *.yaml y *.py, ahora queda iniciar nuestro servidor y peticionar la página.
Como servidor web no utilizaremos el Apache, sino un servidor creado con Python que viene incluido con el Google App Engine. Para activar este servidor debemos ir a la línea de comandos de nuestro sistema operativo hasta la carpeta (c:\Archivo de programa\Google\google_appengine\) y desde allí arrancar el servidor indicando el nombre de nuestra aplicación:
Si tenemos correctamente creado el archivo *.yaml deberá mostrar un mensaje que el servidor web está esperando peticiones en el puerto 8080. Luego desde el navegador debemos llamar nuestra aplicación con la siguiente sintaxis:
0 comments:
No insertes enlaces clicables, de lo contrario se eliminará el comentario. Si quieres ser advertido via email de los nuevos comentarios marca la casilla "Notificarme". Si te ayudé con la publicación o con las respuestas a los comentarios, compártelo en Facebook, Twitter, Tumblr, Google +, Pinterest o Instagram. Gracias.