python ittux

21
Taller de Python Juan Pavón | @pav0n Gerente de Desarrollo móvil en Ohkasis.

Upload: rudy-vasquez-p

Post on 15-Dec-2015

266 views

Category:

Documents


1 download

DESCRIPTION

Manual Python

TRANSCRIPT

Page 1: Python Ittux

Taller de PythonJuan Pavón | @pav0nGerente de Desarrollo

móvil en Ohkasis.

Page 2: Python Ittux

INTRODUCCIÓN A PYTHON

Page 3: Python Ittux

¿Qué es python?

Tipado dinamico.

Fuertemente tipado.

Page 4: Python Ittux

¿Por que python?

• Sintaxis simple sencilla y clara.

• Tipado dinamico.

• Una gran comunidad dispuesta ayudar.

• Gran cantidad de librerías.

• Multiplica la productividad.

Page 5: Python Ittux

El Zen de Python

• Hermoso es mejor que feo. • Explícito es mejor que implícito. • 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 pragmático gana a la pureza. • Los errores nunca deberían dejarse pasar silenciosamente. • A menos que se silencien explícitamente.

Page 6: Python Ittux

El Zen de Python

• Cuando te enfrentes a la ambigüedad, rechaza la tentación de adivinar.

• Debería haber una — y preferiblemente sólo una — manera obvia de hacerlo.

• Aunque puede que no sea obvia a primera vista a menos que seas holandés. (NT: Guido van Rossum es holandés)

• Ahora es mejor que nunca. • Aunque muchas veces nunca es mejor que *ahora mismo*. • Si la implementación es difícil de explicar, es una mala idea. • Si la implementación es sencilla de explicar, puede que sea una

buena idea. • Los espacios de nombres son una gran idea — ¡tengamos más de

esas!

Page 7: Python Ittux

¿Quienes usan python?• NASA.

• Yahoo.

• Dropbox.

• Google.

• Ohkasis.

• Una gran cantidad de software libre.• Aplicaciones de escritorio.

• Servicios.

• Frameworks web.

• Frameworks para mobiles.

• Frameworks para programación distribuida.

• Frameworks para auto-aprendizaje.

• Y un largo etcetera.

• Distribuciones de linux.

Page 8: Python Ittux

Implementaciones de Python.

• CPython.• Jython.• IronPython.• PyPy.• Pyston.

Versiones de Python.

• 2.x

• 3.x

Page 9: Python Ittux

Herramientas para empezar a desarrollar.

• Interprete de Python.

• Editor de código.

• Sublime Text

• LightTable

• Visual Studio Code

• Vim

• IDES

• Ninja.

• Boa Constructor

• Eclipse + PyDev.

Page 10: Python Ittux

Tipos Básicos.• Números

• Entero (int, long).• Flotante(float).• Complejos (complex)(7-5j).

• Booleanos (bool) (True,False).

• Cadenas(str,unicode)

Page 11: Python Ittux

Operadores Aritméticos

Exponente: **

Multiplicación: *Resta: -Suma: +

División: /

División entera: //

Modulo: %

Page 12: Python Ittux

Trabajando con cadenas

• Declarar cadenas: ‘simple’,”dobles”,”””triples“””

• Concatenar cadenas

• Repetir cadenas

• Formato de cadenas

• Indexación

Page 13: Python Ittux

Colecciones de datos

• Listas

• Colección ordenada de datos.

• Equivalente a los vectores y/o arrays en otros lenguajes.

• Es mutable.

• Tuplas

• Colección ordenada de datos.

• Equivalente a los vectores y/o arrays en otros lenguajes.

• No es mutable

• Declaración : lista = [1,2,3,4]

• Declaración : tupla = (1,2,3,4)

Page 14: Python Ittux

Colecciones de datos

• Diccionarios

• Colección desordenada de datos.

• Se indexan con claves.

• Las claves son únicas.

• Declaración:

• d = {“clave1”:1,”clave2”:2,3:”clave3”}

• d = dict(k1=“1”,k2=2,k3=“clave3”)

Page 15: Python Ittux

Sentencias condicionales.

• Operadores lógicos.• 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.

• Igualación : 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

Page 16: Python Ittux

Sentencias condicionales.• if

• if / else

• if/ elif / else

if 1 < 5: print “1 es menor que 5”

if 1 > 5: print “1 es mayor que 5” else: print “1 es menor que 5”

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 ternarior = “true” if True else “false” # r es “true”

Page 17: Python Ittux

Bucles• while : Se ejecuta siempre y cuando la condición 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 número predeterminado de veces.

lista = [1,2,3,4,5,6,7] for indice in lista: print ‘el indice es:', indice

• break : interrumpe la ejecución del bucle.

• continue : Interrumpe una iteracción del bucle.

• else : Ejecuta un bloque de código siempre cuanto no se interrumpa el bucle con una sentencia break.

Page 18: Python Ittux

Bucles

• Comprensión de listas:

• Son maneras convenientes de generar o extraer información de las listas. Las Comprensiones de Lista tienen esta forma general: [elemento for elemento in Lista if Condición]

• Las Comprensiones de Lista tienen esta forma general: [elemento for elemento in Lista if Condición]

Page 19: Python Ittux

Funciones

• Funciones lambda:• Funciones definidas en una sola linea.• Son cuestión de estilo

• g = lambda x: x*2

def nombre(): pass

• Parametros por defectodef nombre(var1, var2=1, var3=2): pass

Page 20: Python Ittux

Funciones

• Generadores:Son funciones que nos permitirán obtener sus resultados poco a poco. Es decir, cada vez que llamemos a la función nos darán un nuevo resultado. Por ejemplo, una función para generar todos los números pares que cada vez que la llamemos nos devuelva el siguiente número par.

• Se utiliza yield en lugar de return.

• Decoradores: un decorador es una función ‘d’ que recibe como argumento otra función ‘a’ y retorna una nueva función ‘b’. La nueva función ‘b’ es la función ‘a’ decorada con ‘d’.

Page 21: Python Ittux

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