Entradas

Mostrando entradas de febrero, 2010

Python en español - Introducción

Imagen
Este post forma parte de una serie que voy a desarrollar en estos días, referente a la programación en Python. Doy por sentado que el lector sabe la procedencia de Python (lenguaje de script, semi interpretado [.pyc]), las características técnicas (orientado a objetos, multiplataforma, fuertemente tipado y cosas de esas) y lo que se puede realizar con él (desarrollo web, escritorio, telefonía móvil, etc). Vamos a ver como programar en Python, en español. Aquí os presento la introducción. El lenguaje de programación Python se puede descargar de la web oficial de Python, esto es, http://www.python.org/ . En esta web podemos encontrar todo lo que necesitamos, a saber, documentación, enlaces externos a otros sitios web con más información, recomendaciones de IDE's para desarrollo y un largo etcétera. Voy a hablar de Python en la plataforma Windows. Para Linux es casi idéntico, excepto en temas de directorios de instalación, por supuesto, y algunos comandos propios de sistemas posix (Li

Filosofia Pythoniana.....

Imagen
Los usuarios de Python se refieren a menudo a la Filosofía Python que es bastante análoga a la filosofía de Unix. El código que sigue los principios de Python de legibilidad y transparencia se dice que es "pythonico". Contrariamente, el código opaco u ofuscado es bautizado como "no pythonico" ("unpythonic" en inglés). Estos principios fueron famosamente descritos por el desarrollador de Python Tim Peters en El Zen de Python : Bello es mejor que feo. Explícito es mejor que implícito. Simple es mejor que complejo. Complejo es mejor que complicado. Plano es mejor que anidado. Ralo es mejor que denso. La legibilidad cuenta. Los casos especiales no son tan especiales como para quebrantar las reglas. Los errores nunca deberían dejarse pasar silenciosamente. A menos que hayan sido silenciados explícitamente. Frente a la ambigüedad, rechazar la tentación de adivinar. Debería haber una -y preferiblemente sólo una- manera obvia de hacerlo. Aunqu

NetBeans y Python - Cambiar de plataforma

Imagen
Hola de nuevo! Hay algo que me gustaría comentar, y es si se está trabajando en plataformas Linux ó Windows con NetBeans, pero con versiones de Python diferentes. En mi caso he empezado a crear una aplicación en Linux, con Python 2.6, y luego he querido llevar el proyecto de NetBeans a una plataforma Windows con Python 2.5. Evidentemente han saltado las alarmas. Vamos a cargar el proyecto que nos hemos traído de la otra plataforma, y le comentamos evidentemente que será el proyecto principal: Si tenemos versiones diferentes de Python (en este caso 2.6 en Linux y 2.5 en Windows si no tenemos en Windows la 2.6 instalada claro!) nos aparecerá el siguiente error: La manera más sencilla de arreglar esto es editar un fichero de configuración del proyecto en NetBeans y decirle que en vez de trabajar con una versión de Python lo estamos haciendo con otra. Solo es necesario editar el fichero project.properties, tal como muestra el screenshot, y en el campo de plataforma activa modificar la vers

Prototipados en Python - Fácil y sencillo

Imagen
Vamos a crear prototipo de un sistema de reconocimiento de texto por voz en Python, y multiplataforma, que funcione tanto en Windows como en Linux. Este programa es un prototipo de una aplicación que debería ser mucho más sofisticada, sobretodo en la reproducción del texto. Es importante, ya que aquí se está escribiendo una aplicación rápida, un prototipado. El resultado final no es de una calidad profesional como el software comercial que hay actualmente en el mercado (evidentemente). Una de las cosas fuertes que tiene Python es el prototipado de aplicaciones. El propósito de crear esta aplicación es ver, primero, la realidad de la portabilidad de Python entre varias plataformas (en este caso Linux y Windows). En segundo lugar, la reproducción de sonidos en nuestros programas escritos en Python y en tercer lugar, el manejo de uno de los tipos de datos más importantes de Python, el diccionario. Este proyecto lo voy a realizar con Python 2.6, en una máquina Linux Ubuntu 9.10. ¿Por qué

Bibliografía informática - Hay joyas que nunca pasan de moda

