Sei sulla pagina 1di 36

Introduccin a Python con ejemplos

Introduccin a Python con ejemplos


Gerardo Montemayor-Garca
Laboratorio de Tecnologas de la Informacin, CINVESTAV - Tamaulipas, Parque Cientco 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

Introduccin a Python con ejemplos

1 Caractersticas 2 Ejecutando cdigo Python 3 Introduccin informal a Python 4 Estructuras de control 5 Estructuras de datos

Introduccin a Python con ejemplos Caractersticas

Caractersticas I
Desarrollado por Guido van Rossum a principios de los 1990s. Su sitio Web ocial: www.python.org. Es open source. Su sintaxis y estructura son muy limpias, intuitivas y fciles de aprender. Desarrollo rpido de aplicaciones en muchas reas en la mayora de las plataformas. Los programas en Python son comnmente ms cortos que sus equivalentes en C, C++ o Java Es posible agregar extensiones desarrolladas en C o C + +. Manejo de memoria automtico.

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 de extensiones. Python usa tipado dinmico y es fuertemente tipado. Python es OO. Soporta conceptos como polimorsmo, sobrecarga de operadores y herencia mltiple. Resolucin dinmica de nombres (ligadura dinmica de mtodos). Tiempos de ejecucin en http://shootout.alioth.debian.org/

Introduccin a Python con ejemplos Ejecutando cdigo Python

Ejecutando cdigo Python I


Llamar al interprete Python puede variar dependiendo de la plataforma. Comnmente lo encontramos como /usr/local/bin/python. En un sistema basado en unix todo lo que se debe de hacer es tipear en la lnea de comandos1 : :$ python Despus de un breve mensaje aparecer el smbolo >>>, lo cul indica que ha iniciado el interprete. Para salir del interprete teclear ctrl + D, o escribir exit(). Nuestro hello world!: >>> print(hello world) hello world!
1

Si ya se ha congurado la variable de entorno

Introduccin a Python con ejemplos Ejecutando cdigo Python

Ejecutando cdigo Python II


Los scripts de Python pueden ser escritos en archivos de texto utilizando el sujo .py. El interprete puede leer scripts de diferente manera: Ejecutar el script y retornar el resultado en la terminal $ python script.py La opcin -i deja abierta la terminal despus de ejecutar el script $ python -i script.py El comando execle lee y ejecuta el script como si hubiese sido escrito directamente en el interprete $ >>> execle(script.py) Ejecuta el script enviando parmetros de entrada2 $ python script.py param1 param2 param3
2

Mas adelante habr ms detalles sobre el paso de parmetros

Introduccin a Python con ejemplos Introduccin informal a Python

Utilizando Python como calculadora I


Los enteros son implementados como los long de C >>> 2 + 2 4 >>> #Comentario: >>> 2 + 2 #Comentario en la misma lnea 4 >>> (50 5 6)/4 5.0 >>> 8/5 #Divisin entre enteros devuelve enteros 1.0 >>> 999999999999999999999L #Un long integer debe terminar en l o L

Introduccin a Python con ejemplos Introduccin informal a Python

Utilizando Python como calculadora II


Divisin con otantes devuelve otantes >>> 8.0/5 1.6 >>> 8.0//5 #La doble // fuerza el resultado a la funcin piso 1.0 Los otantes son implementados como los double de C >>> 0. + 1.0 + 1e10 + 3.14e 2 + 6.99E4 10000069901.031401 El signo = se utiliza para asignar valores a las variables >>> width = 20 >>> height = 5 9 >>> width * height 900

Introduccin a Python con ejemplos Introduccin informal a Python

Utilizando Python como calculadora III


Un valor puede ser asignado a muchas variables simultneamente >>> x = y = z = 0 >>> x 0 >>> y 0 >>> z 0 En el modo interactivo, la ltima impresin es asignada a la variable _ >>> 500.5 3 1501.5 >>> _+ 2 1503.5

Introduccin a Python con ejemplos Introduccin informal a Python

Utilizando Python como calculadora IV


