You are on page 1of 18

Python

Primeros Pasos
Juan Jos Iglesias Gonzlez bille@gpul.org Adrin Prez de Castro moebius@gpul.org

Guin
Spam & Eggs Why Python? Lets be friends!

Spam & Eggs


De cmo ciertos personajes inuyen en uno de los desarrollos ms veteranos del software libre

Spam & Eggs


Autor: Guido Van Rossum
Instituto Nacional de Investigacin Matemtica e Informtica, Noruega Mediados de los 80 Lenguaje ABC: ensear programacin a no informticos ABC no tuvo repercusin

Spam & Eggs


Amoeba + Python = Python
Lenguaje de scripting para Amoeba Basado en ABC Nueva sintaxis de bloques Tipos predenidos Python es mucho ms fcil de extender de forma modular

Spam & Eggs


Filosofa
Python debe ser divertido Su nombre proviene de la serie de televisin Monty Pythons Flying Circus Son habituales referencias al genial grupo humorstico ingls al hablar de Python 8^) Ms zen: import this

Why Python?
Razones, hechos y ejemplos de por qu puede ser conveniente tener un reptil a mano

Why Python? Hooola!!


Un ejemplo clsico
print Hello world!
c ls i c o

Otro ejemplo clsico


du l m o
va r ia ble

bl o q u e

import sys ide ntid ad name = sys.argv do i n dexa if len(name) == 2: ! print Hello + name[1] concat else: print Hello random chorbo

Why Python? Tipos


Todo son objetos Incluso los que vienen de serie
o to d m

lst = [spam, and] lst.append(3) lst.append(eggs) for item in lst: print item, o
i nt r

l i st a

ado r i te r

# We also have while i = 0 polim . while i < len(lst): . print lst[i], de nt n i i += 1 # But not i++!!

Why Python? Tipos


Todo son objetos Incluso los que vienen de serie
h as h
hetero

d = { eggs: 3, milk: 1 } d[cornbeef] = some print Supermarket List: for item in d: ! print * 3, d[item], item

c a st

m u lt.

d = dict( [(x, x+1) for x in range(5)] ) ra n g o p rett y print repr(d)

c o mp re s .

Why Python? Lambda!


Pitonizacin funcional
fu n! ? sl ic e

l = range(5, 15, 2) # Woahh!! m = map(lambda x: x+1, l) print repr(l) BT B F

Pitonizacin recursiva
AE W

def fact(n): if n == 0: return 1 else: return n * fact(n-1) print fact(5)


call

Why Python? OO
Tratando reptiles como objetos
las c e

class Reptile: def __init__(self, name=Pitty, **a): self._name = name h as h t r i b. a self._attr = a to do def y(self, name): m return self._attr.get(name) def x(self): return self._name
bj . o

defe ct

p = Reptile(Python, age=5, eyes=blue) q = Reptile(Boa, age=3, length=2) print p.x(), p.y(age), p.y(eyes) print q.x(), q.y(age), q.y(eyes) p._name = MutantPython o c u lto? print p.x()
No n e

Lets be friends!
Miedo a estar slo? Python tiene todas las respuestas

Lets be friends! Usos


En empresas
NASA Yahoo, Google, Infoseek Industrial Light & Magic, Pixar Red Hat Microsoft Blade

Lets be friends! Tech


Mdulos incorporados
Ms de 200: REs, compresin, serializacin y persistencia automticas, servicios de red, threads, codicacin de archivos, bases de datos, XML, ncurses, Tk, audio, internacionalizacin, SGML, interfaz con el sistema operativo, nmeros aleatorios, XDR, Adems: mdulos de terceros

Lets be friends! GUIs


Desarrollo de GUIs
Qt & KDE, GTK+ & Gnome AWT & Swing (con Jython) FOX, wxWindows, Tk, Cocoa (con PyObjC), Win32, Windows.Forms (a travs de .NET) Ms en la charla de programacin de GUIs con Python ;)

Lets be friends! XREFs


Servicios web
XMLRPC, SOAP, servidor/cliente HTTP, mod_python, Zope

Interoperabilidad
.NET, Jython (Java), SWIG (C & C++), PyObjC (Cocoa), Corba

Aplicaciones cliente/servidor
BitTorrent, Nicotine, PyMusique

Juegos
PyGame, PyDance

Gracias, Bryan

You might also like