De 0 A Python En 40 Minutos - Presentation Transcript
De 0 a Python en 40 minutos
(tranquilos que no pica)
Python es:
• Un lenguaje de programacion de alto nivel
• Dinamico
• Multiparadigma (funcional y OO)
• Multiplataforma
• Un tipo de serpiente
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
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)
Que tiene de interesante?
• Alto poder expresivo
• Potente soporte de listas y diccionarios
• Modo interactivo
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)()
List Comprehension
(Listas por comprencion)
• Permite definir listas sin declarar explicitamente su
contenido
[<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]
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
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…
Tirandose de cabeza: listas en accion
Objetivo: 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(“,”))
Epa!
cursor.close ()
conn.close ()
Modo interactivo
import 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“ Te quiero ver
>>>respuesta = br.submit() haciendo esto en
>>>print respuesta.geturl() # queria ir aca? C++ o Java…(si
>>>respuesta=br.follow_link(“continuar“) podes…)
>>>print respuesta .read() #veo el HTML de la pagina a donde me mando
>>>archivo = file('test.html', 'w')
>>>archivo.write(respuesta.read())
>>>archivo.close()
Duck Typing
“Si se ve como un pato, se mueve
como un pato y suena como un
pato, entonces debe ser un pato.”
Ejemplo
class TorresGemelas class EnanoEnfurecido
def explotar(): def explotar():
print(“PUM!!”) print(“Callate gil!”)
def reventar(cosa):
cosa.explotar()
>>reventar(TorresGemelas)
PUM!!
>>reventar(EnanoEnfurecido)
Callate Gil!
Ejemplos de uso
Proyectos grosos Aplicaciones: Juegos:
• Youtube •BitTorrent •Frets on Fire
• Gmail •Bazaar •Civilization 4
•Mercurial •Battlefield 2
• GoogleGroups •YUM •Eve Online
• GoogleMaps •Portage
• Reddit •Trac
Como lenguaje de scripting:
•Blender •Paint Shop Pro
•Maya •Amarok
•Poser •Totem
•Inkscape •VIM
•GIMP
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 por
Python y Haskell
Mas informacion
• Sitio oficial de Python: www.python.org
• Grupo de usuarios PyAr www.python.org.ar
• Google
Charla introductoria al lenguaje Python dictada por more
Charla introductoria al lenguaje Python dictada por Julián Cardonnet, en el marco de los festejos del Software Freedom Day 2009 en la ciudad de Tandil, Argentina less
0 comments
Post a comment