Ir al contenido principal

Entradas

Mostrando entradas de mayo, 2014

Python, lo bello es mejor que lo feo

En el post anterior vimos como crear una clase en Python . Comparado con lenguajes como Java es bastante sencillo.  /*Java*/ public class Submarino{       private java.util.List<String> tripulacion;       public Submarino(){}       //getters y setters      ...      ... } ''' Python ''' class  Submarino( object ):        def __init__(self,tripulacion):                self.tripulacion=tripulacion Esto solo para crear una clase, pero si necesito que una clase herede atributos y método de una clase ... ¿existe la herencia en Python?. La respuesta es si. #clase Padre class Submarino( object ):          def tipo(self):              print "submarino militar" #clase hija class Submarino_Juguete( Submarino ):         def tipo(self):             print "submarino de juguete" #main submarinoJuguete=Submarino_Juguete() submarinoJuguete. tipo () print "tipo clase: ", type (submarinoJuguete) #tipo S

Crear 'clases' en Clojure

¿Cómo puedo crear un 'clase' en Clojure? ( defrecord Objeto [prop1 prop2  propN]) Para hacer uso de esta 'clase' escribimos lo siguiente: ( def miObjeto  "primerValor" "segundoValor" "otroMas") Ejemplo. Crear una 'clase' Fecha, con tres propiedades: dia,mes, y año ;;importamos la librería java.util.Scanner para introducir datos  ( import '(java.util Scanner))    ( def entrada(Scanner. *in*))   ;;creamos una interface para mostrar los valores tecleados ( defprotocol Servicio   (verFecha[this]))   ;;creamos la 'clase' Fecha e implementamos la interface Servicio ( defrecord Fecha[dia mes anyo]    Servicio    (verFecha[this]( println "Fecha: { dia:"dia" -mes: "mes" -anyo:"anyo"}")))  ;; probamos ( try   ( def miFecha(Fecha.  "23" "agosto" "1943"))   (verFecha miFecha)  ( println "Dia:")  ( def dia(.nextLine entrada)

Creando una clase en Python

Crear una clase en Python es bastante sencillo. En la siguiente imagen se muestra un ejemplo de una clase llamada 'Triángulo_equilátero'. En Python: ''' Clase '''   class   Triangulo_equilatero(object):       def __init__(self,altura,base,lado):                  self.altura=altura                  self.base=base                  self.lado=lado No es necesario crear métodos setter y getter. Podemos acceder a cualquier miembro/propiedad de la clase de la siguiente manera: ''' main ''' def main(): #instanciamos la clase      triangulo=Triangulo(2.8,3.0,3.0)      #mostramos valores      print "altura: %f , base: %f ,lado: %f\n"%(triangulo.altura,triangulo.base,triangulo.lado) if __name__='__main__':      main() Espero les sirva. http://mundogeek.net/archivos/2008/03/05/python-orientacion-a-objetos/

Uso de case en Clojure

En la otra ocasión vimos como introducir datos desde Clojure usando la librería java.util.Scanner , ahora veremos como hacer uso de 'case',es  algo parecido al switch de otros lenguajes como C y Java. Supongamos introducimos un número del 1 al 3. ( import '(java.util Scanner)) ( def entrada (Scanner. *in*)) ( println "Introduce un número del 1 al 3:") ( def numero (.nextLine entrada)) Ahora crearemos nuestro 'switch'. ( case numero   "1" ( println "Introduciste el numero 1")   "2" ( println "Introduciste el numero 2")   "3" ( println "Introduciste el numero 3") ) Si introduzco el número 1, mostrará el primer mensaje, pero ¿qué pasa si coloco otro número que no sean esos 3? Para ello definimos un "else" a ese 'switch': ( case numero   "1" ( println "Introduciste el numero 1")   "2" ( println "Introduciste el numero

Scanner en Clojure

Para introducir datos desde Clojure podemos importar la librería java.util.Scanner . Vamos hacer un ejemplo,mediante la fórmula: v=d/t , donde d=distancia,t=tiempo,  calcularemos la velocidad (v) obtenida. Un camión  recorre una distancia de 45 km en 15 minutos, ¿cuál es la velocidad que alcanza? entrada: distancia= 45 km , tiempo=15 min. salida: velocidad=¿? nombre del archivo: velocidad.clj ejecutar: java -jar clojure-1.6.0.jar velocidad.clj ;;importamos la librería java.util.Scanner ( import '(java.util Scanner)) ( def scan (Scanner. *in*)) ;;solicitamos distancia y tiempo, usamos .nextFloat ( println "Introduce distancia: ") ( def distancia (.nextFloat scan)) ( println "Introduce tiempo: ") (def tiempo (.nextFloat scan)) ;;visualizamos  datos ( println "Distancia leida: "distancia) ( println "Tiempo leido: "tiempo) ;;calculamos la velocidad ( println "Velocidad obtenida: "(/ distancia tiempo

Prueba IronPython en tu navegador

Para quienes usan la plataforma .Net y quieren probar un poco del lenguaje Python sin necesidad de instalarlo. Si usas Linux Ubuntu es necesario tener instalado pipeligh t. Pasos para instalarlo: http://blog.desdelinux.net/pipelight-visualiza-contenido-silverlight-nativamente-en-tu-navegador/ Probar http://ironpython.net/try/