Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1 Caractersticas 2 Ejecutando cdigo Python 3 Introduccin informal a Python 4 Estructuras de control 5 Estructuras de datos
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.
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/
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
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
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
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]
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
Operadores:
lgicos Operador and or not booleanos Operador == != < > <= >=
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?
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
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
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
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
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
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.
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]
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
Trabajo en clase:
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
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]
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.
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
Continuar...