Está en la página 1de 16

Introducción a la

Ingeniería en Computación
2021

Guía de Referencia Rápida de


Python
Generalidades

Los comentarios comienzan con ‘#’ y continúan hasta el final de la línea.


• Una declaración debe estar toda en una sola línea.
• Y aunque se pueda romper una declaración en múltiples líneas usando ‘\’ al final de cada una
de ellas (salvo la última), mantener las lineas a un máximo de 79 caracteres de largo.
• Excepción:siempre se puede romper dentro de cualquier par( ),[ ]o{ },o en una cadena
delimitada por comillas triples.
• Un identificador está formado por una letra o símbolo ‘_’ seguido de más letras, números o
símbolos ‘_’.
• Python distingue mayúsculas de minúsculas.

Estándar de Código (Redux)


Para Python, PEP 8 se erigió como la guía de estilo a la que más proyectos adhirieron; promueve
un estilo de codificación fácil de leer y visualmente agradable. Todos los desarrolladores Python
deben leerlo en algún momento; aquí están extraídos los puntos más importantes:
• Usar sangrías de 4 espacios, no tabuladores.

4 espacios son un buen compromiso entre una sangría pequeña (permite mayor nivel de
sangrado)y una sangría grande (más fácil de leer). Los tabuladores introducen confusión
y es mejor dejarlos de lado.
• Recortar las líneas para que no superen los 79 caracteres.

Esto ayuda a los usuarios con pantallas pequeñas y hace posible tener varios archivos de
código abiertos, uno al lado del otro, en pantallas grandes.
• Usar líneas en blanco para separar funciones y clases, y bloques grandes de código
dentro de funciones.
• Cuando sea posible, poner comentarios en una sola línea.

r32/2021(MrTín) Página 1 de 16
Introducción a la
Ingeniería en Computación
2021

• Usar docstrings.

• Usar espacios alrededor de operadores y luego de las comas, pero no directamente


dentro de paréntesis: a = f(1, 2) + g(3, 4).

• Nombra tus clases y funciones de manera consistente; la convención es usar


UpperCamelCase para clases y lowercase_with_underscores para
funciones y métodos. Utilice siempre self como el nombre del primer argumento del
método (ver Un primer vistazo a las clases para mas en clases y metodos).
• No uses codificaciones estrafalarias si esperas usar el código en entornos
internacionales. El default de Python, UTF-8, o incluso ASCII plano funcionan bien en
la mayoría de los casos.
• De la misma manera, no uses caracteres no-ASCII en los identificadores si hay
incluso una pequeñísima chance de que gente que hable otro idioma tenga que leer o
mantener el código.

Tipos de datos básicos

Los tipos de datos en Python se dividen en mutables, si su contenido puede cambiarse, e


inmutables, si su contenido no puede cambiarse.

Constantes lógicas (bool)


True (verdadero).

False (falso).

Las constantes lógicas son datos inmutables.


Operadores de comparación

Operadores Significado
<, >, >=, <= Operadores relacionales
!= , == Desigualdad e igualdad
is Identidad “es”
is not Identidad, “no es”

r32/2021(MrTín) Página 2 de 16
Introducción a la
Ingeniería en Computación
2021

Están definidos entre cualesquiera tipos de datos.


Operadores lógicos

Operadores Significado
bool(expr) True si expr es verdadera, False en caso contrario
and, or, xor “Y”, “O”, “O exclusivo” lógico
not Negación lógica

La constante None, los ceros numéricos, las secuencias vacías y los diccionarios y conjuntos
vacíos se consideran falsos.
El resto de datos se consideran verdaderos.
Los operadores or y and solo evalúan expr2 en caso necesario.

Números
Enteros (int): 1234, −123456789.

Reales o números en coma flotante ( float ): 0.001, 10., 3.14e−10. Complejos


(complex): 2+3j, .5−1.4j, 1j.

Todos los tipos de números son datos inmutables.


Operadores numéricos

Operador Significado
+, *, /, - Operadores binarios básicos
a // b División entera entre a y b
% Resto de la división de x por y
a**b a
b a elevado a la b

divmod(x,y) La tupla (x/y, x%y)


Redondea x al valor más cercano con n dígitos tras la coma decimal. El
round(x,n)
valor por defecto de n es 0
Modulo math (¿Que es un Módulo?)

