1. Introduccin a Python 7mas Jornadas Regionales de Software
Libre 2007 Facundo Batista Arte grfico: Diana Batista 2. Indice
-
- Corriendo e interpretando
3. Qu es Python?
-
- Biblioteca estndar (con las pilas puestas)
4. Algunas caractersticas
-
- Y Open Source, todo por el mismo precio:cero
-
- Sintaxissencilla, lenguaje muyortogonal
-
- Unix, Windows, Mac, BeOS, Win/CE
-
- DOS, OS/2, Amiga, VMS, Cray...
5. Propiedades del lenguaje
-
- Compila a bytecode interpretado
-
- La compilacin esimplcita y automtica
-
- Tipadodinmico , perofuerte
-
- Pero puede usarse de manera procedural
-
- Mdulos, clases, funciones, generadores
-
- Viene con lasbaterias incluidas
-
- Extensa biblioteca estndar
-
- Clave en laproductividadde Python
6. Ms propiedades
-
- Tipos de datos dealto nivel
-
- Enteros sin lmites , strings, flotantes, complejos
-
- Listas,diccionarios , conjuntos
-
- Clave en elbajo conteo de bugs
-
- Acelerasorprendentemente eltiempo de desarrollo
-
- Permiteexplorar ,probare incluso ver ladocumentacin
7. Las bateras includas
-
- La Biblioteca Estndar ayuda con...
-
- Servicios del sistema, fecha y hora,
subprocesos,sockets,internacionalizacin y localizacin, base de
datos, threads, formatos zip, bzip2, gzip, tar, expresiones
regulares, XML (DOM y SAX), Unicode, SGML, HTML, XHTML, XML-RPC
(cliente y servidor), email, manejo asincrnico de sockets, clientes
HTTP, FTP, SMTP, NNTP, POP3, IMAP4, servidores HTTP, SMTP,
herramientas MIME, interfaz con el garbage collector, serializador
y deserializador de objetos, debugger, profiler, random, curses,
logging, compilador, decompilador, CSV, anlisis lexicogrfico,
interfaz grfica incorporada, matemtica real y compleja, criptografa
(MD5 y SHA), introspeccin, unit testing, doc testing, etc.,
etc...
8. Python Argentina
-
- Grupo deentusiastasde Python
-
- Referencia para la aplicacin ydifusindel lenguaje
-
- Suscribindose a laLista de Correo(somos+250 )
-
- Asistiendoa lasreunionesy eventos
-
- Ms info en la pgina:www.python.com.ar
-
- Sepuedendeben organizarreuniones en otras provincias
-
- No hay que pedir permiso,slo coordinarlas
9. Corriendo e interpretando
-
- Y encima tenemos elIntrprete Interactivo
-
- Ac es donde vamosa la realidad , :)
10. Tipos de datos
-
- Haciendo nmeros, y ms nmeros
-
- Cadenas, y como accederlas
-
- Listas, listas, y muchas listas
-
- Diccionarios, diccionarios!
11. Haciendo nmeros
-
- >>> 23098742098472039 * 120894739
-
- 2792516397223089453702821
12. Ms nmeros
-
- >>> (2+3j * 17) ** (2+5j)
-
- (-0.91258832667469336-0.82498333629811516j)
13. Cadenas
-
- Comillas , apstrofos, triples
-
- >>> 'Una cadena es una secuencia de caracteres'
-
- ' Una cadena es una secuencia de caracteres '
14. Accediendo a las cadenas
-
- >>> saludo = 'Hola mundo'
15. Listas
-
- Corchetes , varios tipos de elementos
-
- >>> a = ['harina', 100, 'huevos', 'manteca']
-
- ['harina', 100, 'huevos', 'manteca']
-
- Accedemos como cualquiersecuencia
-
- Concatenamos, reemplazamos
-
- ['harina', 100, 'huevos', 'manteca', 'oro', 9]
-
- ['sal', 100, 'huevos', 'manteca']
16. Y dale con las listas
-
- Pueden tenerotras listas , y a s mismas!
-
- ['sal', 100, 'huevos', 'manteca']
-
- ['sal', ['Hola', 7], 'huevos', 'manteca']
-
- ['sal', ['Hola', 7],[...] , 'manteca']
-
- ['sal', ['Hola', 7], [...]]
17. Listas, listas, listas
-
- >>> b = [2, "H", 3.5, "H"]
-
- [2, 'H', 3.5, 'H', 'Go!']
18. Conjuntos
-
- >>> juego = set("typus pocus")
-
- set([' ', 'c', 'o', 'p', 's', 'u', 't', 'y'])
-
- >>> hechizo = set(["h", "o", "c", "u", "s", " "])
-
- >>> hechizo.update(set("pocus"))
-
- set([' ', 'c', 'h', 'o', 'p', 's', 'u'])
-
- set([' ', 'c', 'o', 'p', 's', 'u'])
-
- >>> hechizo.add("Merlin")
-
- set([' ', 'c', 'Merlin', 'o', 'p', 's', 'u'])
19. Diccionarios
-
- >>> dias = {"enero": 31, "junio": 30,"julio": 30
}
-
- {'julio': 30, 'enero': 31, 'junio': 30}
-
- { 'julio': 31 , 'enero': 31, 'junio': 30, 'agosto': 31}
-
- >>> cualquiercosa = {34: [2,3], (2, 3): {3: 4}}
-
- {'enero': 31, 'junio': 30, 'agosto': 31}
20. Ms diccionarios
-
- ['enero', 'junio', 'agosto']
-
- >>> dias.get("agosto", "No tenemos ese mes")
-
- >>> dias.get("mayo", "No tenemos ese mes")
-
- {'enero': 31, 'junio': 30}
21. Controles de flujo
-
- ... por cadauno de esos hacemos algo...
-
- ... mientrasesperamos otra cosa?
-
- Eso s, hasta que se rompa algo!
22. Si tal cosa o la otra
-
- print "Ojo con el valor de b"
-
- print "Error en el valor de a"
-
- Todoevalua aFalsooVerdadero
23. Por cada uno
-
- >>> bichos = ["pulgas", "piojos", "cucarachas"]
-
- Si queremos lasecuencia de nmeros
24. Mientras tanto...
-
- >>>whilea>> def divide(a, b):
-
- Traceback(most recent call last):
-
- File "", line 2, in divide
-
- ZeroDivisionError : integer division or modulo by zero
26. Manejando lo excepcional
-
- Podemoscapturarlas excepciones
-
- Adems :try/else ,try/finally , y suscombinaciones !
-
- ...raise ValueError ("El x es feo!")
27. Encapsulando cdigo
-
- Clases, o como tratar demodelar la realidad
28. Funciones
-
- ..."Devuelve el cuadrado de un nmero."
-
- < functionalcuadrado at 0xb7c30b54>
-
- Devuelve el cuadrado de un nmero.
29. Ms funciones
-
- Tengo muchaflexibilidadcon losargumentos
-
- >>> def func(a, b=0, c=7):
30. Clases
-
- >>> class MiClase(ClasePadre):
-
- >>> class MiClase(ClasePadre, ClaseTio):
31. Otra clase sobre clases
-
- ...def__init__ ( self , x, y):
-
- ...def distancia( self ):
-
- ...dist =math.sqrt(self.x**2 + self.y**2)
32. El mdulo ms paquete
-
- Funciones, o clases, olo que seaen un archivo
-
- Es un.py normal , slo que lo importamos y usamos
-
- Tengo un pos.py, con la clase de la filmina anterior:
-
- >>> p =pos. Posicion(2, 3)
-
- Cuando tenemosmuchos mdulosjuntos
-
- Usamosdirectorios , e incluso subdirectorios
33. Tres detalles
34. Entendiendo de listas
-
- >>> vec = [3, 7, 12, 0, 3, -13, 45]
-
- [9, 49, 144, 0, 9, 169, 2025]
-
- >>>[ x**2forxinvecifx >> sum( [
x**2forxinrange(1000) ] )
-
- >>> len( [ xforxinrange(1000)if(x**2)%2 == 0 ] )
35. Generadores
-
- Ejemplo : Funcin que nosdevuelve una cantidad de algos
-
- >>> def fibonacci(limite):
-
- >>> for i in fibonacci(10): t += i
-
- >>> for i in fibonacci(999999999999999999):#
ouch!
36. Seguimos generando
-
- Somos vagos, vamos devolviendovalor por valor
-
- >>> for i in fibonacci(999999999999999999):
37. Una gran idea
-
- Hay variosespacios de nombres
-
- Los tienen las funciones, clases, mdulos
-
- Elmismo ejemploque antes!
-
- >>> p = pos.Posicion(2, 3)
-
- Simplificanlaestructuraa mentalizar
-
- Prolijidad,legibilidad , traceabilidad
-
- Prubenlos, los van a extraar cuando no los tengan
38. Preguntas? Sugerencias? Espero que lo hayan disfrutadotanto
como yo, :) Muchas gracias! Facundo Batista [email_address]
www.taniquetil.com.ar