Una forma de ejecutar programas Python.
Archivos *.bat (Windows), creamos un archivo llamado "ejecuta.bat" y colocamos:
@echo off
python programa.py
Al dar clic sobre el se ejecuta.
En Linux usamos un archivo *.sh, creamos un archivo llamado "ejecuta.sh" y colocamos:
python programa.py
Debemos otorgarle un permiso de ejecución:
chmod u+x ejecuta.sh
Y lo ejecutamos:
./ejecuta.sh
Groovy vs Java vs Python
Los lenguajes de scripting como Groovy o Python permiten escribir pequeños programas y así ahorrar varias líneas de código (en comparación con otros lenguajes como Java).
Ejemplo. Creamos una clase llamada "Futbol" en estos tres distintos lenguajes con las siguientes propiedades:
- nombreEquipo: String
- victorias: int
- derrotas: int
- empates: int
- golesAFavor: int
- golesEnContra: int
- golesGoleador
- goleador: String
En Groovy no es necesario colocar ";" al final de una instrucción, además se puede definir variables con "def" o como se hace en Java (String, int, double,etc.). Al ser de tipo dinámico no es necesario definir el tipo de dato de una variable.
Futbol.groovy
class Futbol{
def nombreEquipo, goleador
def victorias, derrotas,empates
def golesAFavor, golesEnContra, golesGoleador
// ...
// ...
}
Creamos una función que nos muestre los datos:
def verDatos(){
println("Nombre del equipo: "+nombreEquipo)
println("Nombre del goleador: "+goleador)
println("No. de victorias: "+victorias)
println("No. de derrotas: "+derrotas)
println("No. empates: "+empates)
println("No. goles a favor: "+golesAFavor)
println("No. en contra: "+golesEnContra)
println("Goles del goleador: "+golesGoleador)
}
Ahora definimos el método principal
main, definimos un objeto llamado "miJugador" e invocamos el método
verDatos()
//main
static void main (String[] args){
def miJugador= new Futbol(nombreEquipo:'Real Madrid',goleador: 'Hugo Sánchez',victorias:12,derrotas:0,empates:0,golesAFavor:35,golesEnContra:6,golesGoleador:32)
miJugador.verDatos()
}
Con Java evidentemente escribimos mucho más líneas de código (además las clases deben ser nombradas igual que el archivo):
Futbol.java
public class Futbol{
/*En Java si es necesario declarar el tipo de dato de las variables*/
public String nombreEquipo, goleador;
public int victorias, derrotas,empates;
public int golesAFavor, golesEnContra, golesGoleador;
/*constructor*/
public Futbol(String nombreEquipo, String goleador,int victorias,int derrotas,int empates,
int golesAFavor, int golesEnContra, int golesGoleador){
this.nombreEquipo=nombreEquipo;
this.goleador=goleador;
this.victorias=victorias;
this.derrotas=derrotas;
this.empates=empates;
this.golesAFavor=golesAFavor;
this.golesEnContra=golesEnContra;
this.golesGoleador=golesGoleador;
}
// ...
// aqui definimos los setters y getters
public void setNombreEquipo(String nombreEquipo){this.nombreEquipo=nombreEquipo;}
public String getNombreEquipo(){return this.nombreEquipo;}
// ...
public void verDatos(){
System.out.println("Nombre del equipo: "+nombreEquipo);
//...
//...
}
public static void main(String ... args){
Futbol miJugador=new Futbol("Real Madrid","Hugo Sánchez",12,0,0,35,6,32);
miJugador.verDatos();
}
}
Finalmente tenemos el siguiente código en Python:
Futbol.py
class Futbol:
def __init__(self,nombreEquipo,goleador,victorias,derrotas,empates,goleasAfavor, golesEnContra, golesGoleador):
self.nombreEquipo=nombreEquipo
self.goleador=goleador
self.victorias=victorias self.derrotas=derrotas
self.empates=empates
self.golesAFavor=golesAFavor
self.golesEnContra=golesEnContra
self.golesGoleador=golesGoleador
def verDatos(self):
print "Nombre del equipo: ",self.nombreEquipo
#...
#...
#main
miJugador=
Futbol("Real Madrid","Hugo Sánchez",12,0,0,35,6,32)
miJugador.verDatos()
¿Cómo ejecutar los programas?
Groovy
Compilar:
groovyc Futbol.groovy
Ejecutar:
groovy Futbol.groovy
Java
Compilar:
javac -g Futbol.java
Ejecutar:
java Futbol
Python
Compilar/ejecutar:
python Futbol.py
Conclusiones
Java al ser un lenguaje fuertemente tipado obliga al programador a declarar tipos de datos a usar, además posee una gran cantidad de clases que lo hacen bastante robusto. Groovy es un lenguaje de tipo dinámico bastante fácil de aprender, puedes escribir código Java y funciona correctamente. Python posee características de tipo dinámico y estático.
Códigos:
Futbol.groovy
Futbol.py
Futbol.java