Imagen
Hace unos días estuve en un blog y me impactó un artículo sobremanera. Hablaba sobre la bibliografía básica que todo el mundo debe tener a la hora de decicarse a esto de la informática. Debo de decir que no tenía ningún libro de los que ahí se mencionaron, ni siquiera me sonaban los autores. Debe ser que estoy desactualizado, o que la gente a la que leo no tiene buen material, o que lo que yo considero bibliografía sagrada está ya obsoleta. El caso es que también me he decidido a escribir un post refiriéndome a bibliografía básica informática, segmentada por temas, claro. Podré estar desactualizado, pero creo que hay cosas que hay que ver, aunque sea por pura anécdota. Es más, no hace mucho hablé con alguien que se supone sabe las mil y una noches de programación... vamos que yo no le llegaba a los pies. Y quizás lleve razón... es más, la lleva. Pero cuando le pregunté si conocía la obra de Donald Knuth , y me dijo que ese no sabía quien era..... No sé... es como el que dice saber much

MySQL y Python - Relación de pura potencia y 3

Imagen
Inserción, actualización y borrado de filas: INSERT, UPDATE y DELETE. Efectivamente podemos utilizar las instrucciones insert, update y delete vía módulo MySQLdb. En este apartado podemos ver 3 casos a la hora de la construcción de la sentencia: 1) Sentencia SQL sin parámetros (SQL estático). La sentencia se puede crear como una cadena de caracteres, sin incluir ningún tipo de valor o variable ó construcción adicional. Por ejemplo: # -*- coding: cp1252 -*- # Importamos módulo import MySQLdb # Intentamos conectar con la base de datos. try: conexion = MySQLdb.connect(host = "localhost", \ user = "root", passwd = "1234",db = "pruebas_python") print "Conexión realizada" except: print "Error en conexión" # Creamos cursor a partir de la conexión realizada. cursor = conexion.cursor() # Creamos sentencia SQL. cadenaSQL = 'update cliente set nombre = "G. Almaraz" where id = 12' # Ejecutamos sentencia S

MySQL y Python - Relación de pura potencia y 2

Continuamos viendo formas de obtener datos... 2) Utilizando el método fetchone. Mediante este método del objeto cursor se pueden obtener y mostrar filas una a una, en vez de todas a la vez (lo que ocurría con fetchall). Veamos el siguiente ejemplo: # Importamos módulo import MySQLdb # Intentamos conectar con la base de datos. try: conexion = MySQLdb.connect(host = "localhost", \ user = "root", passwd = "1234",db = "pruebas_python") print "Conexión realizada" except: print "Error en conexión" # Creamos cursor a partir de la conexión realizada. cursor = conexion.cursor() # Ejecutamos sentencia SQL. cursor.execute(" SELECT * FROM cliente ") # Obtenemos el número de filas del resultado de hacer la consulta select. numero_filas = int(cursor.rowcount) # Obtenemos y mostramos una fila a la vez (en cada iteración). for fila in range(0,numero_filas): fila = cursor.fetchone() print str(fila[0]), " - " , str

MySQL y Python - Relación de pura potencia I

Imagen
No creo que en este momento en el que nos encontramos haya alguien que no haya oido hablar del sistema gestor de bases de datos MySQL. Prácticamente todo el mundo conoce este sistema y lo relaciona junto con los paquetes de software Apache (servidor) y PHP (lenguaje de script para creación de páginas web). Y en cierto sentido es así, ya que este SGBD se ha hecho muy popular por su gran rendimiento y por su escaso coste. No hace mucho MySQL fue adquirido por Sun, y ahora no se bien como está el tema de licencias. Como cabe esperar, para empresas que quieran soporte y cosas de esas habrá un MySQL de pago. De todas formas MySQL sigue siendo software libre, y vamos a hablar en este post sobre él y la magnífica relación que mantiene con Python, mediante el módulo MySQLdb (creado por Andy Dustman). Antes de empezar supongo que todos sabemos lo que es una base de datos, lo que es un cursor, tablas, campos, selects, inserts, .... y un largo etcétera. Yo no soy ningún experto en bases de datos,

EDITRA - Un editor para desarrollar en Python

Imagen
¿Cómo trabajar con Python? Cuando se instala Python lleva consigo IDLE , un GUI para crear aplicaciones Python desde el primer momento. Para aprender Python no está mal, ya que lleva completitud de código (al estilo Visual Basic), detección de errores y demás cosas. Uno de los problemas que tiene esta herramienta es cuando usamos librerías gráficas, como wxPython, donde sencillamente, hay veces, que "casca". wxPython e IDLE no son compatibles. También se puede optar por el python.exe de toda la vida, un editor de textos y listo. El problema viene después, cuando la aplicación empieza a hacerse grande y más grande. Necesitamos herramientas de edición mas potentes y un simple editor de texto no es suficiente (un editor normal no lleva completitud de código). La cuestión es que después de estar varios meses viendo en Internet la oferta de editores, IDE's y RAD's disponibles para Python (me los he instalado todos, los he probado todos, me han gustado casi todos), me he d