Entradas

Mostrando entradas de mayo, 2010

Problema de algoritmia, en Python

Imagen
Hola. En este post vamos a ver la resolución de un problema de Algoritmia típico, resuelto en Python. El enunciado me lo ha enviado un navegante , entusiasta de Python , como yo. Es el siguiente: A partir de una cadena introducida por el usuario, se trata de pintar una caja de texto con la propia cadena, utilizando espacios en blanco. La complejidad reside en cómo pintar las cadenas reversas, esto es, escritas al revés. Hay varias formas de resolver el problema. Con listas parece obvio, aunque yo lo he resuelto de la manera más fácil para mí, claro. Este es el código: # -*- coding: cp1252 -*- # Ángel Luis García García # Algoritmia while True: # Introducimos palabra. cadena = raw_input('Introduce palabra: ') # Si no escribimos nada, salimos. if len(cadena) == 0: break # Longitud de la cadena. long_cadena = len(cadena) # Espacio en blanco. blanco = " " * (long_cadena - 2) # Pintamos la cadena de arriba. print cadena # Pintamos las col

Persistencia y herencia de objetos, con Python.

Imagen
Hola. En este artículo vamos a ver las ventajas de uno de los pilares fundamentales de la programación orientada a objetos, la herencia , así como la persistencia de objetos, una forma de guardar información en disco sin necesidad de bases de datos ni ficheros estructurados. ¿Cómo? Guardando directamente el objeto en disco. Como tantas veces se ha comentado en este blog, hay que ser ordenado, y aquí vamos a poner en práctica uno de mis pilares fundamentales de programación , a saber: Si un objeto puede guardarse y volver a estados diferentes, podría ser interesante. En primer lugar vamos a crear una clase base , de la cual se pueda heredar ciertos métodos que nos serán de utilidad en todas las clases que hagamos después. Es decir, la estrategia consiste en crear nuestra propia librería de clases , con ciertas clases y/o funciones si se precisara, lo más genéricas posibles, para poder reutilizar el código escrito. Una clase base genérica heredará del objeto base de Python , esto es,

Manual de Python para aprender a programar

Imagen
Hola. He encontrado un manual gratuito para aprender a programar, con la ayuda de Python. Se titula: Aprenda a Pensar Como un Programador con Python Se puede descargar el PDF desde http://manuales.gfc.edu.co/python/thinkCSpy.es.pdf . Está escrito en español. Orientado a aprender a programar, no el lenguaje Python en sí, aunque al final se aprenda, sino que se utiliza Python como guía para el aprendizaje de los fundamentos de la programación, viendo todos los conceptos propios de la misma. Esta obra está dirigida tanto a aprendices de programador, profesionales que necesiten de conocimientos básicos de programación, pasando por profesionales que necesiten hacer consultas puntuales. Debido a la facilidad de aprendizaje del lenguaje Python , su nivel pedagógico es elevado. Estamos hablando de un curso completo de fundamentos de la programación , siendo Python el eje vertebrador de las exposiciones y ejemplos conceptuales. Así pues se habla de tipos de datos como listas, cadenas ó dic

IronPython y Sybase DataWindow .NET, en SharpDevelop, y 3.

Imagen
Hola. Seguimos con la construcción de una aplicación de gestión con IronPython y Sybase DataWindow .NET en SharpDevelop . Este post es continuación del anterior en El Viaje del Navegante . CREANDO CONEXIONES ENTRE UN CONTROL DATAWINDOW Y LA BASE DE DATOS MEDIANTE UN OBJETO TRANSACTION Vamos a conectar el Control DataWindow a la base de datos de MySQL . Darse cuenta del juego que da esto, ya que podemos tener una serie de DataWindows conectados a origenes de datos diferentes, siempre y cuando el SGBD sea el mismo, esto es, podemos cambiar, en una base de datos, de producción a pruebas únicamente cambiando la cadena de conexión del objeto transacción, sin que afecte en absoluto al DataWindow . Arrastramos un objeto Transaction a la ventana. En las propiedades del objeto Transaction le indicamos las características de la conexión ( ¿Recuerda el lector como se obtenía la cadena de conexión en el Designer ? ). ¿Dónde decirle al DataWindow que coga la conexión del objeto Transaction ?

IronPython y Sybase DataWindow .NET, en SharpDevelop, y 2.

Imagen
Hola. Continuamos con la construcción de una aplicación de gestión, que empezamos en el anterior artículo de El Viaje del Navegante , con IronPython , Sybase DataWindow .NET en el entorno de desarrollo SharpDevelop . Creación de un proyecto Lo primero es crear un proyecto, así que nos vamos a File/New, y seleccionamos el crear un proyecto. Le damos un nombre al proyecto y automáticamente genera el nombre de la librería ( Library ), tal que así: Incluir en la librería del proyecto objetos DataWindows Nos vamos a File / New , y creamos nuestro primer DataWindow. Aquí se nos presentan varios tipos de DataWindow, es decir, varias formas de presentar la información. Elegimos Freeform y continuamos. En la siguiente ventana se nos da a elegir el origen de donde van a venir los datos. Si se trata de hacer un mantenimiento de una sola tabla es recomendable seleccionar Quick Select , por temas de rendimiento. Si se trata de varias tablas (un join), hay que elegir SQL Select . Si el origen es c