Está en la página 1de 21

Taller de Python

Juan Pavn | @pav0n


Gerente de Desarrollo
mvil en Ohkasis.

INTRODUCCIN A PYTHON

Qu es python?
Tipado dinamico.
Fuertemente tipado.

Por que python?


Sintaxis simple sencilla y clara.
Tipado dinamico.
Una gran comunidad dispuesta ayudar.
Gran cantidad de libreras.
Multiplica la productividad.

El Zen de Python
Hermoso es mejor que feo.
Explcito es mejor que implcito.
Simple es mejor que complejo.
Complejo es mejor que complicado.
Plano es mejor que anidado.
Disperso es mejor que denso.
La legibilidad cuenta.
Los casos especiales no son suficientemente especiales como para
romper las reglas.
Aunque lo pragmtico gana a la pureza.
Los errores nunca deberan dejarse pasar silenciosamente.
A menos que se silencien explcitamente.

El Zen de Python

Cuando te enfrentes a la ambigedad, rechaza la tentacin de


adivinar.
Debera haber una y preferiblemente slo una manera obvia
de hacerlo.
Aunque puede que no sea obvia a primera vista a menos que seas
holands. (NT: Guido van Rossum es holands)
Ahora es mejor que nunca.
Aunque muchas veces nunca es mejor que *ahora mismo*.
Si la implementacin es difcil de explicar, es una mala idea.
Si la implementacin es sencilla de explicar, puede que sea una
buena idea.
Los espacios de nombres son una gran idea tengamos ms de
esas!

Quienes usan python?


NASA.
Yahoo.
Dropbox.
Google.
Ohkasis.
Distribuciones de linux.
Una gran cantidad de software libre.
Aplicaciones de escritorio.
Servicios.

Frameworks para
programacin distribuida.

Frameworks web.

Frameworks para autoaprendizaje.

Frameworks para mobiles.

Y un largo etcetera.

Implementaciones de Python.
CPython.
Jython.
IronPython.
PyPy.
Pyston.

Versiones de Python.
2.x
3.x

Herramientas para empezar a desarrollar.


Interprete de Python.
Editor de cdigo.
Sublime Text

Visual Studio Code

LightTable

Vim

IDES
Ninja.
Boa Constructor

Eclipse + PyDev.

Tipos Bsicos.
Nmeros
Entero (int, long).
Flotante(float).
Complejos (complex)(7-5j).
Booleanos (bool) (True,False).
Cadenas(str,unicode)

Operadores Aritmticos
Suma: +
Resta: Multiplicacin: *
Exponente: **
Divisin: /
Divisin entera: //
Modulo: %

Trabajando con cadenas


Declarar cadenas: simple,dobles,triples
Concatenar cadenas
Repetir cadenas
Formato de cadenas
Indexacin

Colecciones de datos
Listas
Coleccin ordenada de datos.
Equivalente a los vectores y/o arrays en otros lenguajes.
Es mutable.
Declaracin : lista = [1,2,3,4]
Tuplas
Coleccin ordenada de datos.
Equivalente a los vectores y/o arrays en otros lenguajes.
No es mutable
Declaracin : tupla = (1,2,3,4)

Colecciones de datos
Diccionarios
Coleccin desordenada de datos.
Se indexan con claves.
Las claves son nicas.
Declaracin:
d = {clave1:1,clave2:2,3:clave3}
d = dict(k1=1,k2=2,k3=clave3)

Sentencias condicionales.
Operadores lgicos.
and : r = True and False # r es False.
or : r = True or False # r es True.
not : r = not True # r es False.
Operadores relacionales.
Igualacin : r = 5 == 4 # r es False
Desigual : r = 5 != 4 # r es True
Menor que : r = 5 < 4 # r es False
Mayor que : r = 5 > 4 # r es True
Menor o igual que: r = 5 >= 5 # r es True
Mayor o igual que: r = 5 <= 4 # r es False

Sentencias condicionales.
if
if 1 < 5:
print 1 es menor que 5

if / else
if 1 > 5:
print 1 es mayor que 5
else:
print 1 es menor que 5

if/ elif / else


if 1 > 5:
print 1 es mayor que 5
elif 1 == 5:
print 1 es igual que 5
else:
print 1 es menor que 5

if ternario
r = true if True else false # r es true

Bucles
while : Se ejecuta siempre y cuando la condicin se cumpla
indice= 0
while (indice < 9):
print el indice es:', indice
indice = indice + 1

for : Un bucle for es un bucle que repite el bloque de


instrucciones un nmero predeterminado de veces.
lista = [1,2,3,4,5,6,7]
for indice in lista:
print el indice es:', indice

break : interrumpe la ejecucin del bucle.


continue : Interrumpe una iteraccin del bucle.
else : Ejecuta un bloque de cdigo siempre cuanto no
se interrumpa el bucle con una sentencia break.

Bucles
Comprensin de listas:
Son maneras convenientes de generar o extraer
informacin de las listas. Las Comprensiones de Lista
tienen esta forma general: [elemento for elemento in Lista
if Condicin]
Las Comprensiones de Lista tienen esta forma general:
[elemento for elemento in Lista if Condicin]

Funciones
def nombre():
pass
Parametros por defecto
def nombre(var1, var2=1, var3=2):
pass
Funciones lambda:
Funciones definidas en una sola linea.
Son cuestin de estilo
g = lambda x: x*2

Funciones
Generadores:Son funciones que nos permitirn obtener
sus resultados poco a poco. Es decir, cada vez que
llamemos a la funcin nos darn un nuevo resultado. Por
ejemplo, una funcin para generar todos los nmeros
pares que cada vez que la llamemos nos devuelva el
siguiente nmero par.
Se utiliza yield en lugar de return.
Decoradores: un decorador es una funcin d que recibe
como argumento otra funcin a y retorna una nueva
funcin b. La nueva funcin b es la funcin a
decorada con d.

Modulos
En Python un modulo no es mas que un archivo .py
Paquetes
En Python un paquete es solo un directorio
Para que un paquete sea reconocido como tal, en el
directorio debe existir un archivo __init__.py