Las variables deben de ser denidas (se les debe asignar un valor) antes de que puedan ser utilizadas >>> n Traceback (most recent call last): File <stdin>, line 1, in <module> NameError: name n is not dened Python tambin soporta nmeros complejos >>> 2 + 3j #(real + imaginarioj) (2+3j) >>> complex(0,1) #complex(real + imaginarioj) (2+3j)

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.real 1.5 >>> a.imag 0.5 >>> oat(a) Traceback (most recent call last): File <stdin>, line 1, in <module> TypeError: cant convert complex to oat >>> abs(a) #sqrt(a.real**2 + a.imag**2) 1.5811388300841898

Introduccin a Python con ejemplos Introduccin informal a Python

Strings
El manejo de cadenas en Python tambin es interesante >>> abcDEF abcDEF >>> abcDEF #Con doble comilla el texto puede extenderse sobre mltiples lneas abcDEF >>> a=abcdef >>> len(a) #Longitud de la cadena en a 6 Concatenacin y repeticin >>> abc+def #Concatenacin abcdef >>> abc*3 #Repeticin abcabcabc

Introduccin a Python con ejemplos Introduccin informal a Python

Indexado y rebanado I
Python inicia indexando en 0. Una cadena s tiene desde el ndice 0 hasta len(s) 1 (donde len(s) es el tamao de s) en cantidades enteras. 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 (no incluido) >>> s[1:4] ade s[: j] obtiene todos los elementos hasta la posicin j 1 >>> s[:4] cade

Introduccin a Python con ejemplos 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) y nalizando en j (no inclusivo) >>> s[0:5:2] cdn Python tambin soporta indices negativos. Por ejemplo, s[1] signica extraer el primer elemento de s del nal (igual que s[len(s) 1]) >>> s[-1] s >>> s[-3] n

Introduccin a Python con ejemplos Introduccin informal a Python

Listas I (operaciones bsicas)


Las listas pueden contener nmeros, cadenas, sub-listas, o nada. Son denidas 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 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 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 Introduccin informal a Python

Tuplas
Las tuplas son muy similares a las listas (pueden contener nmeros, cadenas, sub-tuplas, o nada). Son denidas 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. Por ejemplo: T1[i], T1[i][j] Slo que no es posible modicar los elementos de una tupla >>> T1[0]=5 Traceback (most recent call last): File <stdin>, line 1, in <module> TypeError: tuple object does not support item assignment La concatenacin, repeticin y obtencin de tamao funcionan igual que en las listas y cadenas

Introduccin a Python con ejemplos Estructuras de control

Operadores:
lgicos Operador and or not booleanos Operador == != < > <= >=

Descripcin se cumple a y b? se cumple a o b? No a

Ejemplo True and False (False) True or False (True) not True (False) Ejemplo 5 == 3 (False) 5 != 3 (True) 5 < 3 (False) 5 > 3 (True) 5 <= 5 (True) 5 >= 3 (True)

Descripcin son iguales a y b? son distintos a y b? es a menor que b? es a mayor que b? es a menor o igual que b? es a mayor o igual que b?

Introduccin a Python con ejemplos 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 una secuencia; cualquiera con longitud distinta a cero es True, secuencias vacas son False. >>> x = int(input(Escriba un entero: )) Escriba un entero: 42 . . . if x<0: ... s=negativo . . . elif x==0: ... s=cero . . . else : ... s=positivo >>> s positivo

Introduccin a Python con ejemplos 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 una secuencia; cualquiera con longitud distinta a cero es True, secuencias vacas son False. >>> a, b = 0, 1 #Asignacin simultnea >>> while b<10: ... print(b) ... a, b = b, a+b #Asignacin simultnea 1 1 2 3 5 8

Introduccin a Python con ejemplos Estructuras de control

Ciclo for
En Python la sentencia for itera sobre los elementos de una secuencia en el orden en que aparecen >>> a = [mi, ciclo, python] >>> for x in a: ... print(x, len(x)) mi 2 ciclo 5 python 6 >>> for i in range(4): ... print(i) 0 1 2 3

Introduccin a Python con ejemplos Estructuras de control

Sentencias break, continue y pass

break: al igual que en C, se sale del primer ciclo for o while que la encierra continue: al igual que en C, contina con la siguiente iteracin del 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 ejemplos Estructuras de control