r32/2021(MrTín) Página 3 de 16
Introducción a la
Ingeniería en Computación
2021

Operador Significado
Constantes
math.pi 3.1415926535897931

math.e 2.7182818284590451

Funciones
cos, sin, tan, Trigonométricas
acos, asin, atan

math.ceil
El menor entero mayor o igual que x. El resultado se devuelve como
float
math.degrees(x) Conversión a grados y a radianes respectivamente.
math.radians(x)
math.exp(x) Equivalente a math.e**x
math.fabs(x) Valor absoluto de x como un número float

math.floor(x)
El mayor entero menor o igual que x. El resultado se devuelve como
float
math.log(n, base) Logaritmo de x en la base especificada (por defecto e)
math.log10(n) Logaritmo en base 10 de x
Tupla con la parte decimal y la parte entera (como número real) de x.
math.modf(x)
Ambos números conservan el signo de x
math.sqrt(x) La raíz cuadrada de x

! Nota: La división entre números enteros


retorna un numero entero.

Cadenas de caracteres
Secuencia inmutable de caracteres delimitadas por comillas simples ('Hola'), dobles
("Hola") o triples ( '''Hola'''’, """Hola""").

Python Significado
"hola" Formas de expresar una cadenas de caracteres
'hola' conteniendo hola.
"Esto 'mezcla' con" Cadena conteniendo Esto 'mezcla' con

r32/2021(MrTín) Página 4 de 16
Introducción a la
Ingeniería en Computación
2021

Python Significado
También Esto "mezcla" con
'Esto "mezcla" con'
Permite usar la otra comilla dentro de una cadena.
"""""" Cadena de caracteres de múltiples lineas

str(valor) Crea un texto con la representación en texto del


argumento valor
Una copia de s con solo el primer carácter en
s.capitalize()
mayúsculas

s.count(sub,ini,fin) Número de ocurrencias de la subcadena sub en


s[ini:fin]
El menor índice donde se encuentra sub como
s.find(sub, ini , fin ) subcadena de s [ini:fin], −1 si no se
encuentra
Igual que s.find (sub, ini , fin ), pero
s.index(sub, ini , fin )
provoca un error si la subcadena no se encuentra
s.isalnum() True si todos los caracteres de s son alfanuméricos
s.isalpha() True si todos los caracteres de s son alfabéticos
True si todos los caracteres de s son dígitos, False en
s.isdigit()
caso contrario
s.islower() True si todos los caracteres de s están en minúsculas
True si todos los caracteres de s son espacios en
s.isspace()
blanco
True si todos los caracteres de s están en
s.isupper()
mayúsculas
Concatenación de las cadenas contenidas en sec,
s.join(sec)
separadas por s
Una copia de s con todos los caracteres de s en
s.lower()
minúsculas
Una copia de s con todas (o max) las ocurrencias de
s.replace(vie, nue, max) la subcadena vie reemplazadas por la subcadena
nue
s.rfind(sub, ini, fin) El mayor índice donde se encuentra sub como
subcadena de s [ ini : fin ], −1 si no se

r32/2021(MrTín) Página 5 de 16
Introducción a la
Ingeniería en Computación
2021

Python Significado
encuentra
Igual que s.rfind (sub, ini , fin ), pero
s.rindex(sub, ini, fin)
provoca un error si la subcadena no se encuentra
La lista de todas (o max) palabras obtenidas de s
s.split(sep, max)
usando sep como cadena delimitadora
Igual que s.split(sep,max), pero desde el final
s.rsplit(sep, max)
de la cadena
Copia de s transformando mayúsculas en minúsculas
s.swapcase()
y viceversa
s.upper() Copia de s con todos los caracteres en mayúsculas
Modulo string
string.digits La cadena “0123456789”

string.ascii_letters Una cadena conteniendo todos los caracteres


alfabéticos, en mayúsculas y minúsculas

string.ascii_lowercase Una cadena conteniendo todos los caracteres


alfabéticos en minúsculas

string.ascii_case Una cadena conteniendo todos los caracteres


alfabéticos en mayúsculas

Plantillas
Construye otras cadenas de texto reemplazando los {} por el contenido
s.format(x)
de los argumentos x.
Campo de substitución
>>> “texto {}”.format(3)
{} anónimo texto 3

Campo de substitución con


>>> “texto {x}”.format(x=3)
{x} nombre texto 3

