Post on 05-Apr-2018
7/31/2019 Introduccin a Python con ejemplos
1/36
Introduccin a Python con ejemplos
Introduccin a Python con ejemplos
Gerardo Montemayor-Garca
Laboratorio de Tecnologas de la Informacin, CINVESTAV - Tamaulipas, ParqueCientfico y Tecnolgico TECNOTAM. Km. 5.5, carretera Cd. Victoria-Soto La
Marina. Cd. Victoria, Tamaulipas, 87130, MXICO
gmontemayor@tamps.cinvestav.mx
15 de Noviembre del 2011
http://find/7/31/2019 Introduccin a Python con ejemplos
2/36
Introduccin a Python con ejemplos
1 Caractersticas
2 Ejecutando cdigo Python
3 Introduccin informal a Python
4 Estructuras de control
5 Estructuras de datos
http://find/7/31/2019 Introduccin a Python con ejemplos
3/36
Introduccin a Python con ejemplos
Caractersticas
Caractersticas I
Desarrollado por Guido van Rossum a principios de los 1990s.
Su sitio Web oficial: www.python.org.
Es open source.
Su sintaxis y estructura son muy limpias, intuitivas y fciles deaprender.
Desarrollo rpido de aplicaciones en muchas reas en la mayorade las plataformas.
Los programas en Python son comnmente ms cortos que susequivalentes en C, C++ o Java
Es posible agregar extensiones desarrolladas en C o C + +.
Manejo de memoria automtico.
http://www.python.org/http://www.python.org/http://find/7/31/2019 Introduccin a Python con ejemplos
4/36
Introduccin a Python con ejemplos
Caractersticas
Caractersticas II
Es un lenguaje de programacin multiparadigma: POO,Programacin Imperativa y Programacin Funcional.
Otros paradigmas estn soportados mediante el uso deextensiones.
Python usa tipado dinmico y es fuertemente tipado.
Python es OO. Soporta conceptos como polimorfismo,sobrecarga de operadores y herencia mltiple.
Resolucin dinmica de nombres (ligadura dinmica demtodos).
Tiempos de ejecucin en http://shootout.alioth.debian.org/
http://shootout.alioth.debian.org/http://shootout.alioth.debian.org/http://find/7/31/2019 Introduccin a Python con ejemplos
5/36
Introduccin a Python con ejemplos
Ejecutando cdigo Python
Ejecutando cdigo Python I
Llamar al interprete Python puede variar dependiendo de laplataforma.
Comnmente lo encontramos como /usr/local/bin/python.
En un sistema basado en unix todo lo que se debe de hacer estipear en la lnea de comandos1:
:$ python
Despus de un breve mensaje aparecer el smbolo >>>, lo culindica que ha iniciado el interprete.
Para salir del interprete teclear ctrl + D, o escribir exit().
Nuestro hello world!:>>> print(hello world)
hello world!1Si ya se ha configurado la variable de entorno
d h l
http://find/7/31/2019 Introduccin a Python con ejemplos
6/36
Introduccin a Python con ejemplos
Ejecutando cdigo Python
Ejecutando cdigo Python II
Los scripts de Python pueden ser escritos en archivos de textoutilizando el sufijo .py.
El interprete puede leer scripts de diferente manera:
Ejecutar el script y retornar el resultado en la terminal$ python script.pyLa opcin -i deja abierta la terminal despus de ejecutar elscript$ python -i script.py
El comando execfile lee y ejecuta el script como si hubiesesido escrito directamente en el interprete$ >>> execfile(script.py)Ejecuta el script enviando parmetros de entrada2
$ python script.py param1 param2 param3
2Mas adelante habr ms detalles sobre el paso de parmetros
I t d i P th j l
http://find/7/31/2019 Introduccin a Python con ejemplos
7/36
Introduccin a Python con ejemplos
Introduccin informal a Python
Utilizando Python como calculadora I
Los enteros son implementados como los long de C
>>> 2 + 24
>>> #Comentario:>>> 2 + 2 #Comentario en la misma lnea4
>>> (50 5 6)/45.0
>>> 8/5 #Divisin entre enteros devuelve enteros1.0
>>> 999999999999999999999L #Un long integer debe terminaren l o L
I t d i P th j l
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
8/36
Introduccin a Python con ejemplos
Introduccin informal a Python
Utilizando Python como calculadora II
Divisin con flotantes devuelve flotantes
>>> 8.0/51.6
>>> 8.0//5 #La doble // fuerza el resultado a la funcin piso1.0
Los flotantes son implementados como los double de C
>>> 0. + 1.0 + 1e10 + 3.14e 2 + 6.99E410000069901.031401
El signo = se utiliza para asignar valores a las variables
>>> width = 20>>> height = 5 9>>> width * height900
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
9/36
Introduccin a Python con ejemplos
Introduccin informal a Python
Utilizando Python como calculadora III
Un valor puede ser asignado a muchas variablessimultneamente>>> x = y = z = 0>>> x
0>>> y0>>> z0
En el modo interactivo, la ltima impresin es asignada a lavariable _>>> 500.5 31501.5>>> _+ 2
1503.5
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
10/36
Introduccin a Python con ejemplos
Introduccin informal a Python
Utilizando Python como calculadora IV
Las variables deben de ser definidas (se les debe asignar unvalor) antes de que puedan ser utilizadas
>>> nTraceback (most recent call last):
File , line 1, in NameError: name n is not defined
Python tambin soporta nmeros complejos
>>> 2 + 3j #(real + imaginarioj)(2+3j)
>>> complex(0,1) #complex(real + imaginarioj)(2+3j)
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
11/36
Introduccin a Python con ejemplos
Introduccin informal a Python
Utilizando Python como calculadora V
Tambin es posible realizar operaciones con nmeros complejos
>>> 3 + 1j * 3(3+3j)
>>> a = 1.5+0.5j>>> a.real1.5
>>> a.imag0.5
>>> float(a)Traceback (most recent call last):File , line 1, in
TypeError: cant convert complex to float
>>> abs(a) #sqrt(a.real**2 + a.imag**2)
1.5811388300841898
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
12/36
Introduccin a Python con ejemplos
Introduccin informal a Python
Strings
El manejo de cadenas en Python tambin es interesante
>>> abcDEFabcDEF
>>> abcDEF #Con doble comilla el texto puede extenderse sobremltiples lneasabcDEF
>>> a=abcdef>>> len(a) #Longitud de la cadena en a6
Concatenacin y repeticin
>>> abc+def #Concatenacinabcdef
>>> abc*3 #Repeticin
abcabcabc
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
13/36
y j p
Introduccin informal a Python
Indexado y rebanado I
Python inicia indexando en 0. Una cadena s tiene desde el ndice0 hasta len(s) 1 (donde len(s) es el tamao de s) en cantidadesenteras.
s[i] hace referencia al ith elemento de s
>>> s=cadenas>>> s[1]a
s[i : j] obtiene los elementos desde i (incluido) hasta j (noincluido)>>> s[1:4]ade
s[: j] obtiene todos los elementos hasta la posicin j 1>>> s[:4]
cade
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
14/36
y j p
Introduccin informal a Python
Indexado y rebanadas I
s[i :] obtiene todos los elementos de i en adelante (incluyndolo)
>>> s[2:]denas
s[i : j : k] obtiene cada kth elemento iniciando en i (inlcusivo) yfinalizando en j (no inclusivo)>>> s[0:5:2]cdn
Python tambin soporta indices negativos. Por ejemplo, s[1]
significa extraer el primer elemento de s del final (igual ques[len(s) 1])>>> s[-1]s
>>> s[-3]
n
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
15/36
y j p
Introduccin informal a Python
Listas I (operaciones bsicas)
Las listas pueden contener nmeros, cadenas, sub-listas, o nada.Son definidas con []
Por ejemplo: L1 = [0, 1, 2, 3], L2 = [jose, diana],L3 = [0, 1, [2, 3], mario, [diana, luis]], L4 = []
El indexado funciona como en las cadenas
>>> L1 = [0,1,[2,3],mario,[diana,luis]][0,1,[2,3],mario,[diana,luis]]
>>> L1[3]=2
[0,1,[2,3],2,[diana,luis]]Indexado: L1[i], L2[i][j]
Rebanadas: L3[i : j]
Concatenacin: L1 + L2
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
16/36
Introduccin informal a Python
Listas II (operaciones bsicas)
Repeticin: L1 3
Aadir (L1=[1,2,3]):
>>> L1.append(4)[1,2,3,4]
Ordenar (L1=[4,2,1,3]):
>>> L1.sort()[1,2,3,4]
Reversa (L2=[1,2,3,4]):
>>> L2.reverse()[4,3,2,1]
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
17/36
Introduccin informal a Python
Listas III (operaciones bsicas)
Eliminar ndices (L2=[1,2,3,4]):>>> del L2[2][1,2,4]>>> L2[1:3]=[]
[1]Re-asignacin de rebanadas (L2=[1,2,3,4,5]):>>> L2[1:4]=[9,9,9][1, 9, 9, 9, 5]
Listas automticas de enteros:>>> range(10)[0,1,2,3,4,5,6,7,8,9]>>> range(1,10)[1,2,3,4,5,6,7,8,9]>>> range(1,10,2)[1,3,5,7,9]
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
18/36
Introduccin informal a Python
Tuplas
Las tuplas son muy similares a las listas (pueden contenernmeros, cadenas, sub-tuplas, o nada). Son definidas con ()
Por ejemplo: T1 = (0, 1, 2, 3), T2 = (jose, diana),T3 = (0, 1, (2, 3), mario, (diana, luis)), T4 = ()
El indexado funciona igual que en las listas y cadenas. Porejemplo: T1[i], T1[i][j]
Slo que no es posible modificar los elementos de una tupla
>>> T1[0]=5
Traceback (most recent call last):File , line 1, in
TypeError: tuple object does not support item assignment
La concatenacin, repeticin y obtencin de tamao funcionanigual que en las listas y cadenas
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
19/36
Estructuras de control
Operadores:
lgicosOperador Descripcin Ejemplo
and se cumple a y b? True and False (False)or se cumple a o b? True or False (True)not No a not True (False)
booleanosOperador Descripcin Ejemplo== son iguales a y b? 5 == 3 (False)
!= son distintos a y b? 5 != 3 (True)< es a menor que b? 5 < 3 (False)> es a mayor que b? 5 > 3 (True)= 3 (True)
Introduccin a Python con ejemplos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
20/36
Estructuras de control
Sentencia if
En Python, cualquier entero distinto de cero es True; cero es False.
La condicin puede ser una cadena o lista, incluso unasecuencia; cualquiera con longitud distinta a cero es True,secuencias vacas son False.
>>> x = int(input(Escriba un entero: ))Escriba un entero: 42
. . . if x>> spositivo
Introduccin a Python con ejemplosE d l
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
21/36
Estructuras de control
Ciclo while
El ciclo while ejecuta una condicin mientras sta sea verdadera.
En Python, cualquier entero distinto de cero es True; cero es False.
La condicin puede ser una cadena o lista, incluso unasecuencia; cualquiera con longitud distinta a cero es True,secuencias vacas son False.>>> a, b = 0, 1 #Asignacin simultnea>>> while b
7/31/2019 Introduccin a Python con ejemplos
22/36
Introduccin a Python con ejemplosEstructuras de control
7/31/2019 Introduccin a Python con ejemplos
23/36
Estructuras de control
Sentencias break, continue y pass
break: al igual que en C, se sale del primer ciclo for o while que
la encierracontinue: al igual que en C, contina con la siguiente iteracindel primer ciclo for o while que la encierra
pass: no hace nada. Se utiliza cuando sintcticamente se requiere
una sentencia, pero el programa no requiere realizar acciones
Introduccin a Python con ejemplosEstructuras de control
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
24/36
Estructuras de control
Definicin de funciones I
Podemos crear una funcin que escriba la serie de Fibonacci aun lmite arbitrario:
>>> def fib(n):. . . a, b = 0, 1. . . while a>> fib(200):0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
Introduccin a Python con ejemplosEstructuras de control
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
25/36
Estructuras de control
Definicin de funciones II
Argumentos con valores por default:>>> def preg_ok(mensaje, reintentos=4, asegurar=Si o no!):. . . while True:. . . ok = input(mensaje)#Con in se prueba si una secuencia cuenta o no con cierto valor
. . . if ok in (s, si, simon):
. . . return True
. . . if ok in (n, no, nop, nel):
. . . return False
. . . reintentos = reintentos 1
. . . if reintentos < 0:
. . . raise IOError(rechazado)
. . . print(asegurar)
La funcin preg_ok tiene slo un parmetro obligatorio(mensaje), si los dems se omiten se utilizan los valores por
default.
Introduccin a Python con ejemplosEstructuras de control
http://find/7/31/2019 Introduccin a Python con ejemplos
26/36
Estructuras de control
Definicin de funciones III
El concepto de funciones de ms alto orden se refiere a utilizarfunciones como si se tratara de un valor cualquiera
Posibilitando el pasar funciones como parmetros de otras
funciones o devolver funciones como valor de retornoPor ejemplo, la funcin filter requiere una funcin y una lista, yregresa una nueva lista que contiene slo los valores de la listaoriginal para los que la funcin regres True.
>>> nums = [1,3,5,10,20,30,2,4,11,6]>>> def es_menor(x):. . . return x>> filter(es_menor, nums)[1, 3, 5, 10, 2, 4, 6]
Introduccin a Python con ejemplosEstructuras de control
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
27/36
st ct s de co t o
Definicin de funciones IV
Otro ejemplo de funciones de ms alto orden es map, la cualrequiere una funcin y una (o ms) lista (s), y regresa una lista
donde la funcin dada fue aplicada a cada elemento de la lista (olistas).
>>> nums = [2,4,10,30,50]>>> def agrega_uno(x):. . . return x+1:
>>> map(agrega_uno, nums)[3, 5, 11, 31, 51]
Introduccin a Python con ejemplosEstructuras de control
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
28/36
Definicin de funciones V
Por ltimo, la funcin reduce toma como parmetros una
funcin, una lista y opcionalmente un valor inicial, y retorna unnico valor.
>>> nums = [1,2,3,10,20,30]>>> def add(x, y):. . . return x+y:>>> reduce(add, nums)66
Introduccin a Python con ejemplosEstructuras de control
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
29/36
Trabajo en clase:
emular el funcionamiento de las funciones filter, map y reduce
Introduccin a Python con ejemplosEstructuras de datos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
30/36
Ms sobre listas I
>>> list.append(x) #Agrega un elemento al final de la lista>>> list.extend(L) #Agrega todos los L elementos a la lista>>> list.insert(i,x) #Inserta un elemento i en la posicin x dada>>> list.remove(x) #Elimina el primer elemento de la lista cuyo valor seax. Error si no existe dicho elemento.>>> list.pop(i) #Elimina el elemento de la posicin dada, y lo regresa. Sino se especifica un ndice (a.pop()) se elimina y retorna el ltimo elemento dela lista.>>> list.index(x) #Regresa el ndice del primer elemento de la lista cuyo
valor es x. Error si no existe dicho elemento.>>> list.count(x) #Regresa el nmero de veces que x aparece en la lista>>> list.sort() #Ordena los elementos de la lista>>> list.reverse() #Invierte el orden de los elementos de la lista
Introduccin a Python con ejemplosEstructuras de datos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
31/36
Ms sobre listas II
>>> a = [66.25, 333, 333, 1, 1234.5]>>> print(a.count(333), a.count(66.25), a.count(x))2 1 0>>> a.insert(2, -1)
>>> a.append(333)[66.25, 333, -1, 333, 1, 1234.5, 333]>>> a.index(333)1>>> a.remove(333)
[66.25, -1, 333, 1, 1234.5, 333]>>> a.reverse()[333, 1234.5, 1, 333, -1, 66.25]>>> a.sort()[-1, 1, 66.25, 333, 333, 1234.5]
Introduccin a Python con ejemplosEstructuras de datos
http://find/7/31/2019 Introduccin a Python con ejemplos
32/36
Utilizando listas como pilas
Los mtodos vistos anteriormente hacen fcil el utilizar una listacomo pila, en donde el ltimo elemento agregado es el primeroen salir>>> stack = [3, 4, 5]>>> stack.append(6)>>> stack.append(7)>>> stack[3, 4, 5, 6, 7]>>> stack.pop()7
>>> stack[3, 4, 5, 6]>>> stack.pop()6>>> stack
[3,4,5]
Introduccin a Python con ejemplosEstructuras de datos
http://find/http://goback/7/31/2019 Introduccin a Python con ejemplos
33/36
Utilizando listas como colas
Tambin es posible utilizar listas como colas, en donde el primerelemento agregado es el primero en salir
Para implementar una cola se utiliza collections.deque el cual fuediseado para agregar y quitar elementos rpidamente del
principio y del final>>> from collections import deque>>> queue = deque([Eric, John, Michael])>>> queue.append(Terry)>>> queue.append(Graham)
>>> queue.popleft()Eric>>> queue.popleft()John>>> queuedeque([Michael, Terry, Graham])
Introduccin a Python con ejemplosEstructuras de datos
http://find/7/31/2019 Introduccin a Python con ejemplos
34/36
Diccionarios I
Las operaciones principales en los diccionarios son de almacenarun valor con una llave y recuperar dicho valor dando la llave.
Tambin es posible eliminar un par llave : valor con del.
Si se almacena usando una llave que ya est en uso, el valoranterior se perder.
Es un error intentar extraer un valor utilizando una llaveinexistente.
Realizar list(d.keys()) en un diccionario retorna una lista contodas las llaves almacenadas.
Para buscar una nica llave en el diccionario usar in.
Introduccin a Python con ejemplosEstructuras de datos
http://find/7/31/2019 Introduccin a Python con ejemplos
35/36
Diccionarios II
>>> tel = jack: 4098, sape: 4139>>> tel[guido] = 4127>>> telsape: 4139, guido: 4127, jack: 4098>>> tel[jack]
4098>>> del tel[sape]>>> tel[irv] = 4127>>> telguido: 4127, irv: 4127, jack: 4098>>> list(tel.keys())[irv, guido, jack]>>> sorted(tel.keys())[guido, irv, jack]>>> guido in telTrue >>> jack not in tel
False
http://find/7/31/2019 Introduccin a Python con ejemplos
36/36