Denicin de funciones I

Podemos crear una funcin que escriba la serie de Fibonacci a un lmite arbitrario: >>> def b(n): ... a, b = 0, 1 ... while a<n: ... print(a, end= ) ... a, b = b, a+b ... print() >>> b(200): 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

Introduccin a Python con ejemplos Estructuras de control

Denicin 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 ejemplos Estructuras de control

Denicin de funciones III


El concepto de funciones de ms alto orden se reere a utilizar funciones como si se tratara de un valor cualquiera Posibilitando el pasar funciones como parmetros de otras funciones o devolver funciones como valor de retorno Por ejemplo, la funcin lter requiere una funcin y una lista, y regresa una nueva lista que contiene slo los valores de la lista original para los que la funcin regres True. >>> nums = [1,3,5,10,20,30,2,4,11,6] >>> def es_menor(x): ... return x<=10: >>> lter(es_menor, nums) [1, 3, 5, 10, 2, 4, 6]

Introduccin a Python con ejemplos Estructuras de control

Denicin de funciones IV

Otro ejemplo de funciones de ms alto orden es map, la cual requiere una funcin y una (o ms) lista (s), y regresa una lista donde la funcin dada fue aplicada a cada elemento de la lista (o listas). >>> 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 ejemplos Estructuras de control

Denicin de funciones V

Por ltimo, la funcin reduce toma como parmetros una funcin, una lista y opcionalmente un valor inicial, y retorna un nico valor. >>> nums = [1,2,3,10,20,30] >>> def add(x, y): ... return x+y: >>> reduce(add, nums) 66

Introduccin a Python con ejemplos Estructuras de control

Trabajo en clase:

emular el funcionamiento de las funciones lter, map y reduce

Introduccin a Python con ejemplos Estructuras de datos

Ms sobre listas I
>>> list.append(x) #Agrega un elemento al nal 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 sea x. Error si no existe dicho elemento. >>> list.pop(i) #Elimina el elemento de la posicin dada, y lo regresa. Si no se especica un ndice (a.pop()) se elimina y retorna el ltimo elemento de la 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 ejemplos Estructuras de datos

Ms sobre listas II
>>> a = [66.25, 333, 333, 1, 1234.5] >>> print(a.count(333), a.count(66.25), a.count(x)) 210 >>> 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 ejemplos Estructuras de datos

Utilizando listas como pilas


Los mtodos vistos anteriormente hacen fcil el utilizar una lista como pila, en donde el ltimo elemento agregado es el primero en 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 ejemplos Estructuras de datos

Utilizando listas como colas


Tambin es posible utilizar listas como colas, en donde el primer elemento agregado es el primero en salir Para implementar una cola se utiliza collections.deque el cual fue diseado para agregar y quitar elementos rpidamente del principio y del nal >>> from collections import deque >>> queue = deque([Eric, John, Michael]) >>> queue.append(Terry) >>> queue.append(Graham) >>> queue.popleft() Eric >>> queue.popleft() John >>> queue deque([Michael, Terry, Graham])

Introduccin a Python con ejemplos Estructuras de datos

Diccionarios I
Las operaciones principales en los diccionarios son de almacenar un 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 valor anterior se perder. Es un error intentar extraer un valor utilizando una llave inexistente. Realizar list(d.keys()) en un diccionario retorna una lista con todas las llaves almacenadas. Para buscar una nica llave en el diccionario usar in.

Introduccin a Python con ejemplos Estructuras de datos

Diccionarios II
>>> tel = jack: 4098, sape: 4139 >>> tel[guido] = 4127 >>> tel sape: 4139, guido: 4127, jack: 4098 >>> tel[jack] 4098 >>> del tel[sape] >>> tel[irv] = 4127 >>> tel guido: 4127, irv: 4127, jack: 4098 >>> list(tel.keys()) [irv, guido, jack] >>> sorted(tel.keys()) [guido, irv, jack] >>> guido in tel True >>> jack not in tel False

Introduccin a Python con ejemplos Estructuras de datos

Continuar...

Potrebbero piacerti anche