Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5
Referencia Rápida de Python
FPI/FCyP
Tipos Básicos Operadores lógicos Bloques de decisiones
int Números enteros 42 A igual nivel de precedencia en las operaciones, se Cada secuencia if, if-else o if-elif-else es un blo- float Números flotantes 1.618 agrupan de a pares de izquierda a derecha. que independiente. bool Valores lógicos True Dentro de un mismo bloque se ejecutarán las sen- str Strings "Monty" Ejemplo Operación P T tencias condicionadas a la primera condición válida list Listas [1, 2, 3] x > y Mayor que 5 B comprobada. x >= y Mayor o igual que 5 B Si existieran 2 bloques de decisión consecutivos se x < y Menor que 5 B ejecutarán las sentencias condicionadas a la primera Operaciones Básicas x <= y Menor o igual que 5 B condición válida para cada bloque de manera inde- input("Mensaje") Muestra Mensaje y reci- x == y Igual que 5 B pendiente. be entrada por teclado del x != y Distinto que 5 B usuario x in l Pertenece a 5 B Ciclos con while print(valor,...) Muestra por pantalla los x not in l No pertenece a 5 B Realizar una repetición condicionada de sentencias: valores separados por co- not p Negación 6 U ma p and q Y lógico 7 B while < condici ón >: x = y Asignación, x toma el va- p or q O lógico 8 B < sentencias_a_repetir > lor de la expresión y Donde condición es una expresión booleana y Decisiones con if <sentencias_a_repetir> (última instrucción inden- Operadores Aritméticos Ejecutar sentencias que solo deben ocurrir al cum- tada con respecto a while) es la secuencia de ins- A igual nivel de precedencia (P) en las operaciones, plirse la <condición> (expresión booleana): trucciones a repetir. se agrupan de a pares de izquierda a derecha. A través de este bloque, se asegura la ejecución de if < condici ón >: las <sentencias_a_repetir> mientras se cumpla la < sentencias condicionadas > Ejemplo Operación P T a condición señalada. x ** y Exponenciaciónb 1 B Ejecutar sentencias que solo deben ocurrir al cum- Se puede repetir cualquier sentencia, incluyendo + x Identidad 2 U plirse una condición, y otras en caso que no: otros ciclos. - x Cambio de signo 2 U if < condici ón >: x * y Multiplicación 3 B < sentencias condicionadas > Banderas (Flags) x / y División 3 B else : Parte de la <condición> puede ser una variable boo- x // y División entera 3 B < sentencias alternativas > leana: esta indica si se debe continuar o no, según x % y Módulo (restoc ) 3 B qué ocurra en el ciclo: Ejecutar sentencias que solo deben ocurrir al cum- x + y Suma 4 B plirse una condición, otras en caso de que no se cum- i = 1 x - y Resta 4 B pla la primera condición, pero si una segunda condi- keep_going = True cióna , y otras en caso de que no se cumpla la primera while keep_going and i <= 5: Los operadores unarios (U) toman solo un operando. ni la segunda: if i % 2 == 0: Los operadores binarios (B) toman dos. keep_going = False Todos los operadores aritméticos binarios tienen una if < condici ó n 1 >: i += 1 versión de asignación como +=, que se usa como en < sentencias condicionadas 1 > el ejemplo: elif < condici ó n 2 >: Haciendo uso de decisiones (if) y de una bandera < sentencias condicionadas 2 > (keep_going), se puede verificar si se cumple una con- x += y se interpreta como x = x + y else : dición adicional bajo la cual detener el ciclo antes de a Tipo < sentencias alternativas > que el iterador i llegue a su límite. b Se agrupan de derecha a izquierda. c De la división entera. a Tantas condiciones secundarias (elif) como se necesite. Listas Cortes y Copias Strings lista = [1, 2, 3] Define un objeto de tipo Pueden accederse cortes de una secuencia como una s = "Monty" Define un objeto de tipo lista. lista o string mediante la notación slice. Su notación s = 'Python' string. lista[i] Retorna el elemento en la básica es s.find(sub) Retorna el índice donde posición i. Soporta de 0 a empieza sub. objeto[a:b:c], n-1a de izquierda a dere- s.rfind(sub) Como find, pero desde la cha y de -1 a -n de dere- retornando un objeto del mismo tipo del seccionado, derecha. cha a izquierda. con a el índice inicial del corte, b el índice final (él s.index(sub) Como find, pero arroja lista.append(4) Añade el elemento 4 al fi- último índice retornado será siempre el mayor valor error si no encuentra. nal de la lista. posible menor a b) y c la distancia entre dos elemen- s.lower() Retorna el string en mi- lista[j] = z Redefine el valor del ele- tos consecutivos recuperados. a y b deben ser índices núscula. mento en la posición j de válidos y c debe ser un número entero (positivo o ne- s.upper() Retorna el string en ma- la lista a z. gativo). yúscula. lista.pop(k) Retorna el elemento en la Esta notación tiene las siguientes variaciones: s.strip(t) Retorna el string elimi- posición k y lo elimina de nando los caracteres en t lista. Sin parámetros re- Si se omite a (pero no :), inicia desde el co- de los extremos del string. torna y elimina el último mienzo. s.strip() Como strip, pero elimi- elemento. nando espacios en blanco. lista.count(c) Si se omite b (pero no :), llega hasta el final. Retorna la cantidad de s.capitalize() Retorna el string converti- apariciones del elemento Si se omite c (incluyendo o no :), se asume 1. do con el primer caracter c. a mayúscula, si es una le- lista.index(d) Retorna la posición del tra, y el resto a minúscula. Consultas sobre Strings elemento d. s.title() Retorna el string en “For- lista.remove(e) Elimina la primera apari- Todos estos métodos devuelven True o False. mato De Título”. s.isupper() Todas las letras son ma- ción del elemento e. s.count(sub) Retorna la cantidad de yúsculas y hay al menos lista.insert(i, f) Inserta el elemento f en la apariciones no superpues- una. posición ib . tas de sub. s.islower() Todas las letras son mi- lista.sort() Ordena lista en orden núsculas y hay al menos creciente. Funciones Nativas una. lista1 + lista2 Retorna una lista que con- s.isalpha() Todos los caracteres son Estas funciones, entre otras, están siempre disponi- catena lista1 y lista2. alfabéticos. bles: lista * n Retorna una lista que con- abs(x) Valor absoluto de x. s.isdigit() Todos los caracteres son catena lista n vecesc . max(seq) Retorna el máximo de dígitos. a Con n equivalente al largo de la lista. s.isalnum() Todos los caracteres son seq. b Los elementos siguientes son desplazados en 1 posición a alfabéticos o dígitos. min(seq) Retorna el mínimo de seq. la derecha. s.endswith(t) El string termina con t. range(stop) Genera una secuencia de c n debe ser entero. s.startswith(t) El string empieza con t. range(i, f, s) valores enteros. round(x) Redondea x a entero o a Largo de una Secuencia round(x, n) n decimales. String a Lista y Viceversa El largo de la secuencia seq se obtiene mediante la sorted(seq) Retorna la secuencia seq s.split(sep) separa el string utilizando sep ordenada función nativa len(seq). Se entiende por “largo” de como separador y retorna una lista cuyos ele- type(o) Retorna el tipo de o una secuencia como el total de elementos que hay en mentos son los fragmentos del string. isinstance(o, c) Verifica si o es del tipo c esta. En el caso de una lista, si tiene como elemento otra El nombre de cada tipo de dato es la función pa- sep.join(lista) une los elementos de lista, lista, este elemento sigue contando como uno solo. ra cambiar a dicho tipo de dato, p.e.: x = int(y) o separados por sep, en un único string. Solo l = list(s) (si s es un conjunto o secuencia, como funciona si los elementos son strings. un string). Funciones Importadas Recursión Importación de Módulos Propios Un módulo es un archivo que contiene definiciones y Python solo requiere el nombre de la función para Si escribimos funciones y constantes en un archi- declaraciones en Python. poder utilizarla, por lo que podemos construir una vo independiente, puede importarse como cualquier Existen módulos estándar (siempre disponibles para función en base a sí misma: otro módulo: importar), definidos por el programador y externos def func ( x ): # Si utilidades . py existe en la (instalados en el sistema). if condici ó n ( x ): # misma carpeta Para importar, utilizamos: new_x = operaciones ( x ) import utilidades import module return func ( new_x ) else : Alternativamente, # Uso de , por ejemplo , func1 : module . func1 ( params ) return otras_operaciones ( x ) from utilidades import func # Alternativamente , podemos dar un # alias Se pueden importar nombres de funciones y cons- import module as bla Comentarios y Documentación tantes. bla . func1 ( params ) Las líneas comenzadas por # son comentarios e igno- El nombre del módulo no puede contener espacios. rados por el intérprete. Sirven para documentar el En casos especiales, podemos importar solo las fun- Ciclos con for código para quien lo lea. ciones de interés utilizando: Las funciones se pueden documentar con docstrings, Repite la acción por cada elemento de la secuencia: from module import func1, func2, func3 explicando su utilidad y forma de uso inmediatamen- for elemento in secuencia : te después de definirlas: ac ci on es_ a_ re pet ir De modo que se pueda utilizar func1, func2 y func3 def ejemplo ( arg1 , arg2 = valor ): como si fuesen nativas. La variable elemento es definida en está secuencia y """ Descripci ó n de lo que hace la funci ó n su valor es cada elemento de la secuencia en orden. Definición de Funciones Propias Entre las secuencias, se incluyen (entre muchos La estructura básica de definición de funciones es: Entradas : Se describen sus entradas otros) archivos, list, str, range, etc. ( incluyendo tipo de dato ) def func_name ( arg1 , arg2 , arg3 = valor ): Salidas : Se describen sus salidas Función range definiciones_y_operaciones_locales ( incluyendo tipo de dato ) return resultado Generación de secuencias numéricas: """ operaciones range(stop) genera números de 0 a stop-1. Dondequiera que se encuentre return, se finali- return resultado za la función y se entrega ese resultado. Puede range(start, stop, d) genera números desde Las docstrings son un tipo de string multilínea, pue- haber varios, según si los resultados son con- start hasta stop-1, con distancia de d entre den escribirse con triple comilla simple ('''así''') dicionados. ellos. o triple comilla doble ("""así"""). Los parámetros son tantos como se requieran. N.B.: Los comentarios son para quien leerá o modifi- Nótese que range no es una lista, pero puede conver- Si no se requieren, los paréntesis van vacíos. cará el código, las docstrings son para quien utilizará tirse a una mediante list(range(n)). la función en el suyo propio. Los parámetros opcionales se escriben al final, Archivos dándoles su valor por defecto (como en arg3). Módulos Estándar Un archivo es un objeto especial en Python creado Una vez definida, se llama como una función nativa math Funciones matemáticas. con la función nativa open: sys Funciones y parámetros del intérprete. normal: op.path Manipulaciones de rutas de archivo. file = open(ruta, modo) # Solo par á metros obligatorios random Generación de números pseudo aleato- r = func_name (x , y ) rios. El parámetro ruta (str) especifica dónde encontrar # Con el par á metro opcional datetime Tipos básicos de fecha y hora. el archivo (carpetas y nombre). r = func_name (x , y , z ) copy Operaciones de copia superficial y pro- Cuando dejamos de usar el archivo, debemos cerrar- # Dando nombre del par á metro opcional funda. lo, para lo que se utiliza el método close, como en r = func_name (x , y , arg3 = z ) time Operaciones de tiempo. file.close(). Parámetros de archivo Módulos externos Operaciones vectoriales Pueden darse tres modos de apertura: Se pueden instalar módulos utilizando pip en la ter- Todos los operadores aritméticos básicos y de com- minal del sistema: paración se aplican elemento a elemento en arreglos Opción Modo del mismo tamaño, p.e.: pip install m ó dulo r Lectura w Escritura w = u + v Algunos módulos importantes: a Añadir numpy Arreglos multidimensionales y Aplica la suma a cada par de elementos. Similarmen- computación científica. te, si a es un escalar, Si la codificación del archivo no es la del sistema, se matplotlib Visualizaciones y gráficos. puede especificar con encoding: v = a + u Una vez instalados, se importan como cualquier otro file = open ( ruta , modo , módulo: suma su valor a todos los elementos de u. encoding = " utf8 " ) import numpy as np Para las operaciones lógicas vectoriales, existen los siguientes operadores: Las principales codificaciones aquí son utf8 y Las próximas secciones asumirán que numpy ha sido ~u Negación por elementos. latin1. importado de esta manera. u & v Y lógico elemento a elemento. u | v O lógico elemento a elemento. Operación with Arreglos en numpy u ^ v O excluyente elemento a ele- Podemos utilizar un administrador de contexto mento. Se puede transformar una secuencia (o secuencia de para trabajar con archivos, a través del bloque Estas operaciones tienen la misma precedencia que secuencias) mediante la función: with ... as..., en cuyo caso no es necesario utilizar un comparador. close: a = np . array ( secuencia ) with open ( ruta , modo ) as file : Todos los elementos del arreglo son del mismo tipo. Funciones vectoriales opera ciones_s obre ( file ) El parámetro opcional dtype permite especificar el Las siguientes funciones son versiones para aplicar tipo de dato (e.g. , dtype=float para un arreglo de sobre todos los elementos de un array: flotantes). np.sin(u) Seno. Operaciones sobre Archivos El tipo de dato del arreglo es np.ndarray y es muta- np.cos(u) Coseno. Los métodos básicos de archivo son: ble (soporta asignación de elementos). np.exp(u) Exponencial. file = open(r, m) Abre el archivo en la ubi- np.log(u) Logaritmo. cación r con modo m. np.logical_not(u) ~u Operaciones de arreglo file.read() Lee todo el archivo o np.logical_and(u, v) u & v file.read(n) hasta n caracteres. Siendo u un arreglo, np.logical_or(u, v) u | v file.readline() Lee como string hasta el u[i] Posición i. np.logical_xor(u, v) u ^ v próximo final de línea. u[i, j] Posición en fila i y columna j np.all(u) True si todos lo son. file.readlines() Lee como lista de strings u.shape Tupla con las dimensiones. np.any(u) True si alguno lo es. todo el archivo. len(u) Tamaño de primera dimensión file.write(s) Escribe el string s en el ar- de u. chivo. u.flat Iterador undimensional con to- Generadores file.writelines(l) Escribe la lista de strings dos los elementos. Las siguientes funciones generan arreglos siguiendo l en el archivo. u.flatten() Copia unidimensional del arre- diferentes patrones: file.close() Cierra el archivo, impi- glo. np.arange(n) Arreglo como range. diendo futuros accesos. Para acceder a los elementos, tanto i como j pueden np.arange(a, b, c) Cada lectura y escritura se hacen a partir de don- ser cortes (slices) np.linspace(a, b, c) c puntos desde a hasta de terminó la anterior. Toda lectura y escritura es b. literal: no se añaden ni quitan caracteres. np.zeros(n) Arreglo de 0 de tamaño n. np.ones(n) Arreglo de 1 de tamaño n. Módulo Matplotlib Gráfico Circular Etiquetas del gráfico El módulo Matplotlib permite visualizar y crear grá- Se genera con plt.pie y requiere un vector o lista con valores. Genera una “torta” de radio 1. Sus pa- plt . title ( " T í tulo ␣ del ␣ gr á fico " ) ficos a través de su interfaz pyplot: plt . xlabel ( " Eje ␣ $x$ " ) rámetros incluyen: import matplotlib . pyplot as plt plt . ylabel ( " Eje ␣ $y$ " ) autopct str para etiquetar las por- # Posiciones y etiquetas deben Las funciones principales se obtienen a partir de este ciones con su valor. # ser del mismo largo submódulo. Tras generar los gráficos, estos se visua- labels Secuencia de etiquetas. # Etiquetas pueden ser strings lizan usando: explode Secuencia con distancia plt . xticks ( posiciones_x , etiquetas_x ) plt . show () del centro para cada por- plt . yticks ( posiciones_y , etiquetas_y ) ción. labeldistance Distancia de la etiqueta. Gráfico de línea rotatelabels Para True, rota las etique- Leyenda Se crean gráficos de líneas con plt.plot. Su paráme- tas para cada porción. Las leyendas se incluyen a partir de las etiquetas de Ejemplo: cada gráfico (parámetro opcional label) o directa- tro son arreglos o equivalentes con valores numéricos: valores = [0 , 2 , 1 , 3] mente con plt.legend. # Gr á fico de y versus sus í ndices etiquetas = [ " a " , " b " , " c " , " d " ] # Genera leyenda a partir de etiquetas g = plt . plot ( y ) plt . pie ( valores , labels = etiquetas , # previas # Gr á fico de y versus x autopct = " %1.f % %" ) plt . legend () g = plt . plot (x , y ) # Gr á fico de y versus x rojo # Expl í citamente se dan las leyendas g = plt . plot (x , y , 'r ') # ( en orden de creaci ó n ) Histograma plt . legend ([ " a " , " b " , " c " ]) Retorna una lista de gráficos. Muestra frecuencia de ocurrencia de valores en con- # Asignando expl í citamente a cada uno Pueden graficarse varias líneas agrupando dos o tres tenedores (bins). Su parámetro bins es cuántos con- plt . legend (g , " a " ) parámetros: eje x, eje y, formato (opcional): tenedores hay o una secuencia que los especifique: g = plt . plot ( x_1 , y , x_1 , z , x_2 , f ) dados = np . random . randint (1 , 10 , 10000) Múltiples gráficos plt . hist ( dados , bins =5) # Crea y selecciona figura en blanco Estilo de las líneas fig = plt . figure () El estilo del gráfico se controla mediante la función Gráfico de Barras # Selecciona figura n plt.setp y sus parámetros: Un gráfico de barras se construye igual que el de fig = plt . figure ( n ) líneas, pero solo uno a la vez. Sus parámetros prin- # Selecciona el subgr á fico i plt . setp (g , param_1 = valor , cipales son posición y alto de cada barra: # al subdividir la figura en n por m param_2 = valor ,...) plt . subplot (n , m , i ) El parámetro g es un gráfico o lista de gráficos. El plt . bar ( np . arange ( len ( valores )) , valores , width =0.8 , Se crean los gráficos en la última figura seleccionada. resto de parámetros incluye: align = ' center ') # Crea figura y un eje para graficar color Color de la línea. marker Tipo de marcador. Los valores por defecto de los parámetros son los da- fig , ax = plt . subplots () markersize Tamaño de marcador en dos. ax . plot (x , y ) # Crea figura y arreglo de n ejes puntos. Para un gráfico de barras horizontal, se usa plt.barh # para graficar linestyle Tipo de línea. y se intercambian los parámetros height y width: fig , ax = plt . subplots ( n ) linewidth Ancho de línea en puntos. plt . barh ( np . arange ( len ( valores )) , ax [0]. plot (x , y ) valores , height =0.8 , # Crea figura y matriz de align = ' center ') # n por m de ejes fig , ax = plt . subplots (n , m ) ax [0 , 0]. plot (x , y )