de 0 a python en 40 minutos

17
De 0 a Python en 40 minutos (tranquilos que no pica)

Upload: flekoso

Post on 11-Jul-2015

2.038 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: De 0 A Python En 40 Minutos

De 0 a Python en 40 minutos(tranquilos que no pica)

Page 2: De 0 A Python En 40 Minutos

Python es:

• Un lenguaje de programacion de alto nivel

• Dinamico

• Multiparadigma (funcional y OO)

• Multiplataforma

• Un tipo de serpiente

Page 3: De 0 A Python En 40 Minutos

Sirve para:

• Aplicaciones de escritorio y consola

(QT, GTK+,wxWidgets, etc)

• Scripting de aplicaciones en otros lenguajes

(Jython, IronPython, etc)

• System scripting

• Aplicaciones y sistemas web

• Recuperar el placer de programar

Page 4: De 0 A Python En 40 Minutos

Algunas caracteristicas:

• Gratis y Libre

( y Open Source, todo por el mismo precio)

• Maduro (casi 20 años)

• Diseño minimalista, elegante y robusto

• Facil de aprender (se lee como pseudocodigo)

• Expremadamente portable

(Unix, Windows, Mac, Amiga, BeOS, Win/CE, DOS, OS/2, VMS, Cray, y muchas otras)

Page 5: De 0 A Python En 40 Minutos

Que tiene de interesante?

• Alto poder expresivo

• Potente soporte de listas y diccionarios

• Modo interactivo

Page 6: De 0 A Python En 40 Minutos

Listas y diccionarios

lista=*1,2,3,’cuatro’,objeto.metodo,*‘una’,’lista’,’anidada’++

Diccionario=,‘clave’:’valor’,1:*‘a’,’b’,’c’+,’lista’:lista}

eventos=,‘onClick’: window.show, ’onESC’:window.close}

>>>evento=‘Click’

>>>eventos.get(‘on’+evento)()

Page 7: De 0 A Python En 40 Minutos

List Comprehension(Listas por comprencion)

• Permite definir listas sin declarar explicitamente sucontenido

[<expresion> for <valor> in <coleccion> if <condicion>]

Por ej:>>> [n for n in range(10) if n % 2 == 0 ] [0, 2, 4, 6, 8] >>> [n*n for n in range(5)] [0, 1, 4, 9, 16] >>>def esPar(n): return ((n%2) == 0) >>> [ n for n in range(10) if isPar(n) ] [0, 2, 4, 6, 8]

Page 8: De 0 A Python En 40 Minutos

Generadores

def primos():

n = 2

listaPrimos = []

while True:

if not any(n % f == 0 for f in listaPrimos):

yield n listaPrimos.append(n) n += 1

Page 9: De 0 A Python En 40 Minutos

Y para que sirve?

• En Python todo es un diccionario

• Por ej, los archivos:

>>archivo=open(“ texto.txt”)

>>for (linea in archivo):

print(linea)

Los objetos tambien pueden verse asi…

Page 10: De 0 A Python En 40 Minutos

Tirandose de cabeza: listas en accionObjetivo: insertar en una base de datos el contenido de un archivo CSV

hubicado en un sitio web

import MySQLdb

conn = MySQLdb.connect (host = "localhost", user = "testuser",

passwd = "testpass", db = "test")

ejecutar=conn.cursor().execute

def insertar(nombre,apellido,email):

ejecutar(“INSERT INTO gente(“+nombre+’,’+apellido+’,’email+’)’)

datos= urlopen("http://misitio.com/datos.csv")

for (linea in datos):

map(insertar,linea.split(“,”))

cursor.close ()

conn.close ()

Epa!

Page 11: De 0 A Python En 40 Minutos

Modo interactivoimport mechanize

br = mechanize.Browser()

br.open("http://www.veraz.com.ar/") # y ahora???

>>>br.select_form(name=“login_form")

#recibo un error informando que el formulario no existe

>>>br.open("http://www.veraz.com.ar/login") #el form estaba en un frame

>>>br.select_form(name=“login_form") #ahora si anda

>>>br*“user"+ = “elusuario“

>>>br*“password"+ = “laclave“

>>>respuesta = br.submit()

>>>print respuesta.geturl() # queria ir aca?

>>>respuesta=br.follow_link(“continuar“)

>>>print respuesta .read() #veo el HTML de la pagina a donde me mando

>>>archivo = file('test.html', 'w')

>>>archivo.write(respuesta.read())

>>>archivo.close()

Te quiero ver haciendo esto en

C++ o Java…(si podes…)

Page 12: De 0 A Python En 40 Minutos

Duck Typing

“Si se ve como un pato, se mueve como un pato y suena como un pato, entonces debe ser un pato.”

Page 13: De 0 A Python En 40 Minutos

Ejemploclass TorresGemelas

def explotar():

print(“PUM!!”)

class EnanoEnfurecido

def explotar():

print(“Callate gil!”)

def reventar(cosa):cosa.explotar()

>>reventar(TorresGemelas)PUM!!>>reventar(EnanoEnfurecido)Callate Gil!

Page 14: De 0 A Python En 40 Minutos

Ejemplos de uso

Proyectos grosos

• Youtube

• Gmail

• GoogleGroups

• GoogleMaps

• Reddit

Aplicaciones:•BitTorrent•Bazaar•Mercurial•YUM •Portage•Trac

Juegos:•Frets on Fire•Civilization 4•Battlefield 2•Eve Online

Como lenguaje de scripting:

•Blender•Maya•Poser•Inkscape•GIMP

•Paint Shop Pro•Amarok•Totem•VIM

Page 15: De 0 A Python En 40 Minutos

Influencia en otros lenguajes

• ECMAScritp incorporo iteradores, generadores, y list comprehensions

• Groovy surgio para llevar la filosofia de Python a Java

• Ocaml tiene una sintaxis opcional, llamada“twt” (The Whitespace Thing), inspirada porPython y Haskell

Page 16: De 0 A Python En 40 Minutos

Mas informacion

• Sitio oficial de Python: www.python.org

• Grupo de usuarios PyAr www.python.org.ar

• Google

Page 17: De 0 A Python En 40 Minutos

Preguntas