Campo de substitución
>>> “texto {1}-{0}”.format(3,4)
{0} numerado texto 4-3

Ver detalles en la Guia de string.format

r32/2021(MrTín) Página 6 de 16
Introducción a la
Ingeniería en Computación
2021

El valor por defecto de ini es 0, y el valor por defecto de fin es len(s).

Los métodos isalnum, isalpha, isdigit e isspace devuelven False si la cadena


no contiene al menos un carácter. Los métodos islower e isupper devuelven False si la
cadena no contiene al menos un carácter alfabético.
El valor por defecto de sep es espacio en blanco. El argumento max es opcional.

Ejemplos

>>> '{}, {}, {}'.format('a','b','c')


'a, b, c'2.'{2}, {1}, {0}'.format('a','b','c')
>>>'c, b, a'3.'{0}{1}{0}'.format('abra','cad')
'abracadabra'
>>>'Valor de PI:{parteentera}, {partedecimal}'.format(parteentera=3,
partedecimal=1415)
'Valor de PI: 3,1415'

Listas
Secuencia mutable, ordenada de elementos delimitadas por corchetes y los elementos
separados por comas.

Python Significado
Lista vacía por defecto, pero puede copiar los valores de
list(secuencia) secuencia para armar una lista. (copia las referencias, no duplica
el contenido de la secuencia)
s[i] Accede al i-esimo elemento de s
[] Lista vacía
[1, 2, 3, 4] Lista con cuatro elementos, 1, 2, 3 y 4 iniciales
del s[i] Elimina el i-ésimo elemento de s
del s[i:j] Elimina los elementos entre i y j
del s[i:j:n] Elimina los elementos entre i y j de n
s.append(x) Agrega los elementos de x a la lista s
s.extend(x) Agrega x como elemento de s
s.count(x) Cuenta las veces que aparece el elemento x en s
s.index(x, ini, fin ) El menor i tal que ini <= i <fin y s[i] == x

r32/2021(MrTín) Página 7 de 16
Introducción a la
Ingeniería en Computación
2021

Python Significado
s.insert(i, x) Inserta el elemento x en la posicion i dentro de la lista s
s.remove(x) Remueve el elemento x de s

