Download Python

Document related concepts
no text concepts found
Transcript
Python
CI-2400 Programación Avanzada en
Sistemas de Tipo UNIX
Prof. Braulio José Solano Rojas
ECCI, UCR
Python
●
●
Lenguaje de alto nivel.
Interpretado.
2 de 17
Tipos
●
●
Listas, tuplas y diccionarios
Enteros, coma flotante y cadenas
3 de 17
¡Hola Mundo!
4 de 17
Ejemplo de listas y tuplas
lista = [8, 'Hola', (10,20)]
print "Lista inicial: ", lista
tupla = lista[2]
del lista[2]
(x, y) = tupla
lista.append(x)
lista.append(y)
print "Lista final: ", lista
Programación orientada a objetos
class Pila:
def __init__ (self):
self._lista = []
def push (self, dato):
self._lista.append(dato)
def pop (self):
dato = self._lista[-1]
del self._lista[-1]
return dato
Programación orientada a objetos
# Prueba de la clase Pila
mi_pila = Pila()
mi_pila.push(5)
mi_pila.push("Hola")
mi_pila.push(None)
for i in range(3):
print mi_pila.pop()
Python comparado con Perl
●
La evaluación de expresiones regulares en Perl
es mejor que la de Python.
●
Python es más legible que Perl.
●
Perl es más eficiente.
Python comparado con Tcl
●
Tcl tiene una particularidad, guarda todos los
datos como cadenas. Lo cual hace que Python
sea más eficiente.
Python comparado con Java
●
●
●
El código de Python es más claro, conciso y
mantenible.
Java es más rápido instanciando clases en
memoria y llamando métodos nativos.
Python tiene una e/s, un manejo de tablas hash
y una carga del intérprete más veloces.
Python comparado con Java
●
●
Zope en el peor de los casos es 2 veces más
rápido que Tomcat. En promedio es 3 veces
más rápido.
El tiempo de desarrollo de un programa en
Python es 3 a 5 veces menor que el tiempo de
desarrollo en Java.
Python comparado con Java
●
Python
try:
f = open('/tmp/borrar','wb')
for i in xrange(1000000):
f.write(str(i))
f.close()
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
Python comparado con Java
●
Java
import java.io.*;
public class ComparacionPython {
public static void main(String[] args) {
try {
File f = new File("/tmp/borrar");
PrintWriter ps = new PrintWriter(new Output FileOutputStream(f)));
for (int i=0; i<1000000; i++) {
ps.print(String.valueOf(i));
}
ps.close();
}
catch(IOException ioe) {
ioe.printStackTrace;
}
}
}
Reto para los curiosos
●
Correr los programas anteriores y medir el
tiempo de ejecución.
Tarea moral
●
Investigar más sobre Python.
Trabajo corto
●
Escribir un programa en Python que coloca los
acentos del español de los nombres de usuario
al archivo de claves de Unix (/etc/passwd).
¡Gracias por su atención!
¿Preguntas?