Hoy me encontré este mail en la red =), definitivamente, me gusta python…

Subject: Python versus Perl: A humorous look
From: funkster@midwinter.com
To: guido@cnri.reston.va.us
Date: 10 Jul 1999 01:45:07 -0700

This has been percolating in the back of my mind for a while. It's
a scene from _The Empire Strikes Back_ reinterpreted to serve a
valuable moral lesson for aspiring programmers.

--
EXTERIOR: DAGOBAH -- DAY
With Yoda strapped to his back, Luke climbs up one of the
many thick vines that grow in the swamp until he reaches the
Dagobah statistics lab. Panting heavily, he continues his
exercises -- grepping, installing new packages, logging in as
root, and writing replacements for two-year-old shell scripts
in Python.

YODA: Code! Yes. A programmer's strength flows from code maintainability.
But beware of Perl. Terse syntax... more than one way to do it...
default variables. The dark side of code maintainability are they.
Easily they flow, quick to join you when code you write. If once
you start down the dark path, forever will it dominate your destiny,
consume you it will.

LUKE: Is Perl better than Python?

YODA: No... no... no. Quicker, easier, more seductive.

LUKE: But how will I know why Python is better than Perl?

YODA: You will know. When your code you try to read six months from
now.
------
larry

Ya estoy harto de estar desvelandome todos los días, son las 2:45am y tengo que entregar un analizador sintáctico a las 9am y presentar un exámen a las 10am.

Pero bueno encontré algo fantástico en [el más fantástico aún] python, un módulo llamado pyparsing, el cual es una biblioteca de funciones extremadamente potente, me encantó esta herramienta, pero bueno hagamos el archi requete famosísimo “Hola, Mundo!”:

#importamos el modulo
from pyparsing import *
saludo= Word(alphas) + ‘,’ + Word(alphas) + ‘!’
#Aqui decimos que la gramatica “saludo” DEBE contener una palabra compuesta de caracteres alfanumericos (Word(alphas)) mas una ‘,’ mas otra palabra alfanumerica, mas ‘,’ y esos seian nuestros tokens
tokens = saludo.parseString(“Hola, Mundo !”)
#Ahora parseamos una cadena, “Hola, Mundo!”, el metodo parseString, nos devuelve una lista con los tokens encontrados, en caso de no haber errores…
for i in range(len(tokens)):
print “Token %d -> %s” % (i,tokens[i]) #imprimimos cada uno de los tokens

Y listooo!!, he aquí la salida

 
Token 0?> Hola
Token 1?> ,
Token 2?> Mundo
Token 3?> ! 

Por supuesto, se pueden “reutilizar” gramáticas, por ejemplo:


numimag = Word(nums) + 'i' 
numreal = Word(nums) 
numcomplex = numreal + numimag 
numcomplex.parseString("3+5i")

Excelente!!, bueno, los dejo, me voy a seguir tirando código…

Salu2