s.pop(i)
Remueve y retorna el elemento i-esimo. (Opcional, sino remueve y
retorna el ultimo elemento.
s.reverse() Inverte la lista s.
s.sort() Ordena la lista s.

Tuplas
Las tuplas son conjuntos inmutables y ordenados. Pueden ser creados convirtiendo otro
conjunto, tuple(una_secuencia) o de manera directa utilizando paréntesis (1, 2,
3). Importante, cuando la tupla es creada con un solo elemento, debe tener una coma al final
para diferenciarla de un paréntesis para el agrupamiento de instrucciones (1,).

Su funcionamiento es idéntico a una lista, pero aquí no es posible hacer cambios en la tupla
misma.

Python Significado
(1, ) Tupla con un solo elemento, 1
(1, 2, 3, 4) Tupla con cuatro elementos, 1, 2, 3 y 4

tuple(secuencia)
Tupla creada los valores de secuencia. (copia las referencias, no
duplica el contenido de la secuencia)
t[i] Accede al i-esimo elemento de t

Named_tuples
En el modulo collections, se encuentra la función fabrica namedtuple, que es ideal
para crear contenedores de datos simples es inmutables. Como para cargar datos desde un
archivo.

>>> from collections import namedtuple


>>> Punto = namedtuple("Punto", "x y")

Luego de definir la namedtuple, la podemos utilizar como cualquier otra clase que ademas
es una tupla

r32/2021(MrTín) Página 8 de 16
Introducción a la
Ingeniería en Computación
2021

>>> punto1 = Punto(3,4)


>>> punto1
Punto(x=3, y=4)
>>> punto1.x
3
>>> punto1.y
4
>>> punto1[0]
3
>>> punto1[0] = 4
TypeError: 'tuple' object does not support item assignment

! Es importante notar que a pesar de que la tupla en sí es inmutable, si


guardamos una lista dentro de la tupla, la lista en sí es mutable.

Diccionarios (dict)
Pares clave : valor separados por coma y delimitados por llaves:

diccionario = {1:"primero", "segundo":2}

Las claves deben ser datos inmutables.


Los diccionarios son datos mutables.

Python Significado
dict() Diccionarios vacíos
{}
len(d) El número de claves en d
d[k] El elemento de d con clave k
d[k]=x Establece a x el valor del elemento de d con clave k
del d[k] Elimina el elemento de d con clave k
d.clear() Elimina todos los elementos de d
d.copy() Una copia de d
d.has_key(k) True si d contiene un elemento con clave k
k in d Equivalente a d.has_key(k)
d.items() La lista de los pares (clave, valor) de d
d.keys() La lista de las claves de d

r32/2021(MrTín) Página 9 de 16
Introducción a la
Ingeniería en Computación
2021

Python Significado
d.values() La lista de los valores de d

Conjuntos (sets)
Los conjuntos son colecciones no ordenadas de elementos no duplicados en donde los
elementos contenidos deben ser inmutables.
set(secuencia) crea un conjunto mutable con los elementos de la secuencia
especificada, descartando las repeticiones sin preservar el orden. o utilizando llaves, {1, 2,
3}

frozenset(secuencia) crea un conjunto inmutable con los elementos de la secuencia


especificada, descartando las repeticiones.

Python Significado
len(s) Cardinalidad del conjunto s
elt in s True si elt pertenece a s
elt not in s True si elt no pertenece a s
s1.issubset(s2) True si todo elemento de s1 pertenece a s2
s1.issuperset(s2) True si todo elemento de s2 pertenece a s1
s.add(elt) Añade elt al conjunto mutable s
s.remove(elt) Elimina elt del conjunto mutable s
s.clear () Elimina todos los elementos del conjunto mutable s
s1.intersection(s2) Nuevo conjunto con los elementos comunes a s1 y s2
s1 & s2 Lo mismo que s1.intersection (s2)
s1.union(s2) Nuevo conjunto conteniendo los elementos de s1 y de s2
s1 | s2 Lo mismo que s1.union(s2)
Nuevo conjunto con los elementos que pertenecen a s1, pero no
s1.difference (s2)
a s2
s1 − s2 Lo mismo que s1.difference (s2)

r32/2021(MrTín) Página 10 de 16
Introducción a la
Ingeniería en Computación
2021

Python Significado
s1.symmetric_difference Nuevo conjunto con los elementos que pertenecen a s1 o a s2,
(s2)
pero no a ambos
s1 ^ s2 Lo mismo que s1 .symmetric_difference(s2)
s.copy() Nuevo conjunto copia del conjunto s
s.update(sec) Añade los elementos de sec al conjunto s

Nota
Si i o j son negativos, entonces son relativos al final de la secuencia; es decir, se considera
len(s)+i o len(s)+j en su lugar.

Si i o j son mayores que len(s), entonces se considera len(s) en su lugar.

El valor por defecto de j es len(s). El valor por defecto de salto es 1.

Otros tipos de datos


La constante None es el dato nulo, o el No dato.

Control de flujo

Condicional
if condicion1:
bloque
elif condicion2:
bloque2
else:
bloque3

La sección elif y else son ambas opcionales.

Bucle while
Lazo que se ejecutará mientras condición sea True

while condición:
bloque

r32/2021(MrTín) Página 11 de 16
Introducción a la
Ingeniería en Computación
2021

Bucle for
Los bucles for permiten recorrer secuencia dejando de uno en uno en variable los
elementos para su uso.

for variable in secuencia:


bloque1
else:
bloque2

La estructura for permite un bloque else opcional que se ejecutara solo cuando la secuencia
se encuentre vacía.
Es posible utilizar range para armar lazos acotados muy rápidamente.

Instrucciones de control de lazos


break corta completamente el lazo.

continua interrumpe el bucle haciéndolo saltar hacia la siguiente iteración.

Funciones
Definición
def nombre_funcion ( lista_de_parametros ):
"""Texto mostrado por help(nombre_funcion)"""
bloque

Para retornar valores desde la función y finalizar su ejecución. Es posible utilizar return sin
valores para forzar la salida de la función.
La lista de parámetros, es una sucesión de identificadores separados por comas.
Estos identificadores pueden tener valores por defecto de la forma nombre=valor, que al
momento de utilizar dicha función, no es obligatorio completar ese valor.
Al momento de llamar una función, es posible pasar argumentos llamando al nombre de uno o
varios argumentos.
Por ejemplo:

def triplo(x, y, z=0):


"""Imprime los valores x, y y z de manera consecutiva"""
print (x,y,z)
>>> triplo(2,1)

r32/2021(MrTín) Página 12 de 16
Introducción a la
Ingeniería en Computación
2021

2, 1, 0
>>> triplo(4,1,6)
4,1,6
>>> triplo(3,x=4,3)
3,4,3
>>> help(triplo)
Imprime los valores x, y y z de manera consecutiva.

Declaraciones y funciones predefinidas

Operador Significado
pass Declaración nula
del nombre Borra nombre de su referencia al espacio actual
raise TipoExcepcion Genera una excepción de tipo TipoExcepcion
raise TipoExcepcion Genera una excepción de tipo TipoExcepcion
from exc encadenada a exc (instancia de tipo Excepción)
print(valor) Muestra en pantalla el valor
Devuelve la lista de nombres definidos
dir()
dir(objeto) Devuelve la lista de nombres definidos dentro de objeto

help() Invoca el sistema de ayuda

input(mensaje) Escribe mensaje en pantalla, lee una entrada desde el teclado,


la evalúa y devuelve el resultado como texto
is_instance(dato, Devuelve True si dato es una instancia del tipo
tipo) especificado
Devuelve una lista con los enteros de la progresión aritmética
range(fin)
que empieza en ini , termina en fin −1 y tiene
range(ini,fin)
range(ini,fin,salto) opcionalmente diferencia salto. Si no esta indicado, la
secuencia comienza en 0.
Devuelve una cadena conteniendo una representación de
str(dato)
dato
Devuelve la suma de la secuencia de números sec,
sum(sec, val_ini) añadiéndole además val_ini. El valor por defecto de
val_ini es 0

r32/2021(MrTín) Página 13 de 16
Introducción a la
Ingeniería en Computación
2021

Operadores de asignación

Operador Significado
a = b Asigna b al identificador a
a += b Lo mismo que a = a+b
a -= b Lo mismo que a = a-b
a *= b Lo mismo que a = a*b
a /= b Lo mismo que a = a/b
a %= b Lo mismo que a = a%b
a **= b Lo mismo que a = a**b

Desempaquetamiento con asignaciones


El operador de asignación puede desempaquetar secuencias:

a,b = range(2)

Es lo mismo que:

a = 0
b = 1

También es posible desempaquetar parcialmente una secuencia en dos (o mas), dejando el


resto en la que esté más a la derecha.

a, *b = range(5)

es lo mismo que

a = 0
b = [1,2,3,4]

De esta manera también es posible intercambiar el contenido de dos variables sin un auxiliar:

x, y = y, x

r32/2021(MrTín) Página 14 de 16
Introducción a la
Ingeniería en Computación
2021

Módulos
Los módulos son espacios de nombre que agrupan alguna funcionalidad, como una biblioteca o
funcionalidad especifica, math contiene funcionalidad dedicada a la matemática, por ejemplo

Carga de modulo completo:

import modulo1
import modulo2

Carga parcial; “desde modulo traé nombre1”

from modulo import nombre1, ..., nombreN

Carga de un modulo con cambio de nombre

import modulo1 as m
from modulo2 import nombre3 as m

r32/2021(MrTín) Página 15 de 16
Introducción a la
Ingeniería en Computación
2021

Guía de string.format

Una de las varias formas de armar cadenas con variables dentro de Python

Número Formato Salida Descripción


3.1415926 {:.2f} 3.14 2 decimales
3.1415926 {:+.2f} +3.14 2 decimales con signo
-1 {:+.2f} -1.00 2 decimales con signo
2.71828 {:.0f} 3 Sin decimales
Rellenar con ceros a la izquierda hasta
5 {:0>2d} 05
completar 2 espacios
Rellena con x a la derecha hasta
5 {:x<4d} 5xxx
completar 4 espacios.
Rellena con x a la derecha hasta
10 {:x<4d} 10xx
completar 4 espacios.
1000000 {:,} 1,000,000 Numero con separador de miles
0.25 {:.2%} 25.00% Formato porcentual
1000000000 {:.2e} 1.00e+09 Notación de exponente
13 {:10d} 13 Alineación derecha (por defecto, ancho 10)
13 {:<10d} 13 Alineación izquierda (ancho 10)
13 {:^10d} 13 Alineación al centro (ancho 10)

https://mkaz.tech/python-string-format.html

r32/2021(MrTín) Página 16 de 16

También podría gustarte